diff --git a/.konflux/rpms/rpms.lock.yaml b/.konflux/rpms/rpms.lock.yaml
index 701967cc..71fc2a7d 100644
--- a/.konflux/rpms/rpms.lock.yaml
+++ b/.konflux/rpms/rpms.lock.yaml
@@ -4,41 +4,34 @@ lockfileVendor: redhat
arches:
- arch: aarch64
packages:
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/e/emacs-filesystem-27.2-18.el9.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-2.52.0-1.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
- size: 9495
- checksum: sha256:49d7b88a05a72c15b78191a987e6def04fda8e2e4ff75711f715d0c0ecadc60f
- name: emacs-filesystem
- evr: 1:27.2-18.el9
- sourcerpm: emacs-27.2-18.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-2.47.3-1.el9_6.aarch64.rpm
- repoid: ubi-9-for-aarch64-appstream-rpms
- size: 51846
- checksum: sha256:6d80ba0961c5ddebd612a86790023e8086e5c0ed10bc282b088362b98df2c0a9
+ size: 46043
+ checksum: sha256:f4d886f18118389689f2c1f5a4940ae5a2f3c9e280197cc96b612f341e07986a
name: git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-core-2.47.3-1.el9_6.aarch64.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-core-2.52.0-1.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
- size: 5036453
- checksum: sha256:8f5f3f6fa402ecf4215c36807284dd447c990ff747b1a1150e7d638c37bfbf1e
+ size: 5392428
+ checksum: sha256:7082917982981bf611c089e7d9d53b63e969af61a37cfd65b5c4081d5b260a1c
name: git-core
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-core-doc-2.47.3-1.el9_6.noarch.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-core-doc-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
- size: 3195826
- checksum: sha256:0008ecada894ff2a51c43f868b7727baae3836911b541a613769d2e93d501442
+ size: 3300095
+ checksum: sha256:cf375cd9a48d244df37bb0c9ff58aa3c6f3d21d7446cc0cf902c9659fecf8343
name: git-core-doc
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-lfs-3.6.1-3.el9.aarch64.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/g/git-lfs-3.7.1-4.el9_8.aarch64.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
- size: 4395964
- checksum: sha256:b390a0f32e8da7aa256da6277778c54387fe97ca76b1826b5e5a7a44e3f1338f
+ size: 4518910
+ checksum: sha256:bbe80766502e3d06906ef6d44b0eb919759fd42d8a13a7d9dc58acff7cdefb41
name: git-lfs
- evr: 3.6.1-3.el9
- sourcerpm: git-lfs-3.6.1-3.el9.src.rpm
+ evr: 3.7.1-4.el9_8
+ sourcerpm: git-lfs-3.7.1-4.el9_8.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
size: 21344
@@ -137,13 +130,6 @@ arches:
name: perl-File-Basename
evr: 2.85-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-Find-1.37-481.1.el9_6.noarch.rpm
- repoid: ubi-9-for-aarch64-appstream-rpms
- size: 25551
- checksum: sha256:002ec6d107fff6949f1a88965fb31b0a4efe6ce663395ab47e0cb939e3920c08
- name: perl-File-Find
- evr: 1.37-481.1.el9_6
- sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
size: 38466
@@ -186,13 +172,13 @@ arches:
name: perl-Getopt-Std
evr: 1.12-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Git-2.47.3-1.el9_6.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Git-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
- size: 38720
- checksum: sha256:d0b4a24233ba8a6eb0966b3b6d8d52dfc5c33577fc8033e693f9aa181f3e2330
+ size: 44211
+ checksum: sha256:3c57cee7cf3de7a79bef821448b01f48473d2fb9367509f57912a2f1ae7c3009
name: perl-Git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm
repoid: ubi-9-for-aarch64-appstream-rpms
size: 58720
@@ -480,27 +466,27 @@ arches:
name: perl-vars
evr: 1.05-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-2.9.6-27.el9.aarch64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-2.9.6-28.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 100995
- checksum: sha256:6b4e2bae51af42c1ab0f1ec7430ab19542747937a827eba8cac540cb7514a145
+ size: 102026
+ checksum: sha256:d85216b672a15e5dd8cc771b853e3b73e832034949ee23998d8403609fba00a2
name: cracklib
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-dicts-2.9.6-27.el9.aarch64.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 3821337
- checksum: sha256:c4ef55b06c9b5352b2338a6deccd25030472308b3ffe39735585967382e75419
+ size: 3829400
+ checksum: sha256:807345f95c448cb58d4db8d059f76e4c139ef029887d59b431efd20db934745a
name: cracklib-dicts
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/e/expat-2.5.0-5.el9_6.aarch64.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.1.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 116016
- checksum: sha256:fd3234795b06ce0a45bfdec417be51a88296c0da0ea5b0d156aa327839e33052
+ size: 120882
+ checksum: sha256:7cc4e533f63bdec0ead003d176cb262b8d4d2583dfd57b2e9cfeeed4ead13475
name: expat
- evr: 2.5.0-5.el9_6
- sourcerpm: expat-2.5.0-5.el9_6.src.rpm
+ evr: 2.5.0-6.el9_8.1
+ sourcerpm: expat-2.5.0-6.el9_8.1.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/groff-base-1.22.4-10.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
size: 1088949
@@ -536,27 +522,27 @@ arches:
name: libdb
evr: 5.3.28-57.el9_6
sourcerpm: libdb-5.3.28-57.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libeconf-0.4.1-4.el9.aarch64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 29577
- checksum: sha256:b6f435b6b79b8a62729f581edead46542dc61fe7276117b2354c324c44ba8309
+ size: 32324
+ checksum: sha256:8a5e117c2690c82835c6013f1fbac37b026f3e953fbffbd84c2f5ef6cf8df571
name: libeconf
- evr: 0.4.1-4.el9
- sourcerpm: libeconf-0.4.1-4.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libedit-3.1-38.20210216cvs.el9.aarch64.rpm
+ evr: 0.4.1-7.el9_8
+ sourcerpm: libeconf-0.4.1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libedit-3.1-39.20210216cvs.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 107505
- checksum: sha256:a56a79e2254db3d351dce58e9960921aec45715b6b7c93eb7a0f453d1e60bae4
+ size: 110092
+ checksum: sha256:93964f8c06574404f4a5b44781b698f556fbc22f7ae3c82d4d540619772f6816
name: libedit
- evr: 3.1-38.20210216cvs.el9
- sourcerpm: libedit-3.1-38.20210216cvs.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libfdisk-2.37.4-21.el9.aarch64.rpm
+ evr: 3.1-39.20210216cvs.el9
+ sourcerpm: libedit-3.1-39.20210216cvs.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 153926
- checksum: sha256:e39cadb3e0cfd498fa1f37ec76d5f28af35a29b23c4ab163a21d0abc868e156f
+ size: 156711
+ checksum: sha256:af043918fc50ce5b3de50c48c3de0143140b692fbf639db6f259270c4211a776
name: libfdisk
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libfido2-1.13.0-2.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
size: 100573
@@ -585,87 +571,80 @@ arches:
name: ncurses
evr: 6.2-12.20210508.el9
sourcerpm: ncurses-6.2-12.20210508.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssh-8.7p1-46.el9.aarch64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssh-9.9p1-7.el9_8.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 457771
- checksum: sha256:71b112b493a770c81e108afd8ce6616c8a941c6f4332cc5db75731d9b830ccaf
+ size: 431979
+ checksum: sha256:be18971dc20baa2fc820ec357d145bc5f9dbd88fd87e04b4016d8f77183525ae
name: openssh
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssh-clients-8.7p1-46.el9.aarch64.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssh-clients-9.9p1-7.el9_8.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 697157
- checksum: sha256:2f94f61ef0cfd8089ce58040586e894ec3c0f1d7aa46e63659901d4c0eea9287
+ size: 768861
+ checksum: sha256:37ac77703fc47951b231cab696f52f00485f0811ed893d7c68a038eef81c9d8f
name: openssh-clients
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-3.5.1-4.el9_7.aarch64.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-3.5.5-4.el9_8.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 1531255
- checksum: sha256:f7ff8eb3fd8b75ae1745af2270998fa662fcd5f81b892e94afd87e6954e2ffef
+ size: 1540982
+ checksum: sha256:b0d7b7d68bdb9ab710ecd3ccd83119173f4d6a7a36c5d475a768bf07d7c69907
name: openssl
- evr: 1:3.5.1-4.el9_7
- sourcerpm: openssl-3.5.1-4.el9_7.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pam-1.5.1-26.el9_6.aarch64.rpm
+ evr: 1:3.5.5-4.el9_8
+ sourcerpm: openssl-3.5.5-4.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pam-1.5.1-28.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 636107
- checksum: sha256:fd8dc3ae80d01e90bed08e84e32e3b47b568fe5ddc857dffbae36cc4bde0887b
+ size: 635826
+ checksum: sha256:eab9afe4a8ef70912d8c59c0d8c429c0474436e756d37bcd9ee0589f9a1c9311
name: pam
- evr: 1.5.1-26.el9_6
- sourcerpm: pam-1.5.1-26.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-2.37.4-21.el9.aarch64.rpm
+ evr: 1.5.1-28.el9
+ sourcerpm: pam-1.5.1-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-2.37.4-25.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 2391248
- checksum: sha256:82bd3fae04690f35c634e8cd6ad14faacfe3db2bb398f98fb6c8d50df961978c
+ size: 2390152
+ checksum: sha256:3681bbe37d46309673f366135787f5713f0ef575e3cd413cd221af2512e3634b
name: util-linux
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-core-2.37.4-21.el9.aarch64.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.aarch64.rpm
repoid: ubi-9-for-aarch64-baseos-rpms
- size: 476169
- checksum: sha256:e1d6b36eaaa048d6cb22799d3c463c95d0aadf5dac83fdcf05e9c047eb396406
+ size: 472949
+ checksum: sha256:de7ad826dd42b383d93f6dc6b720a26d4cd4815d00c0f093c2e28037a8881424
name: util-linux-core
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
source: []
module_metadata: []
- arch: ppc64le
packages:
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/e/emacs-filesystem-27.2-18.el9.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-2.52.0-1.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 9495
- checksum: sha256:49d7b88a05a72c15b78191a987e6def04fda8e2e4ff75711f715d0c0ecadc60f
- name: emacs-filesystem
- evr: 1:27.2-18.el9
- sourcerpm: emacs-27.2-18.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-2.47.3-1.el9_6.ppc64le.rpm
- repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 51870
- checksum: sha256:181b68bcece9039440f3b999ad30258ed5cbde2fdcdf948d3739c8f14f917c8b
+ size: 46062
+ checksum: sha256:2cdea78aef60b9786fe2cd5aa5ee556f5ef4fcd310ea155ecbec7623cd413743
name: git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-core-2.47.3-1.el9_6.ppc64le.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-core-2.52.0-1.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 5417950
- checksum: sha256:112407c6e8c561db49df6f45532795d2572e638a6e6db522d3371890b4b808e3
+ size: 5770569
+ checksum: sha256:e668b76924c62f495eeac80e47fd1157ca30eac03515b1db59b7978e4fbd4029
name: git-core
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-core-doc-2.47.3-1.el9_6.noarch.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-core-doc-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 3195826
- checksum: sha256:0008ecada894ff2a51c43f868b7727baae3836911b541a613769d2e93d501442
+ size: 3300095
+ checksum: sha256:cf375cd9a48d244df37bb0c9ff58aa3c6f3d21d7446cc0cf902c9659fecf8343
name: git-core-doc
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-lfs-3.6.1-3.el9.ppc64le.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/g/git-lfs-3.7.1-4.el9_8.ppc64le.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 4402676
- checksum: sha256:b6463db90fedea99030c313b5ecc4a53e8d4d3f37810c42bc97c23dc539add3c
+ size: 4567223
+ checksum: sha256:2b2d03428690e00479bc500aebf9e2c86eb4fe3bae8053cfbd9dded3b00b202d
name: git-lfs
- evr: 3.6.1-3.el9
- sourcerpm: git-lfs-3.6.1-3.el9.src.rpm
+ evr: 3.7.1-4.el9_8
+ sourcerpm: git-lfs-3.7.1-4.el9_8.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
size: 21344
@@ -764,13 +743,6 @@ arches:
name: perl-File-Basename
evr: 2.85-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-File-Find-1.37-481.1.el9_6.noarch.rpm
- repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 25551
- checksum: sha256:002ec6d107fff6949f1a88965fb31b0a4efe6ce663395ab47e0cb939e3920c08
- name: perl-File-Find
- evr: 1.37-481.1.el9_6
- sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
size: 38466
@@ -813,13 +785,13 @@ arches:
name: perl-Getopt-Std
evr: 1.12-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-Git-2.47.3-1.el9_6.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-Git-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
- size: 38720
- checksum: sha256:d0b4a24233ba8a6eb0966b3b6d8d52dfc5c33577fc8033e693f9aa181f3e2330
+ size: 44211
+ checksum: sha256:3c57cee7cf3de7a79bef821448b01f48473d2fb9367509f57912a2f1ae7c3009
name: perl-Git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm
repoid: ubi-9-for-ppc64le-appstream-rpms
size: 58720
@@ -1107,27 +1079,27 @@ arches:
name: perl-vars
evr: 1.05-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/c/cracklib-2.9.6-27.el9.ppc64le.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/c/cracklib-2.9.6-28.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 102420
- checksum: sha256:be3738f99a18e14c80b771e0bcc4e13d9d067f1a1bcefd9ffcdabdb5e03bf46a
+ size: 104055
+ checksum: sha256:1f178005ee48a8901c0a29ff63dbfbe11fae07f698175be8d8aec640821c9ce2
name: cracklib
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/c/cracklib-dicts-2.9.6-27.el9.ppc64le.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 3821001
- checksum: sha256:a5ae48064c709f448291de88bbf97427c65cc6a03179972496d27d4223bb6e96
+ size: 3829355
+ checksum: sha256:b4b4063ca9193817f6f2e5d94bb5de65b4bb7ccc558fc0271d11593e72817f7f
name: cracklib-dicts
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/e/expat-2.5.0-5.el9_6.ppc64le.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/e/expat-2.5.0-6.el9_8.1.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 127290
- checksum: sha256:d2b0e91d162cedf8e6b68c82795eec1553ab15618862b2717139fedc27586953
+ size: 132202
+ checksum: sha256:eae0d2c0c23adc9b878e86d46a7cd176e991a84fc5780877dd58f15552b6a5c6
name: expat
- evr: 2.5.0-5.el9_6
- sourcerpm: expat-2.5.0-5.el9_6.src.rpm
+ evr: 2.5.0-6.el9_8.1
+ sourcerpm: expat-2.5.0-6.el9_8.1.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/g/groff-base-1.22.4-10.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
size: 1156956
@@ -1163,27 +1135,27 @@ arches:
name: libdb
evr: 5.3.28-57.el9_6
sourcerpm: libdb-5.3.28-57.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libeconf-0.4.1-4.el9.ppc64le.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 32878
- checksum: sha256:a3fbb9481c4d4f13cc1f1593a83f31fc27975b759fd01235b875d09973eeb102
+ size: 35680
+ checksum: sha256:4a26999b09960559538b2fbee1aece9f6c3c47e386b918f3f50260dd125e1ac4
name: libeconf
- evr: 0.4.1-4.el9
- sourcerpm: libeconf-0.4.1-4.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libedit-3.1-38.20210216cvs.el9.ppc64le.rpm
+ evr: 0.4.1-7.el9_8
+ sourcerpm: libeconf-0.4.1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libedit-3.1-39.20210216cvs.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 121673
- checksum: sha256:ce0039b9b7d363df74541da164ebccde85a40f083f5b55382325db6584bc693c
+ size: 124348
+ checksum: sha256:e795653f878ccddee672ed2b8807c8ae32d6d05f96380428aa88c04ebef8572a
name: libedit
- evr: 3.1-38.20210216cvs.el9
- sourcerpm: libedit-3.1-38.20210216cvs.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libfdisk-2.37.4-21.el9.ppc64le.rpm
+ evr: 3.1-39.20210216cvs.el9
+ sourcerpm: libedit-3.1-39.20210216cvs.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 174570
- checksum: sha256:966d0ccb94752aecca93368a9541e2dc2bb30db9f2cc6aeb6ab524e32b39b1bb
+ size: 176392
+ checksum: sha256:cc45fa965cc52a58ba2fdfed487d7e6756f041325104082af8a0c19c76c33ee0
name: libfdisk
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libfido2-1.13.0-2.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
size: 112104
@@ -1198,13 +1170,13 @@ arches:
name: libpwquality
evr: 1.4.4-8.el9
sourcerpm: libpwquality-1.4.4-8.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/librtas-2.0.6-1.el9.ppc64le.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/librtas-2.0.6-3.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 86335
- checksum: sha256:64d105e7f8b9ee542efe65816ae77fb38988c00bef1e0cc5ea3e1a4e89fb7505
+ size: 84022
+ checksum: sha256:30de7704706df7a493e8549a0a733313816a2e1cb69b25b394df6443e8e6bd9b
name: librtas
- evr: 2.0.6-1.el9
- sourcerpm: librtas-2.0.6-1.el9.src.rpm
+ evr: 2.0.6-3.el9
+ sourcerpm: librtas-2.0.6-3.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libutempter-1.2.1-6.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
size: 30656
@@ -1219,87 +1191,80 @@ arches:
name: ncurses
evr: 6.2-12.20210508.el9
sourcerpm: ncurses-6.2-12.20210508.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssh-8.7p1-46.el9.ppc64le.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssh-9.9p1-7.el9_8.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 481305
- checksum: sha256:ca957d3f56714d44fe290ab425002bea3414abce333c38046f6199823215af9c
+ size: 459344
+ checksum: sha256:b9cc1feca459e05b0b195fa751f9f8d2001961d228490b0a111225a53f4c46b0
name: openssh
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssh-clients-8.7p1-46.el9.ppc64le.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssh-clients-9.9p1-7.el9_8.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 755337
- checksum: sha256:041b76d153931bf752a94eb6a1236239600d7eeb2f8311b91ce611425a6c0bc9
+ size: 836414
+ checksum: sha256:7dac2419a7e69b88195151a65523740d7d144486646c0fbe6d82461734a8130e
name: openssh-clients
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssl-3.5.1-4.el9_7.ppc64le.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssl-3.5.5-4.el9_8.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 1556422
- checksum: sha256:ec777faeeb541b6db11c2a276c11a027ab9c7f9bdd786fe4f30bc1512148739e
+ size: 1566170
+ checksum: sha256:fe6385b872aa1130135ea046a6baa2bfecb1eba0c15e4d65e0b998f218ef8582
name: openssl
- evr: 1:3.5.1-4.el9_7
- sourcerpm: openssl-3.5.1-4.el9_7.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/p/pam-1.5.1-26.el9_6.ppc64le.rpm
+ evr: 1:3.5.5-4.el9_8
+ sourcerpm: openssl-3.5.5-4.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/p/pam-1.5.1-28.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 677447
- checksum: sha256:93eb19dd21e5bb33d1d004c9e49e49d0049aca990074b8c6f4204e5af4c3c38e
+ size: 677440
+ checksum: sha256:4d7ae59c6b8bfd1548bf5d0b44081b77d966f63aac6057f48731c0a0f1e794e8
name: pam
- evr: 1.5.1-26.el9_6
- sourcerpm: pam-1.5.1-26.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/u/util-linux-2.37.4-21.el9.ppc64le.rpm
+ evr: 1.5.1-28.el9
+ sourcerpm: pam-1.5.1-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/u/util-linux-2.37.4-25.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 2428895
- checksum: sha256:768413a8cb1df625f0f092355493ddf456c3a491a107108cc165ad44695071cf
+ size: 2426763
+ checksum: sha256:97d66e61d2f744f3700ba8ea58b2c0e3b68d4fe55258a0f3be76df53be8e1b31
name: util-linux
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/u/util-linux-core-2.37.4-21.el9.ppc64le.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.ppc64le.rpm
repoid: ubi-9-for-ppc64le-baseos-rpms
- size: 499376
- checksum: sha256:14407b96054d10be6e5b6a7c8d167283caa6b821113bbc6872c4c90fd7da6b1f
+ size: 494407
+ checksum: sha256:966907c57c86b880899a7dad2b9a9edeaa2e6e8f151ea57e09dca38c8f072c78
name: util-linux-core
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
source: []
module_metadata: []
- arch: s390x
packages:
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/e/emacs-filesystem-27.2-18.el9.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-2.52.0-1.el9.s390x.rpm
repoid: ubi-9-for-s390x-appstream-rpms
- size: 9495
- checksum: sha256:49d7b88a05a72c15b78191a987e6def04fda8e2e4ff75711f715d0c0ecadc60f
- name: emacs-filesystem
- evr: 1:27.2-18.el9
- sourcerpm: emacs-27.2-18.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-2.47.3-1.el9_6.s390x.rpm
- repoid: ubi-9-for-s390x-appstream-rpms
- size: 51862
- checksum: sha256:2dc870f585b2677efba54ef8544339e810cba1769accd8bd4d1e777325773efc
+ size: 46055
+ checksum: sha256:572de9cf7ef00a62c6ce24f90dc9c01d0cb1aa7ae9a059504bd6d89c10769824
name: git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-core-2.47.3-1.el9_6.s390x.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-core-2.52.0-1.el9.s390x.rpm
repoid: ubi-9-for-s390x-appstream-rpms
- size: 4802290
- checksum: sha256:82a357dd414ce958dd199566e6ccff6593a7817c5c70a2f268d38459004afff9
+ size: 5146305
+ checksum: sha256:597cbf37ecfcf13761cb5d19f216d3444fe31817023fc5bf2367fdf7ab168268
name: git-core
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-core-doc-2.47.3-1.el9_6.noarch.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-core-doc-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-s390x-appstream-rpms
- size: 3195826
- checksum: sha256:0008ecada894ff2a51c43f868b7727baae3836911b541a613769d2e93d501442
+ size: 3300095
+ checksum: sha256:cf375cd9a48d244df37bb0c9ff58aa3c6f3d21d7446cc0cf902c9659fecf8343
name: git-core-doc
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-lfs-3.6.1-3.el9.s390x.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/g/git-lfs-3.7.1-4.el9_8.s390x.rpm
repoid: ubi-9-for-s390x-appstream-rpms
- size: 4532064
- checksum: sha256:bd923eaec083e05c128943857b22c1e548aabe699a898f65ddd99871871dcf08
+ size: 4734184
+ checksum: sha256:68e0de0b2f0294b61e6e5616994ae24e5244d3581832d98aefb2963d2cea6389
name: git-lfs
- evr: 3.6.1-3.el9
- sourcerpm: git-lfs-3.6.1-3.el9.src.rpm
+ evr: 3.7.1-4.el9_8
+ sourcerpm: git-lfs-3.7.1-4.el9_8.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm
repoid: ubi-9-for-s390x-appstream-rpms
size: 21344
@@ -1398,13 +1363,6 @@ arches:
name: perl-File-Basename
evr: 2.85-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-File-Find-1.37-481.1.el9_6.noarch.rpm
- repoid: ubi-9-for-s390x-appstream-rpms
- size: 25551
- checksum: sha256:002ec6d107fff6949f1a88965fb31b0a4efe6ce663395ab47e0cb939e3920c08
- name: perl-File-Find
- evr: 1.37-481.1.el9_6
- sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm
repoid: ubi-9-for-s390x-appstream-rpms
size: 38466
@@ -1447,13 +1405,13 @@ arches:
name: perl-Getopt-Std
evr: 1.12-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-Git-2.47.3-1.el9_6.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-Git-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-s390x-appstream-rpms
- size: 38720
- checksum: sha256:d0b4a24233ba8a6eb0966b3b6d8d52dfc5c33577fc8033e693f9aa181f3e2330
+ size: 44211
+ checksum: sha256:3c57cee7cf3de7a79bef821448b01f48473d2fb9367509f57912a2f1ae7c3009
name: perl-Git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm
repoid: ubi-9-for-s390x-appstream-rpms
size: 58720
@@ -1741,27 +1699,27 @@ arches:
name: perl-vars
evr: 1.05-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/c/cracklib-2.9.6-27.el9.s390x.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/c/cracklib-2.9.6-28.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 100558
- checksum: sha256:7cd93f220df178d0a76f486ab341cbf858e4ea768e9bc779b1e6eb74259fc3bf
+ size: 101566
+ checksum: sha256:97423541d54e16ff1838d225c3f56a06d4bdf44c186323ee432e9fa031ecdae6
name: cracklib
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/c/cracklib-dicts-2.9.6-27.el9.s390x.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 3838529
- checksum: sha256:fb179b85546fb2ba2e044e40d6f97a7856802840150f636447a048ecf680c07d
+ size: 3841146
+ checksum: sha256:870f5372b0c19128827ebbb21c7653957fc0359ee125d7ee4027a4c2f8a56c21
name: cracklib-dicts
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/e/expat-2.5.0-5.el9_6.s390x.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/e/expat-2.5.0-6.el9_8.1.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 118327
- checksum: sha256:b4c649297dc3b80d70769c0ab38229d1bb497e56d8a1dec514c2fd21eefa3851
+ size: 123151
+ checksum: sha256:a5b24ad347a1722a948f417a7289a89b1aee9047350e88866173e05157239142
name: expat
- evr: 2.5.0-5.el9_6
- sourcerpm: expat-2.5.0-5.el9_6.src.rpm
+ evr: 2.5.0-6.el9_8.1
+ sourcerpm: expat-2.5.0-6.el9_8.1.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/g/groff-base-1.22.4-10.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
size: 1100747
@@ -1797,27 +1755,27 @@ arches:
name: libdb
evr: 5.3.28-57.el9_6
sourcerpm: libdb-5.3.28-57.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libeconf-0.4.1-4.el9.s390x.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 30401
- checksum: sha256:97f2c01fb34760ab35d8f1b88fc59d743710035ae1677f06ea8919d0390e0ebb
+ size: 33180
+ checksum: sha256:37d39a7fa03848dde2f48a0f32cd27b182317f9a5b85ce0af7252a44ffc42155
name: libeconf
- evr: 0.4.1-4.el9
- sourcerpm: libeconf-0.4.1-4.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libedit-3.1-38.20210216cvs.el9.s390x.rpm
+ evr: 0.4.1-7.el9_8
+ sourcerpm: libeconf-0.4.1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libedit-3.1-39.20210216cvs.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 107657
- checksum: sha256:7e6661f35f325ac458e1c6ba5e18ccb49685a043cef5296155be1124fd5e8d86
+ size: 110253
+ checksum: sha256:a634b73047b69e0fab3c591ae2c75e5cc3e9a52a3c7dea14c6a67381c0d617aa
name: libedit
- evr: 3.1-38.20210216cvs.el9
- sourcerpm: libedit-3.1-38.20210216cvs.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libfdisk-2.37.4-21.el9.s390x.rpm
+ evr: 3.1-39.20210216cvs.el9
+ sourcerpm: libedit-3.1-39.20210216cvs.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 155164
- checksum: sha256:c01f1bae10e4686dec4780db84252047488c3be4289ca3c84cab4009f1aa5487
+ size: 156062
+ checksum: sha256:001f0c65d4278d2594cb4f5967b836375a0e7d2098fa7787327f01ebc5d880f4
name: libfdisk
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libfido2-1.13.0-2.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
size: 95761
@@ -1846,87 +1804,80 @@ arches:
name: ncurses
evr: 6.2-12.20210508.el9
sourcerpm: ncurses-6.2-12.20210508.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssh-8.7p1-46.el9.s390x.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssh-9.9p1-7.el9_8.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 453495
- checksum: sha256:9e69512c7967f983d276e56d3a06034e6168cfc682defd67deee5627e2eb7b99
+ size: 428101
+ checksum: sha256:239384b797255208ef9a549521751ac747c495f8af1d9f6cb9e9815741bdefee
name: openssh
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssh-clients-8.7p1-46.el9.s390x.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssh-clients-9.9p1-7.el9_8.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 684336
- checksum: sha256:5d3eb92e75f822a9403ba8e61b451cd7d8eb85cbaaaa686c028eb65995416367
+ size: 747932
+ checksum: sha256:377660d3463a7ec7f5cb09c7312fcb71e89cc61767e451f0eab928546a0be690
name: openssh-clients
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssl-3.5.1-4.el9_7.s390x.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssl-3.5.5-4.el9_8.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 1538384
- checksum: sha256:51919b204a4889e82904a4d33099c29c925e710773439647e5f7b66e2e442ee1
+ size: 1549244
+ checksum: sha256:8a6e7e6ae963ad5ab00f319c72042f3e9f28cd6196dac258eb5c785be0524bb2
name: openssl
- evr: 1:3.5.1-4.el9_7
- sourcerpm: openssl-3.5.1-4.el9_7.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/p/pam-1.5.1-26.el9_6.s390x.rpm
+ evr: 1:3.5.5-4.el9_8
+ sourcerpm: openssl-3.5.5-4.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/p/pam-1.5.1-28.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 628673
- checksum: sha256:0817657a9c8638a20357b6d057abe3448dd9cf8c3fed61a74772e18a9d5a209b
+ size: 630422
+ checksum: sha256:25f76128edb27d622927cadb5dc485e0e72c546457598c9cceb4b8364cf53e6a
name: pam
- evr: 1.5.1-26.el9_6
- sourcerpm: pam-1.5.1-26.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/u/util-linux-2.37.4-21.el9.s390x.rpm
+ evr: 1.5.1-28.el9
+ sourcerpm: pam-1.5.1-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/u/util-linux-2.37.4-25.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 2336453
- checksum: sha256:444dc662176b0fc44159d7e77480b41848bd0210ba8378fe840bfa20d49627c0
+ size: 2327681
+ checksum: sha256:4cfaf23c4a12c951a51326583794f545b41356203a6d32b0aecd49683339fdf0
name: util-linux
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/u/util-linux-core-2.37.4-21.el9.s390x.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.s390x.rpm
repoid: ubi-9-for-s390x-baseos-rpms
- size: 471978
- checksum: sha256:788f076154306f98c818f1997a3f54ffd9b3420564dda0b8afa56a851b537e79
+ size: 467763
+ checksum: sha256:18ee12e289d50a2cae621fe22394991481d1674355c6ce127bf57b057980a19f
name: util-linux-core
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
source: []
module_metadata: []
- arch: x86_64
packages:
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/e/emacs-filesystem-27.2-18.el9.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-2.52.0-1.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
- size: 9495
- checksum: sha256:49d7b88a05a72c15b78191a987e6def04fda8e2e4ff75711f715d0c0ecadc60f
- name: emacs-filesystem
- evr: 1:27.2-18.el9
- sourcerpm: emacs-27.2-18.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-2.47.3-1.el9_6.x86_64.rpm
- repoid: ubi-9-for-x86_64-appstream-rpms
- size: 51883
- checksum: sha256:5097b6a0540e33dd02d581109cf1b10fcc736975c330208fae148efacb13b649
+ size: 46071
+ checksum: sha256:be1c2f855001bf01cb5c5b0ff59d8943ddc4c4eedbbbddd68474d2aa6e11395c
name: git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-core-2.47.3-1.el9_6.x86_64.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-core-2.52.0-1.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
- size: 4926340
- checksum: sha256:4056d5f982607b0c8106ad1467b396be4abf150d8532fe018c9dc469cf149411
+ size: 5293286
+ checksum: sha256:6264aa556d583604f34def3674f5830a70cfee0aac283719e4df295db38acb53
name: git-core
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-core-doc-2.47.3-1.el9_6.noarch.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-core-doc-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
- size: 3195826
- checksum: sha256:0008ecada894ff2a51c43f868b7727baae3836911b541a613769d2e93d501442
+ size: 3300095
+ checksum: sha256:cf375cd9a48d244df37bb0c9ff58aa3c6f3d21d7446cc0cf902c9659fecf8343
name: git-core-doc
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-lfs-3.6.1-3.el9.x86_64.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/g/git-lfs-3.7.1-4.el9_8.x86_64.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
- size: 4845010
- checksum: sha256:3bb079e26fa1359c9a254e78e6261e36c066347e0f4c089e3eb37ca0a0ee5bda
+ size: 5009758
+ checksum: sha256:f14b714da9234ad6a4fc52b681e1174904610af80656c98d635f3d05d03c4029
name: git-lfs
- evr: 3.6.1-3.el9
- sourcerpm: git-lfs-3.6.1-3.el9.src.rpm
+ evr: 3.7.1-4.el9_8
+ sourcerpm: git-lfs-3.7.1-4.el9_8.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
size: 21344
@@ -2025,13 +1976,6 @@ arches:
name: perl-File-Basename
evr: 2.85-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-Find-1.37-481.1.el9_6.noarch.rpm
- repoid: ubi-9-for-x86_64-appstream-rpms
- size: 25551
- checksum: sha256:002ec6d107fff6949f1a88965fb31b0a4efe6ce663395ab47e0cb939e3920c08
- name: perl-File-Find
- evr: 1.37-481.1.el9_6
- sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
size: 38466
@@ -2074,13 +2018,13 @@ arches:
name: perl-Getopt-Std
evr: 1.12-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Git-2.47.3-1.el9_6.noarch.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Git-2.52.0-1.el9.noarch.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
- size: 38720
- checksum: sha256:d0b4a24233ba8a6eb0966b3b6d8d52dfc5c33577fc8033e693f9aa181f3e2330
+ size: 44211
+ checksum: sha256:3c57cee7cf3de7a79bef821448b01f48473d2fb9367509f57912a2f1ae7c3009
name: perl-Git
- evr: 2.47.3-1.el9_6
- sourcerpm: git-2.47.3-1.el9_6.src.rpm
+ evr: 2.52.0-1.el9
+ sourcerpm: git-2.52.0-1.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm
repoid: ubi-9-for-x86_64-appstream-rpms
size: 58720
@@ -2368,27 +2312,27 @@ arches:
name: perl-vars
evr: 1.05-481.1.el9_6
sourcerpm: perl-5.32.1-481.1.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-2.9.6-27.el9.x86_64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-2.9.6-28.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 100903
- checksum: sha256:8551b711718596fbfef6622bbf32f785864959af9d06a76da2545ec9f3a126e7
+ size: 102444
+ checksum: sha256:3b415381d4bd307686268ec42f646c7770f6a815de73a40a88aab7a7061b30a9
name: cracklib
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-dicts-2.9.6-27.el9.x86_64.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 3821230
- checksum: sha256:ab4356c86bdc996dc9e55703a7ae936e3e46aec6ebf6d6f008e126ff06e83df2
+ size: 3829431
+ checksum: sha256:61c11d3c23b62016b9939f917bb7f7e03cba324eb4ad35b375387ce9f18e25a1
name: cracklib-dicts
- evr: 2.9.6-27.el9
- sourcerpm: cracklib-2.9.6-27.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/e/expat-2.5.0-5.el9_6.x86_64.rpm
+ evr: 2.9.6-28.el9
+ sourcerpm: cracklib-2.9.6-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.1.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 121835
- checksum: sha256:63522da84934e944305c9e206894031988ab9e561bba2e6c131d76093d1a0211
+ size: 126909
+ checksum: sha256:6a0c98d67b643fe620297e4cd7e990f99a86ed6bc90a8295a952c626ecbb9f62
name: expat
- evr: 2.5.0-5.el9_6
- sourcerpm: expat-2.5.0-5.el9_6.src.rpm
+ evr: 2.5.0-6.el9_8.1
+ sourcerpm: expat-2.5.0-6.el9_8.1.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/groff-base-1.22.4-10.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
size: 1133828
@@ -2424,27 +2368,27 @@ arches:
name: libdb
evr: 5.3.28-57.el9_6
sourcerpm: libdb-5.3.28-57.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libeconf-0.4.1-4.el9.x86_64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 30371
- checksum: sha256:f7998382ca1be7836f6af05d42dc03f88799abcb10aa7a761e16f74058598012
+ size: 33179
+ checksum: sha256:a570c5baaedeb1445bc2e4f3930b0a709411bbefbdbf463c3e006cbfc7018894
name: libeconf
- evr: 0.4.1-4.el9
- sourcerpm: libeconf-0.4.1-4.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libedit-3.1-38.20210216cvs.el9.x86_64.rpm
+ evr: 0.4.1-7.el9_8
+ sourcerpm: libeconf-0.4.1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libedit-3.1-39.20210216cvs.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 109330
- checksum: sha256:9e41ff5754a5dca1308adf9617828934d56cb60d8d08f128f80e4328f69bc78c
+ size: 112056
+ checksum: sha256:65a730688dfea27934b75af3acf30150c6d254c89d8b68b63233ae7f8b6c9b94
name: libedit
- evr: 3.1-38.20210216cvs.el9
- sourcerpm: libedit-3.1-38.20210216cvs.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libfdisk-2.37.4-21.el9.x86_64.rpm
+ evr: 3.1-39.20210216cvs.el9
+ sourcerpm: libedit-3.1-39.20210216cvs.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 159417
- checksum: sha256:81c7676b72b85d8b5822888c510952ec0996b3d89bf8cddaf76dba31bc72a4a1
+ size: 161769
+ checksum: sha256:1b861f267752e718ce696a80dcc06ef1dde8e9aa73fa2abed3775626d719c124
name: libfdisk
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
- url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libfido2-1.13.0-2.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
size: 102746
@@ -2473,47 +2417,47 @@ arches:
name: ncurses
evr: 6.2-12.20210508.el9
sourcerpm: ncurses-6.2-12.20210508.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssh-8.7p1-46.el9.x86_64.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssh-9.9p1-7.el9_8.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 468611
- checksum: sha256:8c3816392d4bb7e3059f2b66425ebf80c2eb4a5cc19297b53fd955f9f5debccb
+ size: 442163
+ checksum: sha256:e699c3fd161d4741658320f10064bb82ab7530d07d3d34850142ccc102ce7c82
name: openssh
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssh-clients-8.7p1-46.el9.x86_64.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssh-clients-9.9p1-7.el9_8.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 730535
- checksum: sha256:63848ebe2ce679c4c54043bb1264d8708a245b31fd113207178b0cfb6cc4df51
+ size: 798466
+ checksum: sha256:5663973f870ce57e55bb94e94b84ff020d6b24cbaabdca9fed99665f6513c847
name: openssh-clients
- evr: 8.7p1-46.el9
- sourcerpm: openssh-8.7p1-46.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-3.5.1-4.el9_7.x86_64.rpm
+ evr: 9.9p1-7.el9_8
+ sourcerpm: openssh-9.9p1-7.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-3.5.5-4.el9_8.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 1554784
- checksum: sha256:e9c30e80d09e2ef402f5380ce0fa52f9e169d638a0c1c8c7485f7a8ff2d27da0
+ size: 1564134
+ checksum: sha256:e0e2c1f901d3f6245ff43f194ac11ba133cf99c630307239722c07a2282a1356
name: openssl
- evr: 1:3.5.1-4.el9_7
- sourcerpm: openssl-3.5.1-4.el9_7.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pam-1.5.1-26.el9_6.x86_64.rpm
+ evr: 1:3.5.5-4.el9_8
+ sourcerpm: openssl-3.5.5-4.el9_8.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pam-1.5.1-28.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 636788
- checksum: sha256:247027fa7a2236c1fb46756ed372637f85cf85886603a2ad5ba918e4231324bc
+ size: 637912
+ checksum: sha256:15a0a5000af6f57f47c30682f7aacf3959903788e68255132b6a05bb4b713ab1
name: pam
- evr: 1.5.1-26.el9_6
- sourcerpm: pam-1.5.1-26.el9_6.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-2.37.4-21.el9.x86_64.rpm
+ evr: 1.5.1-28.el9
+ sourcerpm: pam-1.5.1-28.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-2.37.4-25.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 2395065
- checksum: sha256:61c795084ae4b7745b904347d4643110cd62558fce2978bd4f025ff83524e55f
+ size: 2382511
+ checksum: sha256:35e0b73e574a7d8e93af0adf54adb2303f03423fd5761e357df86288f59d7933
name: util-linux
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
- - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-core-2.37.4-21.el9.x86_64.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
+ - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.x86_64.rpm
repoid: ubi-9-for-x86_64-baseos-rpms
- size: 480619
- checksum: sha256:36389814fcec56d9b9d4bd1a4a63efb1cefa00bc8bacab73f89ef8f8be04b1cd
+ size: 476811
+ checksum: sha256:5575c8fc753d5a81022786dac33e172a6d1602ef41d247a58465754d3f952726
name: util-linux-core
- evr: 2.37.4-21.el9
- sourcerpm: util-linux-2.37.4-21.el9.src.rpm
+ evr: 2.37.4-25.el9
+ sourcerpm: util-linux-2.37.4-25.el9.src.rpm
source: []
module_metadata: []
diff --git a/head b/head
index bd71e1cf..3eadd0b2 100644
--- a/head
+++ b/head
@@ -1 +1 @@
-768a778f1f7ccee8a4dd142e7f115e12c7e422fd
+c3498c69cf6de9583e1c667e723fd8626af1b33c
diff --git a/upstream/.github/dependabot.yml b/upstream/.github/dependabot.yml
index 8b77b2c3..9c8c29c0 100644
--- a/upstream/.github/dependabot.yml
+++ b/upstream/.github/dependabot.yml
@@ -8,3 +8,7 @@ updates:
directory: "/"
schedule:
interval: "daily"
+ - package-ecosystem: "docker"
+ directory: "/image/base"
+ schedule:
+ interval: "weekly"
diff --git a/upstream/.github/pull_request_template.md b/upstream/.github/pull_request_template.md
new file mode 100644
index 00000000..d786d3fc
--- /dev/null
+++ b/upstream/.github/pull_request_template.md
@@ -0,0 +1,18 @@
+
+
+# Changes
+
+
+
+# Submitter Checklist
+
+- [ ] Includes [tests](https://github.com/tektoncd/community/blob/main/standards.md#tests) for new or changed functionality
+- [ ] Includes [docs](https://github.com/tektoncd/community/blob/main/standards.md#docs) for user-facing changes
+- [ ] Commit messages follow [best practices](https://github.com/tektoncd/community/blob/main/standards.md#commits)
+- [ ] Meets the [Tekton contributor standards](https://github.com/tektoncd/community/blob/main/standards.md)
+
+# Release Notes
+
+```release-note
+NONE
+```
diff --git a/upstream/.github/workflows/base-image.yaml b/upstream/.github/workflows/base-image.yaml
new file mode 100644
index 00000000..9b274de7
--- /dev/null
+++ b/upstream/.github/workflows/base-image.yaml
@@ -0,0 +1,42 @@
+name: Base Image
+
+on:
+ push:
+ branches: [main]
+ paths: ['image/base/**']
+ schedule:
+ - cron: '0 6 * * 1' # Weekly Monday — catch upstream updates
+ workflow_dispatch: {}
+
+permissions:
+ packages: write
+
+jobs:
+ build:
+ name: Build and push base image
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
+
+ - name: Log in to GHCR
+ uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
+ with:
+ context: image/base
+ push: true
+ platforms: linux/amd64,linux/s390x,linux/ppc64le,linux/arm64
+ tags: |
+ ghcr.io/${{ github.repository }}/base:latest
+ ghcr.io/${{ github.repository }}/base:${{ github.sha }}
diff --git a/upstream/.github/workflows/build.yaml b/upstream/.github/workflows/build.yaml
index 37158b1e..5b1019e6 100644
--- a/upstream/.github/workflows/build.yaml
+++ b/upstream/.github/workflows/build.yaml
@@ -4,33 +4,162 @@ on:
pull_request:
branches: ['main']
push:
- branches: [ main ]
+ branches: [main]
schedule:
- cron: '0 0 * * *'
-jobs:
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+jobs:
build:
+ name: Build & Test
+ runs-on: ubuntu-latest
defaults:
run:
working-directory: image/git-init
+ steps:
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
+ with:
+ go-version-file: "image/git-init/go.mod"
+ cache-dependency-path: "image/git-init/go.sum"
+ - run: go build ./...
+ - run: go vet ./...
+ - run: go test ./...
+
+ - name: Verify StepAction is in sync
+ working-directory: .
+ run: |
+ ./hack/generate-stepaction.sh
+ if ! git diff --exit-code stepaction/; then
+ echo "StepAction is out of sync with Task. Run: ./hack/generate-stepaction.sh"
+ exit 1
+ fi
- name: Build ${{ matrix.go-version }}
+ e2e:
+ name: E2E (${{ matrix.pipeline-version }})
+ needs: [build]
runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ # All supported Tekton Pipelines LTS versions
+ # Update quarterly when new LTS is released
+ pipeline-version:
+ - v1.12.0 # LTS, EOL 2027-05-04
+ - v1.9.3 # LTS, EOL 2027-01-30
+ - v1.6.2 # LTS, EOL 2026-10-31
+ - v1.3.4 # LTS, EOL 2026-08-04
+ steps:
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
+ with:
+ go-version-file: "image/git-init/go.mod"
+ cache-dependency-path: "image/git-init/go.sum"
+
+ - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
+
+ - name: Create Kind cluster
+ uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
+ with:
+ cluster_name: kind
+ wait: 120s
+
+ - name: Build base image
+ run: |
+ docker build -t ghcr.io/${{ github.repository }}/base:latest image/base/
+ docker tag ghcr.io/${{ github.repository }}/base:latest ko.local/git-clone-base:latest
+
+ - name: Build and load image into Kind
+ env:
+ KO_DOCKER_REPO: kind.local
+ KO_DEFAULTBASEIMAGE: ko.local/git-clone-base:latest
+ run: |
+ cd image/git-init
+ ko build --sbom=none -B -t e2e .
+ echo "GIT_INIT_IMAGE=kind.local/git-init:e2e" >> "$GITHUB_ENV"
+
+ - name: Run e2e tests
+ env:
+ PIPELINE_VERSION: ${{ matrix.pipeline-version }}
+ TIMEOUT: 180s
+ run: ./test/e2e-tests.sh
+
+ e2e-bundle:
+ name: E2E Bundle
+ needs: [build]
+ runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
- - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+
+ - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: "image/git-init/go.mod"
cache-dependency-path: "image/git-init/go.sum"
- # FIXME: figure out how to configure or use golangci-lint
- # - uses: golang/govulncheck-action@dd3ead030e4f2cf713062f7a3395191802364e13 # v1
- # with:
- # go-package: ./image/git-init/...
- # go-version-input: ${{ matrix.go-version }}
+ - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
+
+ - uses: tektoncd/actions/setup-tektoncd-cli@dd92514472167b361de1c95fd31fc2ef83c282ec # main
- - run: |
- go build ./...
- go test -run=^$ ./...
+ - name: Create Kind cluster
+ uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
+ with:
+ cluster_name: kind
+ wait: 120s
+
+ - name: Build base image
+ run: |
+ docker build -t ghcr.io/${{ github.repository }}/base:latest image/base/
+ docker tag ghcr.io/${{ github.repository }}/base:latest ko.local/git-clone-base:latest
+
+ - name: Build and load image into Kind
+ env:
+ KO_DOCKER_REPO: kind.local
+ KO_DEFAULTBASEIMAGE: ko.local/git-clone-base:latest
+ run: |
+ cd image/git-init
+ ko build --sbom=none -B -t e2e .
+ echo "GIT_INIT_IMAGE=kind.local/git-init:e2e" >> "$GITHUB_ENV"
+
+ - name: Run bundle e2e test
+ env:
+ PIPELINE_VERSION: v1.12.0
+ TIMEOUT: 180s
+ run: ./test/e2e-bundle-test.sh
+
+ ci-summary:
+ name: CI summary
+ needs: [build, e2e, e2e-bundle]
+ runs-on: ubuntu-latest
+ if: always()
+ steps:
+ - name: Check CI results
+ run: |
+ results=(
+ "build=${NEEDS_BUILD_RESULT}"
+ "e2e=${NEEDS_E2E_RESULT}"
+ "e2e-bundle=${NEEDS_E2E_BUNDLE_RESULT}"
+ )
+ failed=0
+ for r in "${results[@]}"; do
+ name="${r%%=*}"
+ result="${r#*=}"
+ echo "${name}: ${result}"
+ if [ "$result" != "success" ] && [ "$result" != "skipped" ]; then
+ failed=1
+ fi
+ done
+ if [ "$failed" -eq 1 ]; then
+ echo ""
+ echo "Some CI jobs failed or were cancelled"
+ exit 1
+ fi
+ echo ""
+ echo "All CI checks passed"
+ env:
+ NEEDS_BUILD_RESULT: ${{ needs.build.result }}
+ NEEDS_E2E_RESULT: ${{ needs.e2e.result }}
+ NEEDS_E2E_BUNDLE_RESULT: ${{ needs.e2e-bundle.result }}
diff --git a/upstream/.github/workflows/release.yaml b/upstream/.github/workflows/release.yaml
index f474ed03..b76af756 100644
--- a/upstream/.github/workflows/release.yaml
+++ b/upstream/.github/workflows/release.yaml
@@ -26,11 +26,11 @@ jobs:
# run:
# working-directory: ./image/git-init
steps:
- - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- run: git fetch --prune --unshallow
- - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
+ - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: "image/git-init/go.mod"
cache-dependency-path: "image/git-init/go.sum"
@@ -38,15 +38,15 @@ jobs:
# This installs the current latest release.
- uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
- - uses: imjasonh/setup-crane@31b88efe9de28ae0ffa220711af4b60be9435f6e # v0.4
+ - uses: imjasonh/setup-crane@59c71e96a00b28651f10369ba3359a6d730740a0 # v0.6
- - uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
+ - uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
- name: Set tag output
id: tag
run: echo "tag_name=${GITHUB_REF#refs/*/}" >> "$GITHUB_OUTPUT"
- - uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
+ - uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7.2.2
id: run-goreleaser
with:
version: latest
@@ -55,6 +55,34 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Push Tekton Bundle
+ uses: tektoncd/actions/setup-tektoncd-cli@dd92514472167b361de1c95fd31fc2ef83c282ec # main
+
+ - name: Publish Tekton Bundle
+ working-directory: .
+ env:
+ GIT_TAG: ${{ steps.tag.outputs.tag_name }}
+ REGISTRY: "ghcr.io/${{ github.repository }}"
+ run: |
+ tkn bundle push "${REGISTRY}/bundle:${GIT_TAG}" \
+ -f task/git-clone/git-clone.yaml \
+ -f stepaction/git-clone/git-clone.yaml
+ tkn bundle push "${REGISTRY}/bundle:latest" \
+ -f task/git-clone/git-clone.yaml \
+ -f stepaction/git-clone/git-clone.yaml
+
+ - name: Sign Tekton Bundle
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GIT_TAG: ${{ steps.tag.outputs.tag_name }}
+ REGISTRY: "ghcr.io/${{ github.repository }}"
+ run: |
+ digest=$(crane digest "${REGISTRY}/bundle:${GIT_TAG}")
+ cosign sign --yes \
+ -a GIT_HASH="${{ github.sha }}" \
+ -a GIT_TAG="${GIT_TAG}" \
+ "${REGISTRY}/bundle@${digest}"
+
- name: sign ko-image
run: |
digest=$(crane digest "${REGISTRY}":"${GIT_TAG}")
@@ -95,7 +123,7 @@ jobs:
with:
base64-subjects: "${{ needs.goreleaser.outputs.hashes }}"
upload-assets: true
- upload-tag-name: "${{ needs.release.outputs.tag_name }}"
+ upload-tag-name: "${{ needs.goreleaser.outputs.tag_name }}"
verification:
needs:
@@ -113,11 +141,11 @@ jobs:
run: |
set -euo pipefail
- gh -R slsa-framework/slsa-verifier release download v1.3.2 -p "slsa-verifier-linux-amd64"
+ gh -R slsa-framework/slsa-verifier release download v2.7.1 -p "slsa-verifier-linux-amd64"
chmod ug+x slsa-verifier-linux-amd64
# Note: see https://github.com/slsa-framework/slsa-verifier/blob/main/SHA256SUM.md
COMPUTED_HASH=$(sha256sum slsa-verifier-linux-amd64 | cut -d ' ' -f1)
- EXPECTED_HASH="b1d6c9bbce6274e253f0be33158cacd7fb894c5ebd643f14a911bfe55574f4c0"
+ EXPECTED_HASH="946dbec729094195e88ef78e1734324a27869f03e2c6bd2f61cbc06bd5350339"
if [[ "$EXPECTED_HASH" != "$COMPUTED_HASH" ]];then
echo "error: expected $EXPECTED_HASH, computed $COMPUTED_HASH"
exit 1
@@ -145,9 +173,9 @@ jobs:
fn=$(echo $line | cut -d ' ' -f2)
echo "Verifying $fn"
- ./slsa-verifier-linux-amd64 -artifact-path "$fn" \
- -provenance "$PROVENANCE" \
- -source "github.com/$GITHUB_REPOSITORY" \
- -tag "$GITHUB_REF_NAME"
+ ./slsa-verifier-linux-amd64 verify-artifact "$fn" \
+ --provenance-path "$PROVENANCE" \
+ --source-uri "github.com/$GITHUB_REPOSITORY" \
+ --source-tag "$GITHUB_REF_NAME"
done <<<"$checksums"
diff --git a/upstream/.gitignore b/upstream/.gitignore
new file mode 100644
index 00000000..a3453fa5
--- /dev/null
+++ b/upstream/.gitignore
@@ -0,0 +1 @@
+keys/signing-key.pem
diff --git a/upstream/AGENTS.md b/upstream/AGENTS.md
new file mode 100644
index 00000000..39395ecd
--- /dev/null
+++ b/upstream/AGENTS.md
@@ -0,0 +1,77 @@
+# AGENTS.md
+
+Guidance for AI coding agents working in `tektoncd-catalog/git-clone`. For full
+detail see [DEVELOPMENT.md](DEVELOPMENT.md).
+
+## Repository structure
+
+| Path | Role |
+|------|------|
+| `task/git-clone/git-clone.yaml` | **Edit this.** The `git-clone` Task — the single source of truth. |
+| `stepaction/git-clone/git-clone.yaml` | **Generated — never edit by hand.** Derived from the Task. |
+| `image/git-init/` | Go source for the `git-init` binary the Task runs (built with `ko`). |
+| `image/base/Dockerfile` | Base image the `git-init` image is built `FROM`. |
+| `hack/generate-stepaction.sh` | Wrapper around the Python generator. |
+| `hack/generate-stepaction.py` | Derives the StepAction from the Task (workspaces → params). |
+| `hack/release.sh` | Release automation. |
+| `hack/apply-ah-changes.py` | Injects the `artifacthub.io/changes` annotation at release. |
+| `test/` | e2e runners (`e2e-tests.sh`, `e2e-bundle-test.sh`). |
+| `keys/` | `cosign.pub`, the public key for verifying signed release bundles. |
+| `.github/workflows/` | `build.yaml` (test/verify/e2e), `release.yaml` (bundle publish), `base-image.yaml`. |
+
+## Critical Rules
+
+1. **Never edit `stepaction/git-clone/git-clone.yaml` directly.** It is
+ generated from the Task. Edit `task/git-clone/git-clone.yaml`, then run
+ `./hack/generate-stepaction.sh`. CI's *Verify StepAction is in sync* step
+ diffs the committed file against a freshly generated one and fails on
+ mismatch.
+2. **No `$(params.*)` in `script:` blocks.** For StepActions `$(params.*)` in
+ scripts is not supported at all; in both Task and StepAction it's an
+ injection risk. Pass values via `env:` and reference the shell env var
+ (e.g. `${PARAM_OUTPUT_PATH}`, `${WORKSPACE_OUTPUT_PATH}`).
+3. **Workspaces map to params in the StepAction.** `output` → `output-path`,
+ `ssh-directory` → `ssh-directory-path`, `basic-auth` → `basic-auth-path`,
+ `ssl-ca-directory` → `ssl-ca-directory-path`. The `WORKSPACE_*_PATH` env
+ vars become `PARAM_*`; the `WORKSPACE_*_BOUND` booleans are dropped. If you
+ change a workspace, update `WORKSPACE_PARAMS` / `WORKSPACE_ENV_MAP` and the
+ `transform_*` functions in `hack/generate-stepaction.py`.
+4. **Sign off every commit** (DCO / EasyCLA): `git commit --signoff`.
+5. **Use conventional commit prefixes** (`feat:`, `fix:`, `docs:`, `chore:`,
+ `ci:`) — the release changelog is derived from them.
+6. **Do not add a `tekton.dev/signature` to the StepAction** — the generator
+ drops it. Trusted Resources signing is intentionally not done in-repo
+ (blocked by tektoncd/cli#2894 and tektoncd/cli#2895); the bundle and image
+ are cosign-signed in the release workflow.
+
+## Common commands
+
+```bash
+./hack/generate-stepaction.sh # regenerate the StepAction from the Task
+./hack/release.sh v1.8.0 --dry-run # preview a release (no changes applied)
+./hack/release.sh v1.8.0 --dry-run --llm # preview with gh copilot changelog
+./test/e2e-tests.sh # e2e in a kind cluster (needs a cluster)
+./test/e2e-bundle-test.sh # bundle-resolver e2e
+(cd image/git-init && go test ./...) # unit tests for the git-init binary
+```
+
+Generation needs `python3` with PyYAML (falls back to `uv tool run --with
+pyyaml`).
+
+## Validating changes locally
+
+1. After editing the Task, run `./hack/generate-stepaction.sh`.
+2. Confirm `git status` shows only intended changes (clean verify step).
+3. Run `go build/vet/test` under `image/git-init` if you touched the binary.
+4. Run the relevant e2e script against a kind cluster.
+5. Update `README.md` if you changed installation or usage.
+
+## Common pitfalls
+
+- Forgetting to run `./hack/generate-stepaction.sh` after editing the Task →
+ CI *Verify StepAction is in sync* fails.
+- Editing `stepaction/git-clone/git-clone.yaml` by hand → overwritten on the
+ next regeneration and rejected by CI.
+- Putting `$(params.*)` in a `script:` block → use env vars instead.
+- Adding a new workspace without updating the generator's mapping tables →
+ the StepAction won't expose the corresponding param.
diff --git a/upstream/CONTRIBUTING.md b/upstream/CONTRIBUTING.md
new file mode 100644
index 00000000..3618cc75
--- /dev/null
+++ b/upstream/CONTRIBUTING.md
@@ -0,0 +1,65 @@
+# Contributing
+
+Thanks for your interest in contributing to `tektoncd-catalog/git-clone`! This
+repository is part of the Tekton Catalog and follows the broader
+[tektoncd-catalog contributing guide](https://github.com/tektoncd-catalog/.github/blob/main/CONTRIBUTING.md).
+
+For technical details on how the repo is structured and generated, see
+[DEVELOPMENT.md](DEVELOPMENT.md).
+
+## Developer Certificate of Origin (DCO) / CLA
+
+All commits must be signed off to certify the
+[Developer Certificate of Origin](https://developercertificate.org/). Add a
+`Signed-off-by` trailer to every commit:
+
+```bash
+git commit --signoff -m "fix: handle empty ssh-directory path"
+```
+
+The sign-off line must match the author's name and email. Contributions are
+also covered by the Linux Foundation
+[EasyCLA](https://github.com/tektoncd/community/blob/main/process.md#contributor-license-agreements)
+check, which runs on pull requests — follow its prompt to sign the CLA the
+first time you contribute.
+
+## Pull request workflow
+
+1. **Fork and branch** from `main`.
+2. **Edit the Task** (`task/git-clone/git-clone.yaml`) and/or the `git-init`
+ image (`image/git-init/`) — never edit the generated
+ `stepaction/git-clone/git-clone.yaml` directly.
+3. **Regenerate** the StepAction and commit both files:
+ ```bash
+ ./hack/generate-stepaction.sh
+ git add task/ stepaction/
+ ```
+4. **Test locally** (see [DEVELOPMENT.md](DEVELOPMENT.md#running-tests-locally)).
+5. **Use conventional commit messages** (`feat:`, `fix:`, `docs:`, `chore:`,
+ `ci:`) — the release changelog is derived from these prefixes.
+6. **Open a PR** with a clear description.
+
+Approvals are managed via `OWNERS` (Prow-based auto-merge).
+
+## CI expectations
+
+Every PR runs `.github/workflows/build.yaml`, which must pass:
+
+- **Build & Test** — `go build ./...`, `go vet ./...`, and `go test ./...` in
+ `image/git-init`.
+- **Verify StepAction is in sync** — runs `./hack/generate-stepaction.sh` and
+ fails if the committed `stepaction/` file differs from a freshly generated
+ one. If this fails, run `./hack/generate-stepaction.sh` and commit the result.
+- **E2E matrix** — installs the Task in a kind cluster and runs the TaskRuns in
+ `task/git-clone/tests/run.yaml` and `stepaction/git-clone/tests/run.yaml`
+ across the supported Tekton Pipelines versions, plus the bundle e2e test.
+
+> [!TIP]
+> Before pushing, run `./hack/generate-stepaction.sh` and make sure
+> `git status` is clean (apart from your intended changes). A stale StepAction
+> is the most common CI failure.
+
+## Code of conduct
+
+This project follows the Tekton
+[Code of Conduct](https://github.com/tektoncd/community/blob/main/code-of-conduct.md).
diff --git a/upstream/DEVELOPMENT.md b/upstream/DEVELOPMENT.md
new file mode 100644
index 00000000..9e6103b3
--- /dev/null
+++ b/upstream/DEVELOPMENT.md
@@ -0,0 +1,190 @@
+# Development
+
+This document explains how the `tektoncd-catalog/git-clone` repository is
+structured and how to develop, generate, test, and release its Task and
+StepAction.
+
+> [!IMPORTANT]
+> The `task/` directory is the **source of truth**. The `stepaction/` directory
+> is **generated** from it. Never edit `stepaction/git-clone/git-clone.yaml`
+> directly — edit the Task and run `./hack/generate-stepaction.sh`.
+
+## Architecture overview
+
+The repository ships a `git-clone` [Task](task/git-clone/) and a derived
+[StepAction](stepaction/git-clone/) for Tekton Pipelines. Both run the
+`git-init` binary built from `image/git-init/`.
+
+```
+image/git-init/ ──► ko build ──► git-init image (gitInitImage param)
+ │
+task/git-clone/git-clone.yaml ─────────┤ (source of truth)
+ │ │
+ └─► hack/generate-stepaction.py ┴─► stepaction/git-clone/git-clone.yaml
+ (generated — do not edit)
+```
+
+Key files:
+
+| Path | Role |
+|------|------|
+| `task/git-clone/git-clone.yaml` | **Hand-edited.** The `git-clone` Task — the single source of truth. |
+| `stepaction/git-clone/git-clone.yaml` | **Generated** from the Task. Do not edit. |
+| `image/git-init/` | Go source for the `git-init` binary the Task runs (built with `ko`). |
+| `image/base/Dockerfile` | Base image (git + tooling) the `git-init` image is built `FROM`. |
+| `hack/generate-stepaction.sh` | Wrapper that runs the Python generator. |
+| `hack/generate-stepaction.py` | Derives the StepAction from the Task (workspaces → params). |
+| `hack/release.sh` | Release automation: bump version → regenerate → changelog → commit → tag → push. |
+| `hack/apply-ah-changes.py` | Injects the `artifacthub.io/changes` annotation during release. |
+| `test/` | e2e runners (`e2e-tests.sh`, `e2e-bundle-test.sh`). |
+| `keys/` | `cosign.pub`, the public key for verifying signed release bundles. |
+| `.github/workflows/` | `build.yaml` (test/verify/e2e), `release.yaml` (bundle publish), `base-image.yaml` (multi-arch base image). |
+
+### Why generate the StepAction?
+
+- **Deterministic:** CI regenerates the StepAction and diffs it against what's
+ committed (the *Verify StepAction is in sync* step in `build.yaml`). The
+ committed file must match exactly.
+- **DRY:** The StepAction is a mechanical transform of the Task, so behaviour
+ stays in lockstep instead of being maintained by hand in two places.
+
+## How generation works
+
+Run:
+
+```bash
+./hack/generate-stepaction.sh
+```
+
+Requirements: `python3` with **PyYAML**. If PyYAML isn't importable directly,
+the wrapper falls back to `uv tool run --with pyyaml`.
+
+`generate-stepaction.py` parses the Task, takes its single step, and produces a
+clean StepAction:
+
+- **Workspaces become params.** The `output`, `ssh-directory`, `basic-auth`,
+ and `ssl-ca-directory` workspaces map to `output-path`,
+ `ssh-directory-path`, `basic-auth-path`, and `ssl-ca-directory-path` params.
+- **Env vars are rewritten.** `WORKSPACE_*_PATH` env vars become `PARAM_*`
+ env vars sourced from `$(params.*-path)`; the `WORKSPACE_*_BOUND` booleans
+ are dropped (the script tests `!= ""` on the path instead).
+- **Script references are rewritten.** `${WORKSPACE_OUTPUT_PATH}` →
+ `${PARAM_OUTPUT_PATH}` etc., and `$(results.*)` → `$(step.results.*)`.
+ Scripts use shell env vars (never `$(params.*)`) because `$(params.*)`
+ substitution is **not allowed in StepAction scripts**.
+- **Descriptions are reworded** ("This Task" → "This StepAction").
+- **The `tekton.dev/signature` annotation is dropped.**
+- The task params (`url`, `revision`, `gitInitImage`, …) and results
+ (`commit`, `url`, …) are carried over.
+
+The generated file starts with a `# This file is generated …` header.
+
+## Modifying the Task or StepAction
+
+To change cloning behaviour, parameters, or results:
+
+1. Edit `task/git-clone/git-clone.yaml`.
+2. Regenerate the StepAction:
+ ```bash
+ ./hack/generate-stepaction.sh
+ ```
+3. Review both files and commit them together.
+
+If you add or rename a workspace/param that affects the StepAction mapping,
+update the `WORKSPACE_PARAMS` / `WORKSPACE_ENV_MAP` tables and the
+`transform_*` functions in `hack/generate-stepaction.py`, then regenerate.
+
+## Building the image
+
+The Task runs the `git-init` binary, shipped as the `gitInitImage`. Build it
+locally with [`ko`](https://ko.build/):
+
+```bash
+cd image/git-init
+ko build --local .
+```
+
+Point the Task at a local build for testing via the `GIT_INIT_IMAGE`
+environment variable understood by the e2e scripts (see below). The base image
+(`image/base/Dockerfile`) is built and pushed multi-arch by
+`.github/workflows/base-image.yaml`.
+
+## Running tests locally
+
+The Go unit tests live under `image/git-init`:
+
+```bash
+cd image/git-init
+go build ./...
+go vet ./...
+go test ./...
+```
+
+E2e tests run against a real Tekton install in a local
+[kind](https://kind.sigs.k8s.io/) cluster:
+
+```bash
+kind create cluster
+
+# Task: install it and run every TaskRun in task/git-clone/tests/run.yaml
+# (and stepaction/git-clone/tests/run.yaml)
+./test/e2e-tests.sh
+
+# Bundle: push the Task as a Tekton bundle and resolve it via the bundle resolver
+./test/e2e-bundle-test.sh
+```
+
+Useful environment variables:
+
+| Var | Default | Meaning |
+|-----|---------|---------|
+| `PIPELINE_VERSION` | `v1.12.0` | Tekton Pipelines release to install |
+| `TIMEOUT` | `120s` | Per-TaskRun timeout |
+| `GIT_INIT_IMAGE` | — | Override `gitInitImage` (e.g. a local `ko build`) |
+| `BUNDLE_REGISTRY` | `ttl.sh` | Registry the bundle test pushes to |
+
+CI (`build.yaml`) runs `go build/vet/test`, the *Verify StepAction is in sync*
+check, and the e2e matrix across the supported Tekton Pipelines versions.
+
+## Release process
+
+Releases are driven by `hack/release.sh`:
+
+```bash
+./hack/release.sh v1.8.0 --dry-run # preview the diff (no changes applied)
+./hack/release.sh v1.8.0 --dry-run --llm # preview with a gh copilot changelog
+./hack/release.sh v1.8.0 # bump, regenerate, commit, tag, push
+```
+
+What it does:
+
+1. Validates the version (`vX.Y.Z`) and that you're on an up-to-date `main`.
+2. Bumps the `app.kubernetes.io/version` label and image/bundle tags in the
+ Task, StepAction, and `README.md`.
+3. Builds a changelog from conventional-commit prefixes (or via `gh copilot`
+ with `--llm`) and injects it as an `artifacthub.io/changes` annotation
+ (`hack/apply-ah-changes.py`).
+4. Regenerates the StepAction from the bumped Task.
+5. Commits (`--signoff`), pushes `main`, creates an annotated tag, and pushes
+ the tag.
+
+The tag push triggers `.github/workflows/release.yaml`, which publishes a
+cosign-signed Tekton bundle and signs the `ko` image.
+
+> [!NOTE]
+> Tekton **Trusted Resources** signing (`tkn task sign`) is intentionally not
+> done in-repo. It's blocked upstream by
+> [tektoncd/cli#2894](https://github.com/tektoncd/cli/issues/2894) and
+> [tektoncd/cli#2895](https://github.com/tektoncd/cli/issues/2895). The
+> released bundle and image are cosign-signed in the release workflow instead.
+
+## Downstream usage
+
+The Task and StepAction are consumed directly (raw URL, `kubectl apply`) or via
+the published cosign-signed Tekton bundle. See [README.md](README.md) for
+installation and bundle-resolver examples.
+
+## See also
+
+- [CONTRIBUTING.md](CONTRIBUTING.md) — contribution workflow and CI expectations.
+- [AGENTS.md](AGENTS.md) — quick reference for AI coding agents.
diff --git a/upstream/README.md b/upstream/README.md
index 66bc563e..f154df4e 100644
--- a/upstream/README.md
+++ b/upstream/README.md
@@ -1,59 +1,66 @@
-# git-clone
-
# Git Clone Task for Tekton
-This repository contains the git-clone Task for Tekton Pipelines, providing Git repository cloning capabilities.
+[](https://artifacthub.io/packages/search?repo=git-clone)
+[](https://artifacthub.io/packages/search?repo=git-clone-stepaction)
-## Recent Fixes
+This repository contains the `git-clone` [Task](task/git-clone/) and [StepAction](stepaction/git-clone/) for [Tekton Pipelines](https://tekton.dev/), providing Git repository cloning capabilities.
-### Git Remote Origin Error Fix
+## Installation
-**Problem**: The git-clone task was logging an error message:
-```
-Error running git [remote get-url origin]: exit status 2
-error: No such remote 'origin'
-```
+Install the Task directly:
-This occurred because the original code tried to check if the "origin" remote existed using `git remote get-url origin`, which fails on fresh repositories where no remotes exist yet.
+```bash
+kubectl apply -f https://raw.githubusercontent.com/tektoncd-catalog/git-clone/main/task/git-clone/git-clone.yaml
+```
-**Solution**: The code now:
-1. Uses `git remote` to safely list existing remotes (this command never fails)
-2. Checks if "origin" is in the list of existing remotes
-3. If the remote exists, updates its URL using `git remote set-url`
-4. If the remote doesn't exist, adds it using `git remote add`
+Or use a [Tekton Bundle](https://tekton.dev/docs/pipelines/tekton-bundle-contracts/) with the bundle resolver:
+
+```yaml
+taskRef:
+ resolver: bundles
+ params:
+ - name: bundle
+ value: ghcr.io/tektoncd-catalog/git-clone/bundle:v1.7.0
+ - name: name
+ value: git-clone
+ - name: kind
+ value: task
+```
-This approach completely eliminates error logging while maintaining all functionality for both fresh repositories and reused workspaces.
+## Quick Start
+
+```yaml
+apiVersion: tekton.dev/v1
+kind: TaskRun
+metadata:
+ generateName: git-clone-
+spec:
+ taskRef:
+ name: git-clone
+ podTemplate:
+ securityContext:
+ fsGroup: 65532
+ workspaces:
+ - name: output
+ emptyDir: {}
+ params:
+ - name: url
+ value: https://github.com/tektoncd-catalog/git-clone
+```
-**Files Modified**:
-- `image/git-init/git/git.go` - Updated the `fetchOrigin` function with robust remote handling
+## Documentation
-**Benefits**:
-- Eliminates spurious error messages in pipeline logs
-- Works correctly with both fresh repositories and reused workspaces
-- Maintains backward compatibility
-- Provides cleaner, more reliable git operations
+- **[Task reference](task/git-clone/README.md)** — full parameter, workspace, and authentication docs ([browse on Artifact Hub](https://artifacthub.io/packages/search?kind=7&repo=git-clone))
+- **[StepAction reference](stepaction/git-clone/README.md)** — composable step version ([browse on Artifact Hub](https://artifacthub.io/packages/search?kind=11&repo=git-clone-stepaction))
+- **[DEVELOPMENT.md](DEVELOPMENT.md)** — architecture, generation, testing, and release process
+- **[CONTRIBUTING.md](CONTRIBUTING.md)** — contribution workflow and CI expectations
+- **[AGENTS.md](AGENTS.md)** — quick reference for AI coding agents
## Building
-To build the updated git-init binary:
+To build the `git-init` image:
+
```bash
cd image/git-init
ko build --local .
```
-
-## Testing
-
-The fix handles these scenarios correctly:
-- Fresh repository: `git remote add origin ` succeeds ✅
-- Reused workspace with same URL: `git remote add` fails → `git remote set-url` succeeds ✅
-- Reused workspace with different URL: `git remote add` fails → `git remote set-url` updates URL ✅
-- Invalid configuration: Both operations fail → reports actual error ✅
-
-## Image Reference:
-```
-ttl.sh/git-init-4025e1c5f1230d5d5dc600e50e1bdbad@sha256:8cf5621926dab695e3ab03777529b680ba812ff3b7ec9cd6610770c2828e5255
-```
-
-## Where to use it:
-
-Let me check the
diff --git a/upstream/hack/apply-ah-changes.py b/upstream/hack/apply-ah-changes.py
new file mode 100644
index 00000000..f6afeabd
--- /dev/null
+++ b/upstream/hack/apply-ah-changes.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+"""Replace artifacthub.io/changes annotation in YAML from stdin, write to stdout.
+
+Usage: cat task.yaml | python3 apply-ah-changes.py changes.txt
+"""
+import re
+import sys
+
+content = sys.stdin.read()
+with open(sys.argv[1]) as f:
+ changes_raw = f.read()
+
+# Normalize and quote all description values
+lines = []
+for line in changes_raw.strip().split('\n'):
+ if not line.strip():
+ continue
+ stripped = line.lstrip()
+ if stripped.startswith('- kind:'):
+ line = ' ' + stripped
+ elif stripped.startswith('description:'):
+ line = ' ' + stripped
+
+ m = re.match(r'(\s+description:\s*)"?(.*?)"?\s*$', line)
+ if m:
+ prefix, val = m.group(1), m.group(2)
+ lines.append(prefix + '"' + val + '"')
+ else:
+ lines.append(line)
+
+new_changes = ' artifacthub.io/changes: |\n' + '\n'.join(lines) + '\n'
+
+# Replace everything from "artifacthub.io/changes: |" up to the next
+# 4-space-indented annotation key (exactly 4 spaces, then a letter)
+content = re.sub(
+ r' artifacthub\.io/changes: \|.*?(?=\n [a-z])',
+ new_changes.rstrip(),
+ content,
+ count=1,
+ flags=re.DOTALL,
+)
+sys.stdout.write(content)
diff --git a/upstream/hack/generate-stepaction.py b/upstream/hack/generate-stepaction.py
new file mode 100644
index 00000000..858c8dc3
--- /dev/null
+++ b/upstream/hack/generate-stepaction.py
@@ -0,0 +1,206 @@
+#!/usr/bin/env python3
+
+# Copyright 2024 The Tekton Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Generate a StepAction YAML from a Task YAML.
+
+Uses PyYAML to properly parse the Task (even if mangled by tkn task sign)
+and produces a clean StepAction.
+
+Requires: pip install pyyaml (or uv tool run --with pyyaml)
+"""
+
+import copy
+import re
+import sys
+import textwrap
+
+import yaml
+
+
+# Custom YAML dumper that preserves multiline strings and quoting
+class StepActionDumper(yaml.SafeDumper):
+ pass
+
+
+def str_representer(dumper, data):
+ if '\n' in data:
+ return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|')
+ # Quote version strings and empty strings
+ if data == '' or re.match(r'^[\d.]+$', data):
+ return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='"')
+ # Quote values that look like booleans
+ if data.lower() in ('true', 'false', 'yes', 'no'):
+ return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='"')
+ return dumper.represent_scalar('tag:yaml.org,2002:str', data)
+
+
+StepActionDumper.add_representer(str, str_representer)
+
+
+# Workspace-to-param mapping
+WORKSPACE_PARAMS = [
+ {
+ 'name': 'output-path',
+ 'description': 'The git repo will be cloned onto this path.',
+ 'type': 'string',
+ },
+ {
+ 'name': 'ssh-directory-path',
+ 'description': 'A .ssh directory with private key, known_hosts, config, etc.\n',
+ 'default': '',
+ },
+ {
+ 'name': 'basic-auth-path',
+ 'description': 'A directory path containing a .gitconfig and .git-credentials file.\n',
+ 'default': '',
+ },
+ {
+ 'name': 'ssl-ca-directory-path',
+ 'description': 'A directory containing CA certificates for HTTPS verification.\n',
+ 'default': '',
+ },
+]
+
+# Env var mapping: workspace env vars → param env vars
+WORKSPACE_ENV_MAP = {
+ 'WORKSPACE_OUTPUT_PATH': ('PARAM_OUTPUT_PATH', '$(params.output-path)'),
+ 'WORKSPACE_SSH_DIRECTORY_BOUND': None, # removed
+ 'WORKSPACE_SSH_DIRECTORY_PATH': ('PARAM_SSH_DIRECTORY_PATH', '$(params.ssh-directory-path)'),
+ 'WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND': None, # removed
+ 'WORKSPACE_BASIC_AUTH_DIRECTORY_PATH': ('PARAM_BASIC_AUTH_DIRECTORY_PATH', '$(params.basic-auth-path)'),
+ 'WORKSPACE_SSL_CA_DIRECTORY_BOUND': None, # removed
+ 'WORKSPACE_SSL_CA_DIRECTORY_PATH': ('PARAM_SSL_CA_DIRECTORY_PATH', '$(params.ssl-ca-directory-path)'),
+}
+
+
+def transform_script(script: str) -> str:
+ """Transform Task script to StepAction script."""
+ s = script
+ # Replace workspace bound checks with path checks
+ s = s.replace('${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}" = "true"',
+ '${PARAM_BASIC_AUTH_DIRECTORY_PATH}" != ""')
+ s = s.replace('${WORKSPACE_SSH_DIRECTORY_BOUND}" = "true"',
+ '${PARAM_SSH_DIRECTORY_PATH}" != ""')
+ s = s.replace('${WORKSPACE_SSL_CA_DIRECTORY_BOUND}" = "true"',
+ '${PARAM_SSL_CA_DIRECTORY_PATH}" != ""')
+ # Replace workspace path references
+ s = s.replace('${WORKSPACE_OUTPUT_PATH}', '${PARAM_OUTPUT_PATH}')
+ s = s.replace('${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}', '${PARAM_BASIC_AUTH_DIRECTORY_PATH}')
+ s = s.replace('${WORKSPACE_SSH_DIRECTORY_PATH}', '${PARAM_SSH_DIRECTORY_PATH}')
+ s = s.replace('${WORKSPACE_SSL_CA_DIRECTORY_PATH}', '${PARAM_SSL_CA_DIRECTORY_PATH}')
+ # Replace results paths
+ s = s.replace('$(results.', '$(step.results.')
+ return s
+
+
+def transform_description(desc: str) -> str:
+ """Transform Task description for StepAction."""
+ d = desc
+ d = re.sub(r'These Tasks are Git tasks to work with repositories used by other tasks',
+ 'This StepAction clones a git repository for use by other steps', d)
+ d = re.sub(r'The git-clone Task will clone a repo from the provided url into the\s+output Workspace\.',
+ 'It clones a repo from the provided url into the output path.', d)
+ d = d.replace("By default the repo will be cloned into the root of\nyour Workspace.",
+ "By default the repo will be cloned into the root of the provided path.")
+ d = d.replace("By default the repo will be cloned into the root of your Workspace.",
+ "By default the repo will be cloned into the root of the provided path.")
+ d = d.replace("this Task's", "this StepAction's")
+ d = d.replace("This Task", "This StepAction")
+ d = d.replace("this Task", "this StepAction")
+ return d
+
+
+def generate(task_file: str, output_file: str) -> None:
+ with open(task_file) as f:
+ task = yaml.safe_load(f)
+
+ step = task['spec']['steps'][0]
+
+ # Build StepAction
+ sa = {
+ 'apiVersion': 'tekton.dev/v1beta1',
+ 'kind': 'StepAction',
+ 'metadata': {
+ 'name': 'git-clone',
+ 'labels': {
+ 'app.kubernetes.io/version': task['metadata'].get('labels', {}).get('app.kubernetes.io/version', '0.1'),
+ },
+ 'annotations': {},
+ },
+ 'spec': {},
+ }
+
+ # Copy annotations, update Task→StepAction references
+ for k, v in task['metadata'].get('annotations', {}).items():
+ if k == 'tekton.dev/signature':
+ continue # don't copy signature
+ sa['metadata']['annotations'][k] = v
+
+ # Description
+ desc = task['spec'].get('description', '')
+ sa['spec']['description'] = transform_description(desc)
+
+ # Params: workspace-replacement params + task params
+ sa['spec']['params'] = copy.deepcopy(WORKSPACE_PARAMS)
+ for p in task['spec']['params']:
+ p2 = copy.deepcopy(p)
+ if 'description' in p2:
+ p2['description'] = p2['description'].replace('this Task', 'this StepAction')
+ sa['spec']['params'].append(p2)
+
+ # Results
+ sa['spec']['results'] = []
+ for r in task['spec'].get('results', []):
+ r2 = copy.deepcopy(r)
+ r2['description'] = r2.get('description', '').replace('this Task', 'this StepAction')
+ sa['spec']['results'].append(r2)
+
+ # Image
+ sa['spec']['image'] = step['image']
+
+ # Env: filter out workspace-bound vars, add workspace-path params
+ sa['spec']['env'] = []
+ for e in step.get('env', []):
+ name = e['name']
+ if name in WORKSPACE_ENV_MAP:
+ mapping = WORKSPACE_ENV_MAP[name]
+ if mapping is None:
+ continue # skip bound check vars
+ sa['spec']['env'].append({'name': mapping[0], 'value': mapping[1]})
+ else:
+ sa['spec']['env'].append(copy.deepcopy(e))
+
+ # SecurityContext
+ if 'securityContext' in step:
+ sa['spec']['securityContext'] = copy.deepcopy(step['securityContext'])
+
+ # Script
+ sa['spec']['script'] = transform_script(step.get('script', ''))
+
+ # Write output
+ header = "# This file is generated from task/git-clone/git-clone.yaml\n"
+ header += "# Do not edit directly — run: ./hack/generate-stepaction.sh\n"
+
+ with open(output_file, 'w') as f:
+ f.write(header)
+ yaml.dump(sa, f, Dumper=StepActionDumper, default_flow_style=False, allow_unicode=True, sort_keys=False)
+
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print(f"Usage: {sys.argv[0]} ")
+ sys.exit(1)
+ generate(sys.argv[1], sys.argv[2])
diff --git a/upstream/hack/generate-stepaction.sh b/upstream/hack/generate-stepaction.sh
new file mode 100755
index 00000000..b90fc0df
--- /dev/null
+++ b/upstream/hack/generate-stepaction.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+# Copyright 2024 The Tekton Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generates stepaction/git-clone/git-clone.yaml from task/git-clone/git-clone.yaml.
+# The Task is the source of truth — the StepAction is derived from it.
+#
+# Requires: python3 (no external dependencies)
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
+
+TASK_FILE="${ROOT_DIR}/task/git-clone/git-clone.yaml"
+STEPACTION_FILE="${ROOT_DIR}/stepaction/git-clone/git-clone.yaml"
+
+if [[ ! -f "${TASK_FILE}" ]]; then
+ echo "Error: ${TASK_FILE} not found"
+ exit 1
+fi
+
+if python3 -c 'import yaml' 2>/dev/null; then
+ python3 "${SCRIPT_DIR}/generate-stepaction.py" "${TASK_FILE}" "${STEPACTION_FILE}"
+elif command -v uv &>/dev/null; then
+ uv tool run --with pyyaml python3 "${SCRIPT_DIR}/generate-stepaction.py" "${TASK_FILE}" "${STEPACTION_FILE}"
+else
+ echo "Error: pyyaml not available. Install with: pip install pyyaml"
+ exit 1
+fi
+
+echo "Generated ${STEPACTION_FILE}"
diff --git a/upstream/hack/release.sh b/upstream/hack/release.sh
new file mode 100755
index 00000000..94b38d9d
--- /dev/null
+++ b/upstream/hack/release.sh
@@ -0,0 +1,261 @@
+#!/usr/bin/env bash
+
+# Copyright 2024 The Tekton Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Release script for tektoncd-catalog/git-clone.
+#
+# Usage:
+# ./hack/release.sh v1.5.0 # bump, commit, tag, push
+# ./hack/release.sh v1.5.0 --dry-run # show what would change
+# ./hack/release.sh v1.5.0 --llm # generate changelog with gh copilot
+#
+# Note: Trusted Resources signing (tkn task sign) is intentionally NOT done here.
+# It is blocked upstream by:
+# - https://github.com/tektoncd/cli/issues/2894 (injects empty resources: {})
+# - https://github.com/tektoncd/cli/issues/2895 (reserializes/reorders whole file)
+# The released bundle and ko image are still cosign-signed in release.yaml.
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
+
+# --- Parse arguments ---
+VERSION=""
+DRY_RUN=false
+USE_LLM=false
+
+for arg in "$@"; do
+ case "${arg}" in
+ --dry-run) DRY_RUN=true ;;
+ --llm) USE_LLM=true ;;
+ v*) VERSION="${arg}" ;;
+ *) echo "Unknown argument: ${arg}"; exit 1 ;;
+ esac
+done
+
+if [[ -z "${VERSION}" ]]; then
+ echo "Usage: $0 [--dry-run] [--llm]"
+ echo " Example: $0 v1.5.0"
+ exit 1
+fi
+
+# Validate version format
+if ! echo "${VERSION}" | grep -qE '^v[0-9]+\.[0-9]+\.[0-9]+$'; then
+ echo "Error: version must match vX.Y.Z (got: ${VERSION})"
+ exit 1
+fi
+
+# Strip the 'v' prefix for places that need bare version
+BARE_VERSION="${VERSION#v}"
+
+cd "${ROOT_DIR}"
+
+# --- Task files to sign (tkn task sign only supports Task, not StepAction) ---
+TASK_FILES=(
+ "task/git-clone/git-clone.yaml"
+)
+
+# --- Detect current version ---
+CURRENT_VERSION=$(grep 'app.kubernetes.io/version' task/git-clone/git-clone.yaml | head -1 | sed 's/.*version: *"\?\([0-9][0-9.]*\)"\?/\1/')
+CURRENT_TAG="v${CURRENT_VERSION}"
+
+echo "=== Release ${VERSION} ==="
+echo " Current: ${CURRENT_TAG}"
+echo " Target: ${VERSION}"
+echo ""
+
+# --- Ensure we're on main and up to date (skip for dry-run) ---
+BRANCH=$(git branch --show-current)
+if [[ "${DRY_RUN}" != true ]]; then
+ if [[ "${BRANCH}" != "main" ]]; then
+ echo "Error: must be on main branch (currently on: ${BRANCH})"
+ exit 1
+ fi
+
+ git fetch origin main
+ LOCAL=$(git rev-parse HEAD)
+ REMOTE=$(git rev-parse origin/main)
+ if [[ "${LOCAL}" != "${REMOTE}" ]]; then
+ echo "Error: local main is not up to date with origin/main"
+ echo " Local: ${LOCAL}"
+ echo " Remote: ${REMOTE}"
+ echo " Run: git pull origin main"
+ exit 1
+ fi
+else
+ git fetch origin main 2>/dev/null || true
+fi
+
+# --- Generate changelog ---
+echo "--- Commits since ${CURRENT_TAG}:"
+COMMITS=$(git log --oneline "${CURRENT_TAG}..HEAD" --no-merges 2>/dev/null || git log --oneline -20)
+echo "${COMMITS}"
+echo ""
+
+if [[ "${USE_LLM}" == true ]]; then
+ echo "--- Generating changelog with gh copilot..."
+
+ PROMPT="Generate a release changelog for version ${VERSION} of the tektoncd-catalog/git-clone project (a Tekton Task for cloning git repositories).
+
+Here are the commits since the last release (${CURRENT_TAG}):
+
+${COMMITS}
+
+Output two sections:
+
+1. An artifacthub.io/changes YAML annotation block (indented with 6 spaces) with entries like:
+ - kind: added|changed|fixed|removed
+ description: Short one-line description
+
+2. A git tag annotation message with this format:
+Release ${VERSION}
+
+:
+-
+
+Use categories like Features, Fixes, Improvements, CI/Infra, Docs. Be concise.
+
+Output the two sections separated by the exact string ---SEPARATOR--- on its own line."
+
+ LLM_OUTPUT=$(gh copilot -p "${PROMPT}" 2>/dev/null || echo "")
+
+ if [[ -n "${LLM_OUTPUT}" ]]; then
+ AH_CHANGES=$(echo "${LLM_OUTPUT}" | sed -n '/^ *- kind:/,/---SEPARATOR---/p' | grep -v '^---SEPARATOR---')
+ TAG_MESSAGE=$(echo "${LLM_OUTPUT}" | sed -n '/^---SEPARATOR---$/,$ p' | tail -n +2 | sed '/^$/d; /^[[:space:]]*$/d' | sed '1{/^$/d}')
+ else
+ echo "Warning: gh copilot not available, falling back to git log"
+ USE_LLM=false
+ fi
+fi
+
+# Sanitize description for Artifact Hub YAML (strip {}[]&*#?|-<>=!%@ or quote)
+# Sanitize and always quote description for Artifact Hub YAML-in-YAML
+# AH parses the changes |block as YAML, so descriptions must be quoted
+sanitize_desc() {
+ local d
+ d=$(echo "$1" | sed 's/[{}]//g; s/[][&*#?|<>=!%@`]//g' | sed 's/ */ /g' | sed 's/^ //;s/ $//')
+ echo "\"${d}\""
+}
+
+if [[ "${USE_LLM}" != true ]]; then
+ # Generate simple changelog from commit types
+ AH_CHANGES=""
+ while IFS= read -r line; do
+ msg="${line#* }" # strip commit hash
+ desc=""
+ case "${msg}" in
+ feat:*|feat\(*) desc=$(sanitize_desc "${msg#*: }"); AH_CHANGES="${AH_CHANGES} - kind: added\n description: ${desc}\n" ;;
+ fix:*|fix\(*) desc=$(sanitize_desc "${msg#*: }"); AH_CHANGES="${AH_CHANGES} - kind: fixed\n description: ${desc}\n" ;;
+ chore:*|ci:*|build*) desc=$(sanitize_desc "${msg#*: }"); AH_CHANGES="${AH_CHANGES} - kind: changed\n description: ${desc}\n" ;;
+ docs:*) desc=$(sanitize_desc "${msg#*: }"); AH_CHANGES="${AH_CHANGES} - kind: changed\n description: ${desc}\n" ;;
+ *) desc=$(sanitize_desc "${msg}"); AH_CHANGES="${AH_CHANGES} - kind: changed\n description: ${desc}\n" ;;
+ esac
+ done <<< "${COMMITS}"
+
+ TAG_MESSAGE="Release ${VERSION}
+
+Changes since ${CURRENT_TAG}:
+$(echo "${COMMITS}" | sed 's/^[a-f0-9]* /- /')"
+fi
+
+echo ""
+echo "--- Artifact Hub changelog:"
+echo -e "${AH_CHANGES}"
+echo ""
+echo "--- Tag message:"
+echo "${TAG_MESSAGE}"
+echo ""
+
+# --- All files to update ---
+ALL_FILES=("${TASK_FILES[@]}" "stepaction/git-clone/git-clone.yaml" "README.md")
+
+echo "--- Version bumps:"
+for f in "${ALL_FILES[@]}"; do
+ echo " ${f}"
+done
+echo ""
+
+# --- Helper: apply version bumps to a file (stdout) ---
+apply_version_bumps() {
+ local f="$1"
+ sed \
+ -e "s|app.kubernetes.io/version: *\"\?${CURRENT_VERSION}\"\?|app.kubernetes.io/version: \"${BARE_VERSION}\"|g" \
+ -e "s|ghcr.io/tektoncd-catalog/git-clone:${CURRENT_TAG}|ghcr.io/tektoncd-catalog/git-clone:${VERSION}|g" \
+ -e "s|ghcr.io/tektoncd-catalog/git-clone/bundle:${CURRENT_TAG}|ghcr.io/tektoncd-catalog/git-clone/bundle:${VERSION}|g" \
+ "${f}"
+}
+
+# --- Helper: update artifacthub changelog in content (stdin → stdout) ---
+apply_ah_changes() {
+ local tmpchanges
+ tmpchanges=$(mktemp)
+ echo -e "${AH_CHANGES}" > "${tmpchanges}"
+ python3 "${SCRIPT_DIR}/apply-ah-changes.py" "${tmpchanges}"
+ rm -f "${tmpchanges}"
+}
+
+if [[ "${DRY_RUN}" == true ]]; then
+ echo "--- Dry run: showing changes ---"
+
+ for f in "${ALL_FILES[@]}"; do
+ echo ""
+ echo "=== ${f} ==="
+ if [[ "${f}" == *".yaml" ]]; then
+ apply_version_bumps "${f}" | apply_ah_changes | diff -u "${f}" - || true
+ else
+ apply_version_bumps "${f}" | diff -u "${f}" - || true
+ fi
+ done
+ echo ""
+ echo "Dry run complete. Run without --dry-run to apply."
+ exit 0
+fi
+
+# --- Apply version bumps ---
+echo "--- Applying version bumps..."
+
+for f in "${ALL_FILES[@]}"; do
+ if [[ "${f}" == *".yaml" ]]; then
+ apply_version_bumps "${f}" | apply_ah_changes > "${f}.tmp" && mv "${f}.tmp" "${f}"
+ else
+ apply_version_bumps "${f}" > "${f}.tmp" && mv "${f}.tmp" "${f}"
+ fi
+done
+
+echo "--- Regenerating StepAction from clean YAML..."
+./hack/generate-stepaction.sh
+
+# Note: Trusted Resources signing (tkn task sign) intentionally omitted.
+# Blocked upstream by tektoncd/cli#2894 and tektoncd/cli#2895.
+# Re-introduce a valid, minimally-invasive committed signature once fixed.
+
+echo "--- Committing..."
+git add "${ALL_FILES[@]}"
+git commit --signoff --message "chore: bump version to ${VERSION}"
+
+echo "--- Pushing to main..."
+git push origin main:main
+
+echo "--- Tagging ${VERSION}..."
+git tag -a "${VERSION}" -m "${TAG_MESSAGE}"
+
+echo "--- Pushing tag..."
+git push origin "refs/tags/${VERSION}:refs/tags/${VERSION}"
+
+echo ""
+echo "=== Release ${VERSION} initiated ==="
+echo " Monitor: gh run list --workflow=release.yaml --limit 1"
+echo " View: https://github.com/tektoncd-catalog/git-clone/releases/tag/${VERSION}"
diff --git a/upstream/image/base/Dockerfile b/upstream/image/base/Dockerfile
new file mode 100644
index 00000000..97d41414
--- /dev/null
+++ b/upstream/image/base/Dockerfile
@@ -0,0 +1,24 @@
+# Copyright 2024 The Tekton Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Base image for git-clone task.
+# Includes git, git-lfs, openssh-client, and a nonroot user (uid 65532)
+# matching Tekton's default securityContext.
+FROM docker.io/alpine/git:v2.54.0@sha256:113d99116e236f93f0b1f53cd46dbda662cf1136d20dc9ae2834962226654d9f
+
+RUN apk add --no-cache git-lfs openssh-client && \
+ adduser -D -u 65532 -G root tekton && \
+ mkdir -p /home/tekton && chown tekton:root /home/tekton
+
+USER tekton
diff --git a/upstream/image/git-init/.goreleaser.yml b/upstream/image/git-init/.goreleaser.yml
index 52bfa7dd..7164e240 100644
--- a/upstream/image/git-init/.goreleaser.yml
+++ b/upstream/image/git-init/.goreleaser.yml
@@ -29,7 +29,7 @@ kos:
- id: git-init-image
build: binary
main: .
- base_image: golang:1.23
+ base_image: ghcr.io/tektoncd-catalog/git-clone/base:latest
platforms:
- all
tags:
diff --git a/upstream/image/git-init/.ko.yaml b/upstream/image/git-init/.ko.yaml
index cd22f7de..3342e133 100644
--- a/upstream/image/git-init/.ko.yaml
+++ b/upstream/image/git-init/.ko.yaml
@@ -1,5 +1 @@
-defaultBaseImage: cgr.dev/chainguard/static
-baseImageOverrides:
- # git-init uses a base image that includes Git, and supports running either
- # as root or as user nonroot with UID 65532.
- github.com/tektoncd-catalog/git-clone/image/git-init: cgr.dev/chainguard/git
\ No newline at end of file
+defaultBaseImage: ghcr.io/tektoncd-catalog/git-clone/base:latest
\ No newline at end of file
diff --git a/upstream/image/git-init/git/git.go b/upstream/image/git-init/git/git.go
index a75cc3c2..e5375643 100644
--- a/upstream/image/git-init/git/git.go
+++ b/upstream/image/git-init/git/git.go
@@ -18,6 +18,7 @@ package git
import (
"bytes"
+ "errors"
"fmt"
"math"
"math/rand"
@@ -30,7 +31,7 @@ import (
"time"
homedir "github.com/mitchellh/go-homedir"
- "github.com/tektoncd/pipeline/pkg/apis/pipeline"
+
"go.uber.org/zap"
)
@@ -42,6 +43,24 @@ const (
// sshURLRegexFormat matches the url of SSH git repository
var sshURLRegexFormat = regexp.MustCompile(`(ssh://[\w\d\.]+|.+@?.+\..+:)(:[\d]+){0,1}/*(.*)`)
+// GitError wraps a failed git command with its stderr/stdout output.
+type GitError struct {
+ Args []string
+ Dir string
+ Output string
+ Err error
+}
+
+func (e *GitError) Error() string {
+ out := strings.TrimSpace(e.Output)
+ if out != "" {
+ return fmt.Sprintf("%v: %s", e.Err, out)
+ }
+ return fmt.Sprintf("%v", e.Err)
+}
+
+func (e *GitError) Unwrap() error { return e.Err }
+
func run(logger *zap.SugaredLogger, dir string, args ...string) (string, error) {
c := exec.Command("git", args...)
var output bytes.Buffer
@@ -54,7 +73,7 @@ func run(logger *zap.SugaredLogger, dir string, args ...string) (string, error)
}
if err := c.Run(); err != nil {
logger.Errorf("Error running git %v: %v\n%v", args, err, output.String())
- return "", err
+ return "", &GitError{Args: args, Dir: dir, Output: output.String(), Err: err}
}
return output.String(), nil
}
@@ -93,7 +112,7 @@ func Fetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig RetryConfig) e
homepath = "/root"
}
ensureHomeEnv(logger, homepath)
- validateGitAuth(logger, pipeline.CredsDir, spec.URL)
+ validateGitAuth(logger, "/tekton/creds", spec.URL)
if spec.Path != "" {
if _, err := run(logger, "", "init", spec.Path); err != nil {
@@ -167,6 +186,11 @@ func Fetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig RetryConfig) e
}
if spec.Depth > 0 {
fetchArgs = append(fetchArgs, fmt.Sprintf("--depth=%d", spec.Depth))
+
+ // Prevent fetching of unrelated git objects with shallow clones.
+ if _, err := run(logger, "", "config", "--unset", "remote.origin.fetch"); err != nil {
+ logger.Warnf("Failed to unset remote.origin.fetch in git config: %s", err)
+ }
}
// Fetch the revision and verify with FETCH_HEAD
@@ -196,11 +220,11 @@ func Fetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig RetryConfig) e
retryConfig.MaxAttempts,
logger,
); err != nil {
- return fmt.Errorf("failed to fetch %v: %v", fetchParam, err)
+ return fmt.Errorf("failed to fetch %v: %w", fetchParam, err)
}
// After performing a fetch, verify that the item to checkout is actually valid
if _, err := ShowCommit(logger, checkoutParam, spec.Path); err != nil {
- return fmt.Errorf("error parsing %s after fetching refspec %s", checkoutParam, spec.Refspec)
+ return fmt.Errorf("error parsing %s after fetching refspec %s: %w", checkoutParam, spec.Refspec, err)
}
if _, err := run(logger, "", "checkout", "-f", checkoutParam); err != nil {
@@ -241,12 +265,7 @@ func showRef(logger *zap.SugaredLogger, revision, path string) (string, error) {
return strings.TrimSuffix(output, "\n"), nil
}
-func submoduleFetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig RetryConfig) error {
- if spec.Path != "" {
- if err := os.Chdir(spec.Path); err != nil {
- return fmt.Errorf("failed to change directory with path %s; err: %w", spec.Path, err)
- }
- }
+func buildSubmoduleUpdateArgs(spec FetchSpec) []string {
updateArgs := []string{"submodule", "update", "--recursive", "--init", "--force"}
if spec.Depth > 0 {
updateArgs = append(updateArgs, fmt.Sprintf("--depth=%d", spec.Depth))
@@ -254,6 +273,16 @@ func submoduleFetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig Retry
if len(spec.SubmodulePaths) > 0 {
updateArgs = append(updateArgs, spec.SubmodulePaths...)
}
+ return updateArgs
+}
+
+func submoduleFetch(logger *zap.SugaredLogger, spec FetchSpec, retryConfig RetryConfig) error {
+ if spec.Path != "" {
+ if err := os.Chdir(spec.Path); err != nil {
+ return fmt.Errorf("failed to change directory with path %s; err: %w", spec.Path, err)
+ }
+ }
+ updateArgs := buildSubmoduleUpdateArgs(spec)
if _, _, err := retryWithBackoff(
func() (string, error) { return run(logger, "", updateArgs...) },
retryConfig.Initial,
@@ -307,7 +336,7 @@ func userHasKnownHostsFile(homepath string) (bool, error) {
}
return false, err
}
- defer f.Close()
+ defer func() { _ = f.Close() }()
return true, nil
}
@@ -352,7 +381,7 @@ func configSparseCheckout(logger *zap.SugaredLogger, spec FetchSpec) error {
}
for _, pattern := range dirPatterns {
if _, err := file.WriteString(pattern + "\n"); err != nil {
- defer file.Close()
+ defer func() { _ = file.Close() }()
logger.Errorf("failed to write to sparse-checkout file: %v", err)
return err
}
@@ -400,3 +429,89 @@ func retryWithBackoff[T any](
waitTime += wait
}
}
+
+var credentialURLPattern = regexp.MustCompile(`(https?://)([^@]+)@`)
+
+func redactCredentials(s string) string {
+ return credentialURLPattern.ReplaceAllString(s, "${1}****@")
+}
+
+type errorHint struct {
+ pattern string
+ hint string
+}
+
+var errorHints = []errorHint{
+ {"could not read username", `The repository may be private. Configure a "basic-auth" or "ssh-directory" workspace to provide credentials.`},
+ {"authentication failed", `The provided credentials were rejected. Verify your "basic-auth" or "ssh-directory" workspace contains valid credentials.`},
+ {"permission denied (publickey)", `The SSH key was rejected. Ensure the "ssh-directory" workspace contains a valid private key with access to the repository.`},
+ {"repository not found", `The repository does not exist or you don't have access. Check the URL and ensure credentials are configured via "basic-auth" or "ssh-directory" workspace if the repository is private.`},
+ {"could not resolve host", `Cannot reach the git server. Check the URL for typos, verify network connectivity, and check "httpProxy"/"httpsProxy" settings if behind a proxy.`},
+ {"ssl certificate problem", `TLS/SSL verification failed. If using a self-signed certificate, provide it via the "ssl-ca-directory" workspace, or set "sslVerify" to "false" (not recommended).`},
+ {"server certificate verification failed", `TLS/SSL verification failed. If using a self-signed certificate, provide it via the "ssl-ca-directory" workspace, or set "sslVerify" to "false" (not recommended).`},
+ {"couldn't find remote ref", "The revision, branch, or tag was not found on the remote. Verify the name exists on the repository."},
+ {"upload-pack: not our ref", "The requested commit SHA does not exist on the remote. It may have been force-pushed over or garbage-collected."},
+ {"reference is not a tree", "The requested commit SHA does not exist on the remote. It may have been force-pushed over or garbage-collected."},
+ {"bad object", "The requested revision does not exist. It may have been force-pushed over or garbage-collected."},
+ {"connection refused", "The git server refused the connection. Verify the URL and that the server is reachable from the cluster."},
+ {"connection timed out", `Connection timed out. Check network/firewall rules and "httpProxy"/"httpsProxy"/"noProxy" settings.`},
+ {"failed to connect", `Cannot connect to the git server. Check network/firewall rules and "httpProxy"/"httpsProxy"/"noProxy" settings.`},
+ {"the remote end hung up unexpectedly", `Transfer was interrupted. Try increasing "retryMaxAttempts" or check network stability. For large repositories, consider using a shallow clone with "depth".`},
+ {"rpc failed", `Transfer was interrupted. Try increasing "retryMaxAttempts" or check network stability. For large repositories, consider using a shallow clone with "depth".`},
+ {"sparse checkout leaves no entry", `The sparse checkout pattern matched no files. Verify the "sparseCheckoutDirectories" parameter.`},
+ {"transport 'file' not allowed", "The git file:// protocol is blocked. This can happen with submodules pointing to local paths."},
+}
+
+// FormatUserFriendlyError produces a human-readable error message with
+// contextual hints and reproduction commands.
+func FormatUserFriendlyError(spec FetchSpec, err error) string {
+ var gitErr *GitError
+ var sb strings.Builder
+
+ sb.WriteString("\n========================================\n")
+ sb.WriteString("Git Clone Failed\n")
+ sb.WriteString("========================================\n\n")
+
+ errOutput := ""
+ if errors.As(err, &gitErr) {
+ errOutput = strings.TrimSpace(gitErr.Output)
+ }
+ if errOutput != "" {
+ sb.WriteString("Error:\n " + redactCredentials(errOutput) + "\n\n")
+ } else {
+ sb.WriteString("Error:\n " + redactCredentials(err.Error()) + "\n\n")
+ }
+
+ fullText := strings.ToLower(errOutput + " " + err.Error())
+ for _, h := range errorHints {
+ if strings.Contains(fullText, h.pattern) {
+ sb.WriteString("Hint:\n " + h.hint + "\n\n")
+ break
+ }
+ }
+
+ url := redactCredentials(spec.URL)
+ sb.WriteString("To reproduce locally, run:\n\n")
+ sb.WriteString(" git init && cd \n")
+ fmt.Fprintf(&sb, " git remote add origin %s\n", url)
+
+ fetchCmd := " git fetch origin"
+ if spec.Depth > 0 {
+ fetchCmd += fmt.Sprintf(" --depth=%d", spec.Depth)
+ }
+ if spec.Refspec != "" {
+ fetchCmd += " " + spec.Refspec
+ } else if spec.Revision != "" {
+ fetchCmd += " " + spec.Revision
+ }
+ sb.WriteString(fetchCmd + "\n")
+
+ if spec.Revision != "" {
+ fmt.Fprintf(&sb, " git checkout %s\n", spec.Revision)
+ } else {
+ sb.WriteString(" git checkout FETCH_HEAD\n")
+ }
+
+ sb.WriteString("\n========================================\n")
+ return sb.String()
+}
diff --git a/upstream/image/git-init/git/git_test.go b/upstream/image/git-init/git/git_test.go
index c0568dd9..df0a985c 100644
--- a/upstream/image/git-init/git/git_test.go
+++ b/upstream/image/git-init/git/git_test.go
@@ -17,6 +17,7 @@ package git
import (
"bufio"
+ "errors"
"fmt"
"os"
"path/filepath"
@@ -204,7 +205,9 @@ func TestUserHasKnownHostsFile(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
homedir := t.TempDir()
if tt.wantKnownHostsFile {
- os.MkdirAll(filepath.Join(homedir, ".ssh"), fileMode)
+ if err := os.MkdirAll(filepath.Join(homedir, ".ssh"), fileMode); err != nil {
+ t.Fatalf("Could not create .ssh dir: %v", err)
+ }
knownHostsFile := filepath.Join(homedir, sshKnownHostsUserPath)
_, err := os.Create(knownHostsFile)
if err != nil {
@@ -361,6 +364,23 @@ func TestFetch(t *testing.T) {
HTTPSProxy: "",
NOProxy: "",
},
+ }, {
+ name: "test-clone-with-depth",
+ logMessage: "Successfully cloned",
+ wantErr: false,
+ spec: FetchSpec{
+ URL: "",
+ Revision: "",
+ Refspec: "",
+ Path: "",
+ Depth: 1,
+ Submodules: false,
+ SSLVerify: false,
+ HTTPProxy: "",
+ HTTPSProxy: "",
+ NOProxy: "",
+ SparseCheckoutDirectories: "",
+ },
},
}
for _, tt := range tests {
@@ -372,6 +392,7 @@ func TestFetch(t *testing.T) {
}
}()
logger := zap.New(observer).Sugar()
+ logLine := 1
submodPath := ""
submodName := "default"
@@ -408,7 +429,7 @@ func TestFetch(t *testing.T) {
if err != nil {
t.Fatal("Unable to read sparse-checkout file")
}
- defer sparseFile.Close()
+ defer func() { _ = sparseFile.Close() }()
var sparsePatterns []string
@@ -421,10 +442,42 @@ func TestFetch(t *testing.T) {
t.Errorf("directory patterns and sparse-checkout patterns do not match")
}
}
- logLine := 1
+
+ if tt.spec.Depth > 0 {
+ shallowFile, err := os.Open(".git/shallow")
+ if err != nil {
+ t.Fatal("Faile to read shallow file")
+ }
+ defer func() { _ = shallowFile.Close() }()
+
+ var commitCount int
+ scanner := bufio.NewScanner(shallowFile)
+ for scanner.Scan() {
+ commitCount++
+ }
+ if commitCount != int(tt.spec.Depth) {
+ t.Errorf("Expected %d commits in shallow file, got %d", tt.spec.Depth, commitCount)
+ }
+
+ // Verify remote.origin.fetch was unset
+ _, err = run(logger, "", "config", "--get", "remote.origin.fetch")
+ if err == nil {
+ t.Error("git fetch config should be unset for a shallow clone")
+ }
+ }
+
if tt.spec.Submodules {
+ submoduleDirs, err := filepath.Glob(".git/modules/*")
+ if err != nil {
+ t.Fatalf("Error finding submodule directories: %v", err)
+ }
+
+ if len(submoduleDirs) == 0 {
+ t.Error("No cloned submodules found")
+ }
logLine = 3
}
+
checkLogMessage(t, tt.logMessage, log, logLine)
})
}
@@ -510,6 +563,48 @@ func (f *SucceedAfter) Run() (string, error) {
return "", fmt.Errorf("temporary error")
}
+func TestBuildSubmoduleUpdateArgs(t *testing.T) {
+ tests := []struct {
+ name string
+ spec FetchSpec
+ expected []string
+ }{
+ {
+ name: "no depth, no submodule paths",
+ spec: FetchSpec{
+ Depth: 0,
+ SubmodulePaths: nil,
+ },
+ expected: []string{"submodule", "update", "--recursive", "--init", "--force"},
+ },
+ {
+ name: "with depth, no submodule paths",
+ spec: FetchSpec{
+ Depth: 5,
+ SubmodulePaths: nil,
+ },
+ expected: []string{"submodule", "update", "--recursive", "--init", "--force", "--depth=5"},
+ },
+ {
+ name: "no depth, with submodule paths",
+ spec: FetchSpec{
+ Depth: 0,
+ SubmodulePaths: []string{"path/to/submod1", "path/to/submod2"},
+ },
+ expected: []string{"submodule", "update", "--recursive", "--init", "--force", "path/to/submod1", "path/to/submod2"},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got := buildSubmoduleUpdateArgs(tt.spec)
+ if diff := cmp.Diff(tt.expected, got); diff != "" {
+ t.Errorf("buildSubmoduleUpdateArgs() mismatch (-want +got):\n%s", diff)
+ }
+ })
+ }
+}
+
func TestRetryWithBackoff(t *testing.T) {
withTemporaryGitConfig(t)
tests := []struct {
@@ -617,3 +712,278 @@ func TestRetryWithBackoff(t *testing.T) {
})
}
}
+
+func TestGitError_Error(t *testing.T) {
+ tests := []struct {
+ name string
+ gitErr GitError
+ expected string
+ }{
+ {
+ name: "with output",
+ gitErr: GitError{
+ Args: []string{"fetch", "origin"},
+ Output: "fatal: could not read Username\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ expected: "exit status 128: fatal: could not read Username",
+ },
+ {
+ name: "without output",
+ gitErr: GitError{
+ Args: []string{"fetch", "origin"},
+ Err: fmt.Errorf("exit status 128"),
+ },
+ expected: "exit status 128",
+ },
+ {
+ name: "empty output",
+ gitErr: GitError{
+ Args: []string{"fetch"},
+ Output: " \n ",
+ Err: fmt.Errorf("exit status 1"),
+ },
+ expected: "exit status 1",
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got := tt.gitErr.Error()
+ if got != tt.expected {
+ t.Errorf("GitError.Error() = %q, want %q", got, tt.expected)
+ }
+ })
+ }
+}
+
+func TestGitError_Unwrap(t *testing.T) {
+ inner := fmt.Errorf("exit status 128")
+ gitErr := &GitError{Err: inner}
+ wrapped := fmt.Errorf("failed to fetch: %w", gitErr)
+
+ var target *GitError
+ if !errors.As(wrapped, &target) {
+ t.Fatal("errors.As should find GitError in wrapped error chain")
+ }
+ if target.Err != inner {
+ t.Errorf("unwrapped inner error = %v, want %v", target.Err, inner)
+ }
+}
+
+func TestRedactCredentials(t *testing.T) {
+ tests := []struct {
+ name string
+ input string
+ expected string
+ }{
+ {
+ name: "https with credentials",
+ input: "https://user:pass@github.com/org/repo",
+ expected: "https://****@github.com/org/repo",
+ },
+ {
+ name: "http with credentials",
+ input: "http://token@gitlab.com/org/repo",
+ expected: "http://****@gitlab.com/org/repo",
+ },
+ {
+ name: "no credentials",
+ input: "https://github.com/org/repo",
+ expected: "https://github.com/org/repo",
+ },
+ {
+ name: "ssh url unchanged",
+ input: "git@github.com:org/repo.git",
+ expected: "git@github.com:org/repo.git",
+ },
+ {
+ name: "credentials in error message",
+ input: "fatal: Authentication failed for 'https://user:secret@github.com/org/repo'",
+ expected: "fatal: Authentication failed for 'https://****@github.com/org/repo'",
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got := redactCredentials(tt.input)
+ if got != tt.expected {
+ t.Errorf("redactCredentials(%q) = %q, want %q", tt.input, got, tt.expected)
+ }
+ })
+ }
+}
+
+func TestFormatUserFriendlyError(t *testing.T) {
+ tests := []struct {
+ name string
+ spec FetchSpec
+ err error
+ wantContains []string
+ wantNotContains []string
+ }{
+ {
+ name: "auth error with hint",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Revision: "abc123",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: could not read Username for 'https://github.com': No such device or address\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "Git Clone Failed",
+ "could not read Username",
+ "basic-auth",
+ "ssh-directory",
+ "git init ",
+ "git remote add origin https://github.com/org/repo",
+ "git fetch origin --depth=1 abc123",
+ "git checkout abc123",
+ },
+ },
+ {
+ name: "unknown error without hint",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Depth: 1,
+ },
+ err: fmt.Errorf("some unknown error"),
+ wantContains: []string{
+ "Git Clone Failed",
+ "some unknown error",
+ "git fetch origin --depth=1",
+ "git checkout FETCH_HEAD",
+ },
+ wantNotContains: []string{
+ "Hint:",
+ },
+ },
+ {
+ name: "case insensitive hint matching",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Depth: 0,
+ },
+ err: &GitError{
+ Output: "FATAL: COULD NOT READ USERNAME\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "Hint:",
+ "basic-auth",
+ },
+ },
+ {
+ name: "credentials redacted in output",
+ spec: FetchSpec{
+ URL: "https://user:secret@github.com/org/repo",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: Authentication failed for 'https://user:secret@github.com/org/repo'\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "****@github.com",
+ },
+ wantNotContains: []string{
+ "user:secret",
+ },
+ },
+ {
+ name: "ssl certificate error",
+ spec: FetchSpec{
+ URL: "https://git.internal.com/repo",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: unable to access: SSL certificate problem: self-signed certificate\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "ssl-ca-directory",
+ "sslVerify",
+ },
+ },
+ {
+ name: "connection refused",
+ spec: FetchSpec{
+ URL: "https://git.example.com/repo",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: unable to access: Failed to connect to git.example.com port 443: Connection refused\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "refused the connection",
+ },
+ },
+ {
+ name: "remote ref not found",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Revision: "nonexistent-branch",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: couldn't find remote ref nonexistent-branch\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "revision, branch, or tag was not found",
+ },
+ },
+ {
+ name: "refspec included in fetch command",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Revision: "main",
+ Refspec: "refs/heads/main:refs/heads/main",
+ Depth: 1,
+ },
+ err: &GitError{
+ Output: "fatal: couldn't find remote ref\n",
+ Err: fmt.Errorf("exit status 128"),
+ },
+ wantContains: []string{
+ "git fetch origin --depth=1 refs/heads/main:refs/heads/main",
+ "git checkout main",
+ },
+ wantNotContains: []string{
+ "git fetch origin --depth=1 main",
+ },
+ },
+ {
+ name: "depth zero omits depth flag",
+ spec: FetchSpec{
+ URL: "https://github.com/org/repo",
+ Revision: "main",
+ Depth: 0,
+ },
+ err: fmt.Errorf("some error"),
+ wantNotContains: []string{
+ "--depth=",
+ },
+ wantContains: []string{
+ "git fetch origin main",
+ },
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got := FormatUserFriendlyError(tt.spec, tt.err)
+ for _, want := range tt.wantContains {
+ if !strings.Contains(got, want) {
+ t.Errorf("FormatUserFriendlyError() missing %q in:\n%s", want, got)
+ }
+ }
+ for _, notWant := range tt.wantNotContains {
+ if strings.Contains(got, notWant) {
+ t.Errorf("FormatUserFriendlyError() should not contain %q in:\n%s", notWant, got)
+ }
+ }
+ })
+ }
+}
diff --git a/upstream/image/git-init/go.mod b/upstream/image/git-init/go.mod
index f3b06988..18c5a497 100644
--- a/upstream/image/git-init/go.mod
+++ b/upstream/image/git-init/go.mod
@@ -1,83 +1,16 @@
module github.com/tektoncd-catalog/git-clone/git-init
-go 1.23.0
+go 1.25.7
require (
github.com/google/go-cmp v0.7.0
github.com/mitchellh/go-homedir v1.1.0
- github.com/tektoncd/pipeline v0.69.0
- go.uber.org/zap v1.27.0
+ go.uber.org/zap v1.28.0
)
require (
- cel.dev/expr v0.19.1 // indirect
- contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d // indirect
- contrib.go.opencensus.io/exporter/prometheus v0.4.2 // indirect
- github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
- github.com/beorn7/perks v1.0.1 // indirect
- github.com/blendle/zapdriver v1.3.1 // indirect
- github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
- github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
- github.com/emicklei/go-restful/v3 v3.12.1 // indirect
- github.com/evanphx/json-patch/v5 v5.9.0 // indirect
- github.com/fxamacker/cbor/v2 v2.7.0 // indirect
- github.com/go-kit/log v0.2.1 // indirect
- github.com/go-logfmt/logfmt v0.5.1 // indirect
- github.com/go-logr/logr v1.4.2 // indirect
- github.com/go-openapi/jsonpointer v0.21.0 // indirect
- github.com/go-openapi/jsonreference v0.21.0 // indirect
- github.com/go-openapi/swag v0.23.0 // indirect
- github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/cel-go v0.23.2 // indirect
- github.com/google/gnostic-models v0.6.8 // indirect
- github.com/google/gofuzz v1.2.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
- github.com/hashicorp/errwrap v1.1.0 // indirect
- github.com/hashicorp/go-multierror v1.1.1 // indirect
- github.com/josharian/intern v1.0.0 // indirect
- github.com/json-iterator/go v1.1.12 // indirect
- github.com/mailru/easyjson v0.7.7 // indirect
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
- github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/pkg/errors v0.9.1 // indirect
- github.com/prometheus/client_golang v1.19.1 // indirect
- github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.55.0 // indirect
- github.com/prometheus/procfs v0.15.1 // indirect
- github.com/prometheus/statsd_exporter v0.22.7 // indirect
- github.com/stoewer/go-strcase v1.2.0 // indirect
- github.com/x448/float16 v0.8.4 // indirect
- go.opencensus.io v0.24.0 // indirect
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
+ github.com/stretchr/testify v1.11.1 // indirect
go.uber.org/multierr v1.11.0 // indirect
- golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
- golang.org/x/net v0.38.0 // indirect
- golang.org/x/oauth2 v0.27.0 // indirect
- golang.org/x/sync v0.12.0 // indirect
- golang.org/x/sys v0.31.0 // indirect
- golang.org/x/term v0.30.0 // indirect
- golang.org/x/text v0.23.0 // indirect
- golang.org/x/time v0.9.0 // indirect
- gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
- google.golang.org/api v0.217.0 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
- google.golang.org/grpc v1.70.0 // indirect
- google.golang.org/protobuf v1.36.5 // indirect
- gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
- gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/api v0.31.6 // indirect
- k8s.io/apimachinery v0.31.6 // indirect
- k8s.io/client-go v0.31.6 // indirect
- k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8 // indirect
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
- knative.dev/pkg v0.0.0-20250117084104-c43477f0052b // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
- sigs.k8s.io/yaml v1.4.0 // indirect
)
diff --git a/upstream/image/git-init/go.sum b/upstream/image/git-init/go.sum
index 020af110..8ab1b64c 100644
--- a/upstream/image/git-init/go.sum
+++ b/upstream/image/git-init/go.sum
@@ -1,705 +1,20 @@
-cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4=
-cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
-cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
-cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
-cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
-cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
-cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
-cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
-cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
-cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
-cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
-cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
-cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
-cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
-cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
-cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
-cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
-cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
-cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
-cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
-cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
-cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
-cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
-cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
-cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
-cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
-cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
-cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
-cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d h1:LblfooH1lKOpp1hIhukktmSAxFkqMPFk9KR6iZ0MJNI=
-contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d/go.mod h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY=
-contrib.go.opencensus.io/exporter/prometheus v0.4.2 h1:sqfsYl5GIY/L570iT+l93ehxaWJs2/OwXtiWwew3oAg=
-contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod h1:dvEHbiKmgvbr5pjaF9fpw1KeYcjrnC1J8B+JKjsZyRQ=
-dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
-github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
-github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE=
-github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=
-github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
-github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudevents/sdk-go/v2 v2.15.2 h1:54+I5xQEnI73RBhWHxbI1XJcqOFOVJN85vb41+8mHUc=
-github.com/cloudevents/sdk-go/v2 v2.15.2/go.mod h1:lL7kSWAE/V8VI4Wh0jbL2v/jvqsm6tjmaQBSvxcv4uE=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU=
-github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
-github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
-github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
-github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
-github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
-github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
-github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
-github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
-github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
-github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
-github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
-github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
-github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
-github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
-github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
-github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
-github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
-github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
-github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
-github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/cel-go v0.23.2 h1:UdEe3CvQh3Nv+E/j9r1Y//WO0K0cSyD7/y0bzyLIMI4=
-github.com/google/cel-go v0.23.2/go.mod h1:52Pb6QsDbC5kvgxvZhiL9QX1oZEkcUF/ZqaPx1J5Wwo=
-github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
-github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
-github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
-github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
-github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
-github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
-github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
-github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
-github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
-github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
-github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
-github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
-github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
-github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
-github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
-github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
-github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/onsi/ginkgo/v2 v2.20.0 h1:PE84V2mHqoT1sglvHc8ZdQtPcwmvvt29WLEEO3xmdZw=
-github.com/onsi/ginkgo/v2 v2.20.0/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI=
-github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
-github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
-github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
-github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
-github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/common v0.35.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
-github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
-github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
-github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
-github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
-github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
-github.com/prometheus/statsd_exporter v0.22.7 h1:7Pji/i2GuhK6Lu7DHrtTkFmNBCudCPT1pX2CziuyQR0=
-github.com/prometheus/statsd_exporter v0.22.7/go.mod h1:N/TevpjkIh9ccs6nuzY3jQn9dFqnUakOjnEuMPJJJnI=
-github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
-github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
-github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/stvp/go-udp-testing v0.0.0-20201019212854-469649b16807/go.mod h1:7jxmlfBCDBXRzr0eAQJ48XC1hBu1np4CS5+cHEYfwpc=
-github.com/tektoncd/pipeline v0.69.0 h1:1KgeNXfsuebg/HQ0lEKO79CDFqKUPrA7gSad5ZbeiHE=
-github.com/tektoncd/pipeline v0.69.0/go.mod h1:n8pgdQTRngXJC06Rii2zunb2GxBz/ZHE5n8AZFx4MdM=
-github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
-github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
-github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
-go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
-go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
-go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
-go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
-go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
-go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
-go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
-go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
-go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
-go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
-go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
-go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
-go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
-golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
-golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
-golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI=
-golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
-golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
-golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
-golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
-golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
-golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
-golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
-golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
-golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
-golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
-golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
-golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
-golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
-golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
-golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
-golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
-gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
-google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
-google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
-google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
-google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
-google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
-google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
-google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
-google.golang.org/api v0.217.0 h1:GYrUtD289o4zl1AhiTZL0jvQGa2RDLyC+kX1N/lfGOU=
-google.golang.org/api v0.217.0/go.mod h1:qMc2E8cBAbQlRypBTBWHklNJlaZZJBwDv81B1Iu8oSI=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
-google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
-google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
-google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
-google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
-google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA=
-google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
-google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
-google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
-google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
-google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
-gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
-gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
-gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo=
+go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.31.6 h1:ocWG/UhC9Mqp5oEfYWy9wCddbZiZyBAFTlBt0LVlhDg=
-k8s.io/api v0.31.6/go.mod h1:i16xSiKMgVIVhsJMxfWq0mJbXA+Z7KhjPgYmwT41hl4=
-k8s.io/apimachinery v0.31.6 h1:Pn96A0wHD0X8+l7QTdAzdLQPrpav1s8rU6A+v2/9UEY=
-k8s.io/apimachinery v0.31.6/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/client-go v0.31.6 h1:51HT40qVIZ13BrHKeWxFuU52uoPnFhxTYJnv4+LTgp4=
-k8s.io/client-go v0.31.6/go.mod h1:MEq7JQJelUQ0/4fMoPEUrc/OOFyGo/9LmGA38H6O6xY=
-k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
-k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8 h1:1Wof1cGQgA5pqgo8MxKPtf+qN6Sh/0JzznmeGPm1HnE=
-k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8/go.mod h1:Os6V6dZwLNii3vxFpxcNaTmH8LJJBkOTg1N0tOA0fvA=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-knative.dev/pkg v0.0.0-20250117084104-c43477f0052b h1:a+gP7Yzu5NmoX2w1p8nfTgmSKF+aHLKGzqYT82ijJTw=
-knative.dev/pkg v0.0.0-20250117084104-c43477f0052b/go.mod h1:bedSpkdLybR6JhL1J7XDLpd+JMKM/x8M5Apr80i5TeE=
-rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
-rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
-rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
-sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
-sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/upstream/image/git-init/kodata/LICENSE b/upstream/image/git-init/kodata/LICENSE
deleted file mode 120000
index 5853aaea..00000000
--- a/upstream/image/git-init/kodata/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-../../../LICENSE
\ No newline at end of file
diff --git a/upstream/image/git-init/kodata/LICENSE b/upstream/image/git-init/kodata/LICENSE
new file mode 100644
index 00000000..7a4a3ea2
--- /dev/null
+++ b/upstream/image/git-init/kodata/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/upstream/image/git-init/main.go b/upstream/image/git-init/main.go
index 63f9ae20..2990763d 100644
--- a/upstream/image/git-init/main.go
+++ b/upstream/image/git-init/main.go
@@ -19,12 +19,12 @@ import (
"encoding/csv"
"flag"
"fmt"
+ "os"
"strings"
"time"
"github.com/tektoncd-catalog/git-clone/git-init/git"
- "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
- "github.com/tektoncd/pipeline/pkg/termination"
+ "github.com/tektoncd-catalog/git-clone/git-init/termination"
"go.uber.org/zap"
)
@@ -32,6 +32,7 @@ var (
fetchSpec git.FetchSpec
retryConfig git.RetryConfig
terminationMessagePath string
+ userFriendlyErrors bool
)
func init() {
@@ -63,6 +64,7 @@ func init() {
flag.DurationVar(&retryConfig.Max, "retryMax", 10*time.Second, "Maximum retry duration for fetch operations")
flag.Float64Var(&retryConfig.Factor, "retryFactor", 2.0, "Retry factor for fetch operations")
flag.IntVar(&retryConfig.MaxAttempts, "retryMaxAttempts", 1, "Maximum number of retry attempts for fetch operations")
+ flag.BoolVar(&userFriendlyErrors, "userFriendlyErrors", true, "Print user-friendly error messages with reproduction commands on failure (set to false to disable)")
}
func main() {
@@ -74,6 +76,12 @@ func main() {
}()
if err := git.Fetch(logger, fetchSpec, retryConfig); err != nil {
+ if userFriendlyErrors {
+ logger.Errorf("Error fetching git repository: %s", err)
+ _ = logger.Sync()
+ fmt.Fprint(os.Stderr, git.FormatUserFriendlyError(fetchSpec, err))
+ os.Exit(1)
+ }
logger.Fatalf("Error fetching git repository: %s", err)
}
@@ -81,7 +89,7 @@ func main() {
if err != nil {
logger.Fatalf("Error parsing revision %s of git repository: %s", fetchSpec.Revision, err)
}
- output := []v1beta1.PipelineResourceResult{
+ output := []termination.Result{
{
Key: "commit",
Value: commit,
diff --git a/upstream/image/git-init/termination/termination.go b/upstream/image/git-init/termination/termination.go
new file mode 100644
index 00000000..25430e63
--- /dev/null
+++ b/upstream/image/git-init/termination/termination.go
@@ -0,0 +1,64 @@
+/*
+Copyright 2019 The Tekton Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package termination writes Tekton results to the pod termination message file.
+package termination
+
+import (
+ "encoding/json"
+ "fmt"
+ "os"
+)
+
+const maxLength = 4096
+
+// Result is a key/value pair written to the termination message.
+type Result struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+// WriteMessage writes results as JSON to the termination message path.
+func WriteMessage(path string, results []Result) error {
+ // If the file already exists, merge with existing entries.
+ if data, err := os.ReadFile(path); err == nil {
+ var existing []Result
+ if err := json.Unmarshal(data, &existing); err == nil {
+ results = append(existing, results...)
+ }
+ } else if !os.IsNotExist(err) {
+ return err
+ }
+
+ out, err := json.Marshal(results)
+ if err != nil {
+ return err
+ }
+ if len(out) > maxLength {
+ return fmt.Errorf("termination message is above max allowed size %d", maxLength)
+ }
+
+ f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, 0666)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ if _, err = f.Write(out); err != nil {
+ return err
+ }
+ return f.Sync()
+}
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/.bazelversion b/upstream/image/git-init/vendor/cel.dev/expr/.bazelversion
deleted file mode 100644
index 26bc914a..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/.bazelversion
+++ /dev/null
@@ -1,2 +0,0 @@
-7.0.1
-# Keep this pinned version in parity with cel-go
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/.gitattributes b/upstream/image/git-init/vendor/cel.dev/expr/.gitattributes
deleted file mode 100644
index 3de1ec21..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-*.pb.go linguist-generated=true
-*.pb.go -diff -merge
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/.gitignore b/upstream/image/git-init/vendor/cel.dev/expr/.gitignore
deleted file mode 100644
index 0d4fed27..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bazel-*
-MODULE.bazel.lock
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/BUILD.bazel b/upstream/image/git-init/vendor/cel.dev/expr/BUILD.bazel
deleted file mode 100644
index 37d8adc9..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/BUILD.bazel
+++ /dev/null
@@ -1,34 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-
-package(default_visibility = ["//visibility:public"])
-
-licenses(["notice"]) # Apache 2.0
-
-go_library(
- name = "expr",
- srcs = [
- "checked.pb.go",
- "eval.pb.go",
- "explain.pb.go",
- "syntax.pb.go",
- "value.pb.go",
- ],
- importpath = "cel.dev/expr",
- visibility = ["//visibility:public"],
- deps = [
- "@org_golang_google_genproto_googleapis_rpc//status:go_default_library",
- "@org_golang_google_protobuf//reflect/protoreflect",
- "@org_golang_google_protobuf//runtime/protoimpl",
- "@org_golang_google_protobuf//types/known/anypb",
- "@org_golang_google_protobuf//types/known/durationpb",
- "@org_golang_google_protobuf//types/known/emptypb",
- "@org_golang_google_protobuf//types/known/structpb",
- "@org_golang_google_protobuf//types/known/timestamppb",
- ],
-)
-
-alias(
- name = "go_default_library",
- actual = ":expr",
- visibility = ["//visibility:public"],
-)
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/CODE_OF_CONDUCT.md b/upstream/image/git-init/vendor/cel.dev/expr/CODE_OF_CONDUCT.md
deleted file mode 100644
index 59908e2d..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor Code of Conduct
-## Version 0.1.1 (adapted from 0.3b-angular)
-
-As contributors and maintainers of the Common Expression Language
-(CEL) project, we pledge to respect everyone who contributes by
-posting issues, updating documentation, submitting pull requests,
-providing feedback in comments, and any other activities.
-
-Communication through any of CEL's channels (GitHub, Gitter, IRC,
-mailing lists, Google+, Twitter, etc.) must be constructive and never
-resort to personal attacks, trolling, public or private harassment,
-insults, or other unprofessional conduct.
-
-We promise to extend courtesy and respect to everyone involved in this
-project regardless of gender, gender identity, sexual orientation,
-disability, age, race, ethnicity, religion, or level of experience. We
-expect anyone contributing to the project to do the same.
-
-If any member of the community violates this code of conduct, the
-maintainers of the CEL project may take action, removing issues,
-comments, and PRs or blocking accounts as deemed appropriate.
-
-If you are subject to or witness unacceptable behavior, or have any
-other concerns, please email us at
-[cel-conduct@google.com](mailto:cel-conduct@google.com).
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/CONTRIBUTING.md b/upstream/image/git-init/vendor/cel.dev/expr/CONTRIBUTING.md
deleted file mode 100644
index 8f5fd5c3..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/CONTRIBUTING.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# How to Contribute
-
-We'd love to accept your patches and contributions to this project. There are a
-few guidelines you need to follow.
-
-## Contributor License Agreement
-
-Contributions to this project must be accompanied by a Contributor License
-Agreement. You (or your employer) retain the copyright to your contribution,
-this simply gives us permission to use and redistribute your contributions as
-part of the project. Head over to to see
-your current agreements on file or to sign a new one.
-
-You generally only need to submit a CLA once, so if you've already submitted one
-(even if it was for a different project), you probably don't need to do it
-again.
-
-## Code reviews
-
-All submissions, including submissions by project members, require review. We
-use GitHub pull requests for this purpose. Consult
-[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
-information on using pull requests.
-
-## What to expect from maintainers
-
-Expect maintainers to respond to new issues or pull requests within a week.
-For outstanding and ongoing issues and particularly for long-running
-pull requests, expect the maintainers to review within a week of a
-contributor asking for a new review. There is no commitment to resolution --
-merging or closing a pull request, or fixing or closing an issue -- because some
-issues will require more discussion than others.
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/GOVERNANCE.md b/upstream/image/git-init/vendor/cel.dev/expr/GOVERNANCE.md
deleted file mode 100644
index 0a525bc1..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/GOVERNANCE.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Project Governance
-
-This document defines the governance process for the CEL language. CEL is
-Google-developed, but openly governed. Major contributors to the CEL
-specification and its corresponding implementations constitute the CEL
-Language Council. New members may be added by a unanimous vote of the
-Council.
-
-The MAINTAINERS.md file lists the members of the CEL Language Council, and
-unofficially indicates the "areas of expertise" of each member with respect
-to the publicly available CEL repos.
-
-## Code Changes
-
-Code changes must follow the standard pull request (PR) model documented in the
-CONTRIBUTING.md for each CEL repo. All fixes and features must be reviewed by a
-maintainer. The maintainer reserves the right to request that any feature
-request (FR) or PR be reviewed by the language council.
-
-## Syntax and Semantic Changes
-
-Syntactic and semantic changes must be reviewed by the CEL Language Council.
-Maintainers may also request language council review at their discretion.
-
-The review process is as follows:
-
-- Create a Feature Request in the CEL-Spec repo. The feature description will
- serve as an abstract for the detailed design document.
-- Co-develop a design document with the Language Council.
-- Once the proposer gives the design document approval, the document will be
- linked to the FR in the CEL-Spec repo and opened for comments to members of
- the cel-lang-discuss@googlegroups.com.
-- The Language Council will review the design doc at the next council meeting
- (once every three weeks) and the council decision included in the document.
-
-If the proposal is approved, the spec will be updated by a maintainer (if
-applicable) and a rationale will be included in the CEL-Spec wiki to ensure
-future developers may follow CEL's growth and direction over time.
-
-Approved proposals may be implemented by the proposer or by the maintainers as
-the parties see fit. At the discretion of the maintainer, changes from the
-approved design are permitted during implementation if they improve the user
-experience and clarity of the feature.
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/LICENSE b/upstream/image/git-init/vendor/cel.dev/expr/LICENSE
deleted file mode 100644
index d6456956..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/MAINTAINERS.md b/upstream/image/git-init/vendor/cel.dev/expr/MAINTAINERS.md
deleted file mode 100644
index 1ed2eb8a..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/MAINTAINERS.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# CEL Language Council
-
-| Name | Company | Area of Expertise |
-|-----------------|--------------|-------------------|
-| Alfred Fuller | Facebook | cel-cpp, cel-spec |
-| Jim Larson | Google | cel-go, cel-spec |
-| Matthais Blume | Google | cel-spec |
-| Tristan Swadell | Google | cel-go, cel-spec |
-
-## Emeritus
-
-* Sanjay Ghemawat (Google)
-* Wolfgang Grieskamp (Facebook)
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/MODULE.bazel b/upstream/image/git-init/vendor/cel.dev/expr/MODULE.bazel
deleted file mode 100644
index 9794266f..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/MODULE.bazel
+++ /dev/null
@@ -1,70 +0,0 @@
-module(
- name = "cel-spec",
-)
-
-bazel_dep(
- name = "bazel_skylib",
- version = "1.7.1",
-)
-bazel_dep(
- name = "gazelle",
- version = "0.36.0",
- repo_name = "bazel_gazelle",
-)
-bazel_dep(
- name = "googleapis",
- version = "0.0.0-20240819-fe8ba054a",
- repo_name = "com_google_googleapis",
-)
-bazel_dep(
- name = "protobuf",
- version = "26.0",
- repo_name = "com_google_protobuf",
-)
-bazel_dep(
- name = "rules_cc",
- version = "0.0.9",
-)
-bazel_dep(
- name = "rules_go",
- version = "0.49.0",
- repo_name = "io_bazel_rules_go",
-)
-bazel_dep(
- name = "rules_java",
- version = "7.6.5",
-)
-bazel_dep(
- name = "rules_proto",
- version = "6.0.0",
-)
-bazel_dep(
- name = "rules_python",
- version = "0.35.0",
-)
-
-### PYTHON ###
-python = use_extension("@rules_python//python/extensions:python.bzl", "python")
-python.toolchain(
- ignore_root_user_error = True,
- python_version = "3.11",
-)
-
-switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules")
-switched_rules.use_languages(
- cc = True,
- go = True,
- java = True,
-)
-use_repo(switched_rules, "com_google_googleapis_imports")
-
-go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
-go_sdk.download(version = "1.21.1")
-
-go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps")
-go_deps.from_file(go_mod = "//:go.mod")
-use_repo(
- go_deps,
- "org_golang_google_genproto_googleapis_rpc",
- "org_golang_google_protobuf",
-)
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/README.md b/upstream/image/git-init/vendor/cel.dev/expr/README.md
deleted file mode 100644
index 7930c0b7..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# Common Expression Language
-
-The Common Expression Language (CEL) implements common semantics for expression
-evaluation, enabling different applications to more easily interoperate.
-
-Key Applications
-
-* Security policy: organizations have complex infrastructure and need common
- tooling to reason about the system as a whole
-* Protocols: expressions are a useful data type and require interoperability
- across programming languages and platforms.
-
-
-Guiding philosophy:
-
-1. Keep it small & fast.
- * CEL evaluates in linear time, is mutation free, and not Turing-complete.
- This limitation is a feature of the language design, which allows the
- implementation to evaluate orders of magnitude faster than equivalently
- sandboxed JavaScript.
-2. Make it extensible.
- * CEL is designed to be embedded in applications, and allows for
- extensibility via its context which allows for functions and data to be
- provided by the software that embeds it.
-3. Developer-friendly.
- * The language is approachable to developers. The initial spec was based
- on the experience of developing Firebase Rules and usability testing
- many prior iterations.
- * The library itself and accompanying toolings should be easy to adopt by
- teams that seek to integrate CEL into their platforms.
-
-The required components of a system that supports CEL are:
-
-* The textual representation of an expression as written by a developer. It is
- of similar syntax to expressions in C/C++/Java/JavaScript
-* A representation of the program's abstract syntax tree (AST).
-* A compiler library that converts the textual representation to the binary
- representation. This can be done ahead of time (in the control plane) or
- just before evaluation (in the data plane).
-* A context containing one or more typed variables, often protobuf messages.
- Most use-cases will use `attribute_context.proto`
-* An evaluator library that takes the binary format in the context and
- produces a result, usually a Boolean.
-
-For use cases which require persistence or cross-process communcation, it is
-highly recommended to serialize the type-checked expression as a protocol
-buffer. The CEL team will maintains canonical protocol buffers for ASTs and
-will keep these versions identical and wire-compatible in perpetuity:
-
-* [CEL canonical](https://github.com/google/cel-spec/tree/master/proto/cel/expr)
-* [CEL v1alpha1](https://github.com/googleapis/googleapis/tree/master/google/api/expr/v1alpha1)
-
-
-Example of boolean conditions and object construction:
-
-``` c
-// Condition
-account.balance >= transaction.withdrawal
- || (account.overdraftProtection
- && account.overdraftLimit >= transaction.withdrawal - account.balance)
-
-// Object construction
-common.GeoPoint{ latitude: 10.0, longitude: -5.5 }
-```
-
-For more detail, see:
-
-* [Introduction](doc/intro.md)
-* [Language Definition](doc/langdef.md)
-
-Released under the [Apache License](LICENSE).
-
-Disclaimer: This is not an official Google product.
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/WORKSPACE b/upstream/image/git-init/vendor/cel.dev/expr/WORKSPACE
deleted file mode 100644
index b6dc9ed6..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/WORKSPACE
+++ /dev/null
@@ -1,145 +0,0 @@
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "io_bazel_rules_go",
- sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
- "https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
- ],
-)
-
-http_archive(
- name = "bazel_gazelle",
- sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
- "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
- ],
-)
-
-http_archive(
- name = "rules_proto",
- sha256 = "e017528fd1c91c5a33f15493e3a398181a9e821a804eb7ff5acdd1d2d6c2b18d",
- strip_prefix = "rules_proto-4.0.0-3.20.0",
- urls = [
- "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0-3.20.0.tar.gz",
- ],
-)
-
-# googleapis as of 09/16/2024
-http_archive(
- name = "com_google_googleapis",
- strip_prefix = "googleapis-4082d5e51e8481f6ccc384cacd896f4e78f19dee",
- sha256 = "57319889d47578b3c89bf1b3f34888d796a8913d63b32d750a4cd12ed303c4e8",
- urls = [
- "https://github.com/googleapis/googleapis/archive/4082d5e51e8481f6ccc384cacd896f4e78f19dee.tar.gz",
- ],
-)
-
-# protobuf
-http_archive(
- name = "com_google_protobuf",
- sha256 = "8242327e5df8c80ba49e4165250b8f79a76bd11765facefaaecfca7747dc8da2",
- strip_prefix = "protobuf-3.21.5",
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.5.zip"],
-)
-
-# googletest
-http_archive(
- name = "com_google_googletest",
- urls = ["https://github.com/google/googletest/archive/master.zip"],
- strip_prefix = "googletest-master",
-)
-
-# gflags
-http_archive(
- name = "com_github_gflags_gflags",
- sha256 = "6e16c8bc91b1310a44f3965e616383dbda48f83e8c1eaa2370a215057b00cabe",
- strip_prefix = "gflags-77592648e3f3be87d6c7123eb81cbad75f9aef5a",
- urls = [
- "https://mirror.bazel.build/github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
- "https://github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
- ],
-)
-
-# glog
-http_archive(
- name = "com_google_glog",
- sha256 = "1ee310e5d0a19b9d584a855000434bb724aa744745d5b8ab1855c85bff8a8e21",
- strip_prefix = "glog-028d37889a1e80e8a07da1b8945ac706259e5fd8",
- urls = [
- "https://mirror.bazel.build/github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
- "https://github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
- ],
-)
-
-# absl
-http_archive(
- name = "com_google_absl",
- strip_prefix = "abseil-cpp-master",
- urls = ["https://github.com/abseil/abseil-cpp/archive/master.zip"],
-)
-
-load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
-load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
-load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
-load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
-load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
-
-switched_rules_by_language(
- name = "com_google_googleapis_imports",
- cc = True,
-)
-
-# Do *not* call *_dependencies(), etc, yet. See comment at the end.
-
-# Generated Google APIs protos for Golang
-# Generated Google APIs protos for Golang 08/26/2024
-go_repository(
- name = "org_golang_google_genproto_googleapis_api",
- build_file_proto_mode = "disable_global",
- importpath = "google.golang.org/genproto/googleapis/api",
- sum = "h1:YcyjlL1PRr2Q17/I0dPk2JmYS5CDXfcdb2Z3YRioEbw=",
- version = "v0.0.0-20240826202546-f6391c0de4c7",
-)
-
-# Generated Google APIs protos for Golang 08/26/2024
-go_repository(
- name = "org_golang_google_genproto_googleapis_rpc",
- build_file_proto_mode = "disable_global",
- importpath = "google.golang.org/genproto/googleapis/rpc",
- sum = "h1:2035KHhUv+EpyB+hWgJnaWKJOdX1E95w2S8Rr4uWKTs=",
- version = "v0.0.0-20240826202546-f6391c0de4c7",
-)
-
-# gRPC deps
-go_repository(
- name = "org_golang_google_grpc",
- build_file_proto_mode = "disable_global",
- importpath = "google.golang.org/grpc",
- tag = "v1.49.0",
-)
-
-go_repository(
- name = "org_golang_x_net",
- importpath = "golang.org/x/net",
- sum = "h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=",
- version = "v0.0.0-20190311183353-d8887717615a",
-)
-
-go_repository(
- name = "org_golang_x_text",
- importpath = "golang.org/x/text",
- sum = "h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=",
- version = "v0.3.2",
-)
-
-# Run the dependencies at the end. These will silently try to import some
-# of the above repositories but at different versions, so ours must come first.
-go_rules_dependencies()
-go_register_toolchains(version = "1.19.1")
-gazelle_dependencies()
-rules_proto_dependencies()
-rules_proto_toolchains()
-protobuf_deps()
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/WORKSPACE.bzlmod b/upstream/image/git-init/vendor/cel.dev/expr/WORKSPACE.bzlmod
deleted file mode 100644
index e69de29b..00000000
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/checked.pb.go b/upstream/image/git-init/vendor/cel.dev/expr/checked.pb.go
deleted file mode 100644
index bb225c8a..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/checked.pb.go
+++ /dev/null
@@ -1,1432 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.28.1
-// protoc v3.21.5
-// source: cel/expr/checked.proto
-
-package expr
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- emptypb "google.golang.org/protobuf/types/known/emptypb"
- structpb "google.golang.org/protobuf/types/known/structpb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Type_PrimitiveType int32
-
-const (
- Type_PRIMITIVE_TYPE_UNSPECIFIED Type_PrimitiveType = 0
- Type_BOOL Type_PrimitiveType = 1
- Type_INT64 Type_PrimitiveType = 2
- Type_UINT64 Type_PrimitiveType = 3
- Type_DOUBLE Type_PrimitiveType = 4
- Type_STRING Type_PrimitiveType = 5
- Type_BYTES Type_PrimitiveType = 6
-)
-
-// Enum value maps for Type_PrimitiveType.
-var (
- Type_PrimitiveType_name = map[int32]string{
- 0: "PRIMITIVE_TYPE_UNSPECIFIED",
- 1: "BOOL",
- 2: "INT64",
- 3: "UINT64",
- 4: "DOUBLE",
- 5: "STRING",
- 6: "BYTES",
- }
- Type_PrimitiveType_value = map[string]int32{
- "PRIMITIVE_TYPE_UNSPECIFIED": 0,
- "BOOL": 1,
- "INT64": 2,
- "UINT64": 3,
- "DOUBLE": 4,
- "STRING": 5,
- "BYTES": 6,
- }
-)
-
-func (x Type_PrimitiveType) Enum() *Type_PrimitiveType {
- p := new(Type_PrimitiveType)
- *p = x
- return p
-}
-
-func (x Type_PrimitiveType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Type_PrimitiveType) Descriptor() protoreflect.EnumDescriptor {
- return file_cel_expr_checked_proto_enumTypes[0].Descriptor()
-}
-
-func (Type_PrimitiveType) Type() protoreflect.EnumType {
- return &file_cel_expr_checked_proto_enumTypes[0]
-}
-
-func (x Type_PrimitiveType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Type_PrimitiveType.Descriptor instead.
-func (Type_PrimitiveType) EnumDescriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 0}
-}
-
-type Type_WellKnownType int32
-
-const (
- Type_WELL_KNOWN_TYPE_UNSPECIFIED Type_WellKnownType = 0
- Type_ANY Type_WellKnownType = 1
- Type_TIMESTAMP Type_WellKnownType = 2
- Type_DURATION Type_WellKnownType = 3
-)
-
-// Enum value maps for Type_WellKnownType.
-var (
- Type_WellKnownType_name = map[int32]string{
- 0: "WELL_KNOWN_TYPE_UNSPECIFIED",
- 1: "ANY",
- 2: "TIMESTAMP",
- 3: "DURATION",
- }
- Type_WellKnownType_value = map[string]int32{
- "WELL_KNOWN_TYPE_UNSPECIFIED": 0,
- "ANY": 1,
- "TIMESTAMP": 2,
- "DURATION": 3,
- }
-)
-
-func (x Type_WellKnownType) Enum() *Type_WellKnownType {
- p := new(Type_WellKnownType)
- *p = x
- return p
-}
-
-func (x Type_WellKnownType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Type_WellKnownType) Descriptor() protoreflect.EnumDescriptor {
- return file_cel_expr_checked_proto_enumTypes[1].Descriptor()
-}
-
-func (Type_WellKnownType) Type() protoreflect.EnumType {
- return &file_cel_expr_checked_proto_enumTypes[1]
-}
-
-func (x Type_WellKnownType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Type_WellKnownType.Descriptor instead.
-func (Type_WellKnownType) EnumDescriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 1}
-}
-
-type CheckedExpr struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- ReferenceMap map[int64]*Reference `protobuf:"bytes,2,rep,name=reference_map,json=referenceMap,proto3" json:"reference_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
- TypeMap map[int64]*Type `protobuf:"bytes,3,rep,name=type_map,json=typeMap,proto3" json:"type_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
- SourceInfo *SourceInfo `protobuf:"bytes,5,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
- ExprVersion string `protobuf:"bytes,6,opt,name=expr_version,json=exprVersion,proto3" json:"expr_version,omitempty"`
- Expr *Expr `protobuf:"bytes,4,opt,name=expr,proto3" json:"expr,omitempty"`
-}
-
-func (x *CheckedExpr) Reset() {
- *x = CheckedExpr{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CheckedExpr) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CheckedExpr) ProtoMessage() {}
-
-func (x *CheckedExpr) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CheckedExpr.ProtoReflect.Descriptor instead.
-func (*CheckedExpr) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *CheckedExpr) GetReferenceMap() map[int64]*Reference {
- if x != nil {
- return x.ReferenceMap
- }
- return nil
-}
-
-func (x *CheckedExpr) GetTypeMap() map[int64]*Type {
- if x != nil {
- return x.TypeMap
- }
- return nil
-}
-
-func (x *CheckedExpr) GetSourceInfo() *SourceInfo {
- if x != nil {
- return x.SourceInfo
- }
- return nil
-}
-
-func (x *CheckedExpr) GetExprVersion() string {
- if x != nil {
- return x.ExprVersion
- }
- return ""
-}
-
-func (x *CheckedExpr) GetExpr() *Expr {
- if x != nil {
- return x.Expr
- }
- return nil
-}
-
-type Type struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to TypeKind:
- //
- // *Type_Dyn
- // *Type_Null
- // *Type_Primitive
- // *Type_Wrapper
- // *Type_WellKnown
- // *Type_ListType_
- // *Type_MapType_
- // *Type_Function
- // *Type_MessageType
- // *Type_TypeParam
- // *Type_Type
- // *Type_Error
- // *Type_AbstractType_
- TypeKind isType_TypeKind `protobuf_oneof:"type_kind"`
-}
-
-func (x *Type) Reset() {
- *x = Type{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Type) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Type) ProtoMessage() {}
-
-func (x *Type) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Type.ProtoReflect.Descriptor instead.
-func (*Type) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1}
-}
-
-func (m *Type) GetTypeKind() isType_TypeKind {
- if m != nil {
- return m.TypeKind
- }
- return nil
-}
-
-func (x *Type) GetDyn() *emptypb.Empty {
- if x, ok := x.GetTypeKind().(*Type_Dyn); ok {
- return x.Dyn
- }
- return nil
-}
-
-func (x *Type) GetNull() structpb.NullValue {
- if x, ok := x.GetTypeKind().(*Type_Null); ok {
- return x.Null
- }
- return structpb.NullValue(0)
-}
-
-func (x *Type) GetPrimitive() Type_PrimitiveType {
- if x, ok := x.GetTypeKind().(*Type_Primitive); ok {
- return x.Primitive
- }
- return Type_PRIMITIVE_TYPE_UNSPECIFIED
-}
-
-func (x *Type) GetWrapper() Type_PrimitiveType {
- if x, ok := x.GetTypeKind().(*Type_Wrapper); ok {
- return x.Wrapper
- }
- return Type_PRIMITIVE_TYPE_UNSPECIFIED
-}
-
-func (x *Type) GetWellKnown() Type_WellKnownType {
- if x, ok := x.GetTypeKind().(*Type_WellKnown); ok {
- return x.WellKnown
- }
- return Type_WELL_KNOWN_TYPE_UNSPECIFIED
-}
-
-func (x *Type) GetListType() *Type_ListType {
- if x, ok := x.GetTypeKind().(*Type_ListType_); ok {
- return x.ListType
- }
- return nil
-}
-
-func (x *Type) GetMapType() *Type_MapType {
- if x, ok := x.GetTypeKind().(*Type_MapType_); ok {
- return x.MapType
- }
- return nil
-}
-
-func (x *Type) GetFunction() *Type_FunctionType {
- if x, ok := x.GetTypeKind().(*Type_Function); ok {
- return x.Function
- }
- return nil
-}
-
-func (x *Type) GetMessageType() string {
- if x, ok := x.GetTypeKind().(*Type_MessageType); ok {
- return x.MessageType
- }
- return ""
-}
-
-func (x *Type) GetTypeParam() string {
- if x, ok := x.GetTypeKind().(*Type_TypeParam); ok {
- return x.TypeParam
- }
- return ""
-}
-
-func (x *Type) GetType() *Type {
- if x, ok := x.GetTypeKind().(*Type_Type); ok {
- return x.Type
- }
- return nil
-}
-
-func (x *Type) GetError() *emptypb.Empty {
- if x, ok := x.GetTypeKind().(*Type_Error); ok {
- return x.Error
- }
- return nil
-}
-
-func (x *Type) GetAbstractType() *Type_AbstractType {
- if x, ok := x.GetTypeKind().(*Type_AbstractType_); ok {
- return x.AbstractType
- }
- return nil
-}
-
-type isType_TypeKind interface {
- isType_TypeKind()
-}
-
-type Type_Dyn struct {
- Dyn *emptypb.Empty `protobuf:"bytes,1,opt,name=dyn,proto3,oneof"`
-}
-
-type Type_Null struct {
- Null structpb.NullValue `protobuf:"varint,2,opt,name=null,proto3,enum=google.protobuf.NullValue,oneof"`
-}
-
-type Type_Primitive struct {
- Primitive Type_PrimitiveType `protobuf:"varint,3,opt,name=primitive,proto3,enum=cel.expr.Type_PrimitiveType,oneof"`
-}
-
-type Type_Wrapper struct {
- Wrapper Type_PrimitiveType `protobuf:"varint,4,opt,name=wrapper,proto3,enum=cel.expr.Type_PrimitiveType,oneof"`
-}
-
-type Type_WellKnown struct {
- WellKnown Type_WellKnownType `protobuf:"varint,5,opt,name=well_known,json=wellKnown,proto3,enum=cel.expr.Type_WellKnownType,oneof"`
-}
-
-type Type_ListType_ struct {
- ListType *Type_ListType `protobuf:"bytes,6,opt,name=list_type,json=listType,proto3,oneof"`
-}
-
-type Type_MapType_ struct {
- MapType *Type_MapType `protobuf:"bytes,7,opt,name=map_type,json=mapType,proto3,oneof"`
-}
-
-type Type_Function struct {
- Function *Type_FunctionType `protobuf:"bytes,8,opt,name=function,proto3,oneof"`
-}
-
-type Type_MessageType struct {
- MessageType string `protobuf:"bytes,9,opt,name=message_type,json=messageType,proto3,oneof"`
-}
-
-type Type_TypeParam struct {
- TypeParam string `protobuf:"bytes,10,opt,name=type_param,json=typeParam,proto3,oneof"`
-}
-
-type Type_Type struct {
- Type *Type `protobuf:"bytes,11,opt,name=type,proto3,oneof"`
-}
-
-type Type_Error struct {
- Error *emptypb.Empty `protobuf:"bytes,12,opt,name=error,proto3,oneof"`
-}
-
-type Type_AbstractType_ struct {
- AbstractType *Type_AbstractType `protobuf:"bytes,14,opt,name=abstract_type,json=abstractType,proto3,oneof"`
-}
-
-func (*Type_Dyn) isType_TypeKind() {}
-
-func (*Type_Null) isType_TypeKind() {}
-
-func (*Type_Primitive) isType_TypeKind() {}
-
-func (*Type_Wrapper) isType_TypeKind() {}
-
-func (*Type_WellKnown) isType_TypeKind() {}
-
-func (*Type_ListType_) isType_TypeKind() {}
-
-func (*Type_MapType_) isType_TypeKind() {}
-
-func (*Type_Function) isType_TypeKind() {}
-
-func (*Type_MessageType) isType_TypeKind() {}
-
-func (*Type_TypeParam) isType_TypeKind() {}
-
-func (*Type_Type) isType_TypeKind() {}
-
-func (*Type_Error) isType_TypeKind() {}
-
-func (*Type_AbstractType_) isType_TypeKind() {}
-
-type Decl struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // Types that are assignable to DeclKind:
- //
- // *Decl_Ident
- // *Decl_Function
- DeclKind isDecl_DeclKind `protobuf_oneof:"decl_kind"`
-}
-
-func (x *Decl) Reset() {
- *x = Decl{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Decl) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Decl) ProtoMessage() {}
-
-func (x *Decl) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Decl.ProtoReflect.Descriptor instead.
-func (*Decl) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Decl) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (m *Decl) GetDeclKind() isDecl_DeclKind {
- if m != nil {
- return m.DeclKind
- }
- return nil
-}
-
-func (x *Decl) GetIdent() *Decl_IdentDecl {
- if x, ok := x.GetDeclKind().(*Decl_Ident); ok {
- return x.Ident
- }
- return nil
-}
-
-func (x *Decl) GetFunction() *Decl_FunctionDecl {
- if x, ok := x.GetDeclKind().(*Decl_Function); ok {
- return x.Function
- }
- return nil
-}
-
-type isDecl_DeclKind interface {
- isDecl_DeclKind()
-}
-
-type Decl_Ident struct {
- Ident *Decl_IdentDecl `protobuf:"bytes,2,opt,name=ident,proto3,oneof"`
-}
-
-type Decl_Function struct {
- Function *Decl_FunctionDecl `protobuf:"bytes,3,opt,name=function,proto3,oneof"`
-}
-
-func (*Decl_Ident) isDecl_DeclKind() {}
-
-func (*Decl_Function) isDecl_DeclKind() {}
-
-type Reference struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- OverloadId []string `protobuf:"bytes,3,rep,name=overload_id,json=overloadId,proto3" json:"overload_id,omitempty"`
- Value *Constant `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Reference) Reset() {
- *x = Reference{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Reference) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Reference) ProtoMessage() {}
-
-func (x *Reference) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Reference.ProtoReflect.Descriptor instead.
-func (*Reference) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Reference) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *Reference) GetOverloadId() []string {
- if x != nil {
- return x.OverloadId
- }
- return nil
-}
-
-func (x *Reference) GetValue() *Constant {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-type Type_ListType struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- ElemType *Type `protobuf:"bytes,1,opt,name=elem_type,json=elemType,proto3" json:"elem_type,omitempty"`
-}
-
-func (x *Type_ListType) Reset() {
- *x = Type_ListType{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Type_ListType) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Type_ListType) ProtoMessage() {}
-
-func (x *Type_ListType) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Type_ListType.ProtoReflect.Descriptor instead.
-func (*Type_ListType) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *Type_ListType) GetElemType() *Type {
- if x != nil {
- return x.ElemType
- }
- return nil
-}
-
-type Type_MapType struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- KeyType *Type `protobuf:"bytes,1,opt,name=key_type,json=keyType,proto3" json:"key_type,omitempty"`
- ValueType *Type `protobuf:"bytes,2,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"`
-}
-
-func (x *Type_MapType) Reset() {
- *x = Type_MapType{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Type_MapType) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Type_MapType) ProtoMessage() {}
-
-func (x *Type_MapType) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Type_MapType.ProtoReflect.Descriptor instead.
-func (*Type_MapType) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 1}
-}
-
-func (x *Type_MapType) GetKeyType() *Type {
- if x != nil {
- return x.KeyType
- }
- return nil
-}
-
-func (x *Type_MapType) GetValueType() *Type {
- if x != nil {
- return x.ValueType
- }
- return nil
-}
-
-type Type_FunctionType struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- ResultType *Type `protobuf:"bytes,1,opt,name=result_type,json=resultType,proto3" json:"result_type,omitempty"`
- ArgTypes []*Type `protobuf:"bytes,2,rep,name=arg_types,json=argTypes,proto3" json:"arg_types,omitempty"`
-}
-
-func (x *Type_FunctionType) Reset() {
- *x = Type_FunctionType{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Type_FunctionType) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Type_FunctionType) ProtoMessage() {}
-
-func (x *Type_FunctionType) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Type_FunctionType.ProtoReflect.Descriptor instead.
-func (*Type_FunctionType) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 2}
-}
-
-func (x *Type_FunctionType) GetResultType() *Type {
- if x != nil {
- return x.ResultType
- }
- return nil
-}
-
-func (x *Type_FunctionType) GetArgTypes() []*Type {
- if x != nil {
- return x.ArgTypes
- }
- return nil
-}
-
-type Type_AbstractType struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- ParameterTypes []*Type `protobuf:"bytes,2,rep,name=parameter_types,json=parameterTypes,proto3" json:"parameter_types,omitempty"`
-}
-
-func (x *Type_AbstractType) Reset() {
- *x = Type_AbstractType{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Type_AbstractType) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Type_AbstractType) ProtoMessage() {}
-
-func (x *Type_AbstractType) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Type_AbstractType.ProtoReflect.Descriptor instead.
-func (*Type_AbstractType) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 3}
-}
-
-func (x *Type_AbstractType) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *Type_AbstractType) GetParameterTypes() []*Type {
- if x != nil {
- return x.ParameterTypes
- }
- return nil
-}
-
-type Decl_IdentDecl struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Type *Type `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
- Value *Constant `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
- Doc string `protobuf:"bytes,3,opt,name=doc,proto3" json:"doc,omitempty"`
-}
-
-func (x *Decl_IdentDecl) Reset() {
- *x = Decl_IdentDecl{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Decl_IdentDecl) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Decl_IdentDecl) ProtoMessage() {}
-
-func (x *Decl_IdentDecl) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Decl_IdentDecl.ProtoReflect.Descriptor instead.
-func (*Decl_IdentDecl) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (x *Decl_IdentDecl) GetType() *Type {
- if x != nil {
- return x.Type
- }
- return nil
-}
-
-func (x *Decl_IdentDecl) GetValue() *Constant {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-func (x *Decl_IdentDecl) GetDoc() string {
- if x != nil {
- return x.Doc
- }
- return ""
-}
-
-type Decl_FunctionDecl struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Overloads []*Decl_FunctionDecl_Overload `protobuf:"bytes,1,rep,name=overloads,proto3" json:"overloads,omitempty"`
-}
-
-func (x *Decl_FunctionDecl) Reset() {
- *x = Decl_FunctionDecl{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Decl_FunctionDecl) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Decl_FunctionDecl) ProtoMessage() {}
-
-func (x *Decl_FunctionDecl) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Decl_FunctionDecl.ProtoReflect.Descriptor instead.
-func (*Decl_FunctionDecl) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 1}
-}
-
-func (x *Decl_FunctionDecl) GetOverloads() []*Decl_FunctionDecl_Overload {
- if x != nil {
- return x.Overloads
- }
- return nil
-}
-
-type Decl_FunctionDecl_Overload struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- OverloadId string `protobuf:"bytes,1,opt,name=overload_id,json=overloadId,proto3" json:"overload_id,omitempty"`
- Params []*Type `protobuf:"bytes,2,rep,name=params,proto3" json:"params,omitempty"`
- TypeParams []string `protobuf:"bytes,3,rep,name=type_params,json=typeParams,proto3" json:"type_params,omitempty"`
- ResultType *Type `protobuf:"bytes,4,opt,name=result_type,json=resultType,proto3" json:"result_type,omitempty"`
- IsInstanceFunction bool `protobuf:"varint,5,opt,name=is_instance_function,json=isInstanceFunction,proto3" json:"is_instance_function,omitempty"`
- Doc string `protobuf:"bytes,6,opt,name=doc,proto3" json:"doc,omitempty"`
-}
-
-func (x *Decl_FunctionDecl_Overload) Reset() {
- *x = Decl_FunctionDecl_Overload{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_checked_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Decl_FunctionDecl_Overload) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Decl_FunctionDecl_Overload) ProtoMessage() {}
-
-func (x *Decl_FunctionDecl_Overload) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_checked_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Decl_FunctionDecl_Overload.ProtoReflect.Descriptor instead.
-func (*Decl_FunctionDecl_Overload) Descriptor() ([]byte, []int) {
- return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 1, 0}
-}
-
-func (x *Decl_FunctionDecl_Overload) GetOverloadId() string {
- if x != nil {
- return x.OverloadId
- }
- return ""
-}
-
-func (x *Decl_FunctionDecl_Overload) GetParams() []*Type {
- if x != nil {
- return x.Params
- }
- return nil
-}
-
-func (x *Decl_FunctionDecl_Overload) GetTypeParams() []string {
- if x != nil {
- return x.TypeParams
- }
- return nil
-}
-
-func (x *Decl_FunctionDecl_Overload) GetResultType() *Type {
- if x != nil {
- return x.ResultType
- }
- return nil
-}
-
-func (x *Decl_FunctionDecl_Overload) GetIsInstanceFunction() bool {
- if x != nil {
- return x.IsInstanceFunction
- }
- return false
-}
-
-func (x *Decl_FunctionDecl_Overload) GetDoc() string {
- if x != nil {
- return x.Doc
- }
- return ""
-}
-
-var File_cel_expr_checked_proto protoreflect.FileDescriptor
-
-var file_cel_expr_checked_proto_rawDesc = []byte{
- 0x0a, 0x16, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b,
- 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x1a, 0x15, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x73, 0x79, 0x6e,
- 0x74, 0x61, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x03, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x45, 0x78, 0x70, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
- 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78,
- 0x70, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d,
- 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65,
- 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x4d, 0x61,
- 0x70, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x72,
- 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
- 0x65, 0x78, 0x70, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x65,
- 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x1a,
- 0x54, 0x0a, 0x11, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
- 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4a, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x22, 0xe6, 0x09, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x64, 0x79,
- 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48,
- 0x00, 0x52, 0x03, 0x64, 0x79, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6d,
- 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d,
- 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x69,
- 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
- 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76,
- 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
- 0x12, 0x3d, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x54, 0x79, 0x70, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79,
- 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12,
- 0x36, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79,
- 0x70, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6c,
- 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x74,
- 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70,
- 0x65, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08,
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
- 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x66,
- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
- 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a,
- 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
- 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x24, 0x0a,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74,
- 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72,
- 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x41, 0x62, 0x73, 0x74, 0x72,
- 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x62, 0x73, 0x74, 0x72,
- 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x37, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65,
- 0x1a, 0x63, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x6b,
- 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
- 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b,
- 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x61, 0x72, 0x67, 0x54, 0x79,
- 0x70, 0x65, 0x73, 0x1a, 0x5b, 0x0a, 0x0c, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x61, 0x6d,
- 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73,
- 0x22, 0x73, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x49, 0x4d, 0x49, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54,
- 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
- 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49,
- 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34,
- 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x0a,
- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59,
- 0x54, 0x45, 0x53, 0x10, 0x06, 0x22, 0x56, 0x0a, 0x0d, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f,
- 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x45, 0x4c, 0x4c, 0x5f, 0x4b,
- 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
- 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x01,
- 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12,
- 0x0c, 0x0a, 0x08, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x42, 0x0b, 0x0a,
- 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc2, 0x04, 0x0a, 0x04, 0x44,
- 0x65, 0x63, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x63, 0x6c,
- 0x48, 0x00, 0x52, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x46, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6b, 0x0a, 0x09, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x63,
- 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
- 0x10, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x6f,
- 0x63, 0x1a, 0xbe, 0x02, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,
- 0x63, 0x6c, 0x12, 0x42, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,
- 0x63, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x09, 0x6f, 0x76, 0x65,
- 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x1a, 0xe9, 0x01, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x6c,
- 0x6f, 0x61, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f,
- 0x61, 0x64, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
- 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2f, 0x0a,
- 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30,
- 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73,
- 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x10, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64,
- 0x6f, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x6c, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22,
- 0x6a, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x49,
- 0x64, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73,
- 0x74, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2c, 0x0a, 0x0c, 0x64,
- 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x09, 0x44, 0x65, 0x63,
- 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64, 0x65,
- 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
-}
-
-var (
- file_cel_expr_checked_proto_rawDescOnce sync.Once
- file_cel_expr_checked_proto_rawDescData = file_cel_expr_checked_proto_rawDesc
-)
-
-func file_cel_expr_checked_proto_rawDescGZIP() []byte {
- file_cel_expr_checked_proto_rawDescOnce.Do(func() {
- file_cel_expr_checked_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_checked_proto_rawDescData)
- })
- return file_cel_expr_checked_proto_rawDescData
-}
-
-var file_cel_expr_checked_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_cel_expr_checked_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
-var file_cel_expr_checked_proto_goTypes = []interface{}{
- (Type_PrimitiveType)(0), // 0: cel.expr.Type.PrimitiveType
- (Type_WellKnownType)(0), // 1: cel.expr.Type.WellKnownType
- (*CheckedExpr)(nil), // 2: cel.expr.CheckedExpr
- (*Type)(nil), // 3: cel.expr.Type
- (*Decl)(nil), // 4: cel.expr.Decl
- (*Reference)(nil), // 5: cel.expr.Reference
- nil, // 6: cel.expr.CheckedExpr.ReferenceMapEntry
- nil, // 7: cel.expr.CheckedExpr.TypeMapEntry
- (*Type_ListType)(nil), // 8: cel.expr.Type.ListType
- (*Type_MapType)(nil), // 9: cel.expr.Type.MapType
- (*Type_FunctionType)(nil), // 10: cel.expr.Type.FunctionType
- (*Type_AbstractType)(nil), // 11: cel.expr.Type.AbstractType
- (*Decl_IdentDecl)(nil), // 12: cel.expr.Decl.IdentDecl
- (*Decl_FunctionDecl)(nil), // 13: cel.expr.Decl.FunctionDecl
- (*Decl_FunctionDecl_Overload)(nil), // 14: cel.expr.Decl.FunctionDecl.Overload
- (*SourceInfo)(nil), // 15: cel.expr.SourceInfo
- (*Expr)(nil), // 16: cel.expr.Expr
- (*emptypb.Empty)(nil), // 17: google.protobuf.Empty
- (structpb.NullValue)(0), // 18: google.protobuf.NullValue
- (*Constant)(nil), // 19: cel.expr.Constant
-}
-var file_cel_expr_checked_proto_depIdxs = []int32{
- 6, // 0: cel.expr.CheckedExpr.reference_map:type_name -> cel.expr.CheckedExpr.ReferenceMapEntry
- 7, // 1: cel.expr.CheckedExpr.type_map:type_name -> cel.expr.CheckedExpr.TypeMapEntry
- 15, // 2: cel.expr.CheckedExpr.source_info:type_name -> cel.expr.SourceInfo
- 16, // 3: cel.expr.CheckedExpr.expr:type_name -> cel.expr.Expr
- 17, // 4: cel.expr.Type.dyn:type_name -> google.protobuf.Empty
- 18, // 5: cel.expr.Type.null:type_name -> google.protobuf.NullValue
- 0, // 6: cel.expr.Type.primitive:type_name -> cel.expr.Type.PrimitiveType
- 0, // 7: cel.expr.Type.wrapper:type_name -> cel.expr.Type.PrimitiveType
- 1, // 8: cel.expr.Type.well_known:type_name -> cel.expr.Type.WellKnownType
- 8, // 9: cel.expr.Type.list_type:type_name -> cel.expr.Type.ListType
- 9, // 10: cel.expr.Type.map_type:type_name -> cel.expr.Type.MapType
- 10, // 11: cel.expr.Type.function:type_name -> cel.expr.Type.FunctionType
- 3, // 12: cel.expr.Type.type:type_name -> cel.expr.Type
- 17, // 13: cel.expr.Type.error:type_name -> google.protobuf.Empty
- 11, // 14: cel.expr.Type.abstract_type:type_name -> cel.expr.Type.AbstractType
- 12, // 15: cel.expr.Decl.ident:type_name -> cel.expr.Decl.IdentDecl
- 13, // 16: cel.expr.Decl.function:type_name -> cel.expr.Decl.FunctionDecl
- 19, // 17: cel.expr.Reference.value:type_name -> cel.expr.Constant
- 5, // 18: cel.expr.CheckedExpr.ReferenceMapEntry.value:type_name -> cel.expr.Reference
- 3, // 19: cel.expr.CheckedExpr.TypeMapEntry.value:type_name -> cel.expr.Type
- 3, // 20: cel.expr.Type.ListType.elem_type:type_name -> cel.expr.Type
- 3, // 21: cel.expr.Type.MapType.key_type:type_name -> cel.expr.Type
- 3, // 22: cel.expr.Type.MapType.value_type:type_name -> cel.expr.Type
- 3, // 23: cel.expr.Type.FunctionType.result_type:type_name -> cel.expr.Type
- 3, // 24: cel.expr.Type.FunctionType.arg_types:type_name -> cel.expr.Type
- 3, // 25: cel.expr.Type.AbstractType.parameter_types:type_name -> cel.expr.Type
- 3, // 26: cel.expr.Decl.IdentDecl.type:type_name -> cel.expr.Type
- 19, // 27: cel.expr.Decl.IdentDecl.value:type_name -> cel.expr.Constant
- 14, // 28: cel.expr.Decl.FunctionDecl.overloads:type_name -> cel.expr.Decl.FunctionDecl.Overload
- 3, // 29: cel.expr.Decl.FunctionDecl.Overload.params:type_name -> cel.expr.Type
- 3, // 30: cel.expr.Decl.FunctionDecl.Overload.result_type:type_name -> cel.expr.Type
- 31, // [31:31] is the sub-list for method output_type
- 31, // [31:31] is the sub-list for method input_type
- 31, // [31:31] is the sub-list for extension type_name
- 31, // [31:31] is the sub-list for extension extendee
- 0, // [0:31] is the sub-list for field type_name
-}
-
-func init() { file_cel_expr_checked_proto_init() }
-func file_cel_expr_checked_proto_init() {
- if File_cel_expr_checked_proto != nil {
- return
- }
- file_cel_expr_syntax_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_cel_expr_checked_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CheckedExpr); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Type); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Decl); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Reference); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Type_ListType); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Type_MapType); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Type_FunctionType); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Type_AbstractType); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Decl_IdentDecl); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Decl_FunctionDecl); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_checked_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Decl_FunctionDecl_Overload); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_cel_expr_checked_proto_msgTypes[1].OneofWrappers = []interface{}{
- (*Type_Dyn)(nil),
- (*Type_Null)(nil),
- (*Type_Primitive)(nil),
- (*Type_Wrapper)(nil),
- (*Type_WellKnown)(nil),
- (*Type_ListType_)(nil),
- (*Type_MapType_)(nil),
- (*Type_Function)(nil),
- (*Type_MessageType)(nil),
- (*Type_TypeParam)(nil),
- (*Type_Type)(nil),
- (*Type_Error)(nil),
- (*Type_AbstractType_)(nil),
- }
- file_cel_expr_checked_proto_msgTypes[2].OneofWrappers = []interface{}{
- (*Decl_Ident)(nil),
- (*Decl_Function)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_cel_expr_checked_proto_rawDesc,
- NumEnums: 2,
- NumMessages: 13,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_cel_expr_checked_proto_goTypes,
- DependencyIndexes: file_cel_expr_checked_proto_depIdxs,
- EnumInfos: file_cel_expr_checked_proto_enumTypes,
- MessageInfos: file_cel_expr_checked_proto_msgTypes,
- }.Build()
- File_cel_expr_checked_proto = out.File
- file_cel_expr_checked_proto_rawDesc = nil
- file_cel_expr_checked_proto_goTypes = nil
- file_cel_expr_checked_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/cloudbuild.yaml b/upstream/image/git-init/vendor/cel.dev/expr/cloudbuild.yaml
deleted file mode 100644
index c40881f1..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/cloudbuild.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-steps:
-- name: 'gcr.io/cloud-builders/bazel:7.0.1'
- entrypoint: bazel
- args: ['build', '...']
- id: bazel-build
- waitFor: ['-']
-timeout: 15m
-options:
- machineType: 'N1_HIGHCPU_32'
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/eval.pb.go b/upstream/image/git-init/vendor/cel.dev/expr/eval.pb.go
deleted file mode 100644
index 8f651f9c..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/eval.pb.go
+++ /dev/null
@@ -1,490 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.28.1
-// protoc v3.21.5
-// source: cel/expr/eval.proto
-
-package expr
-
-import (
- status "google.golang.org/genproto/googleapis/rpc/status"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type EvalState struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Values []*ExprValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
- Results []*EvalState_Result `protobuf:"bytes,3,rep,name=results,proto3" json:"results,omitempty"`
-}
-
-func (x *EvalState) Reset() {
- *x = EvalState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_eval_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EvalState) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EvalState) ProtoMessage() {}
-
-func (x *EvalState) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_eval_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use EvalState.ProtoReflect.Descriptor instead.
-func (*EvalState) Descriptor() ([]byte, []int) {
- return file_cel_expr_eval_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *EvalState) GetValues() []*ExprValue {
- if x != nil {
- return x.Values
- }
- return nil
-}
-
-func (x *EvalState) GetResults() []*EvalState_Result {
- if x != nil {
- return x.Results
- }
- return nil
-}
-
-type ExprValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to Kind:
- //
- // *ExprValue_Value
- // *ExprValue_Error
- // *ExprValue_Unknown
- Kind isExprValue_Kind `protobuf_oneof:"kind"`
-}
-
-func (x *ExprValue) Reset() {
- *x = ExprValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_eval_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ExprValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ExprValue) ProtoMessage() {}
-
-func (x *ExprValue) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_eval_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ExprValue.ProtoReflect.Descriptor instead.
-func (*ExprValue) Descriptor() ([]byte, []int) {
- return file_cel_expr_eval_proto_rawDescGZIP(), []int{1}
-}
-
-func (m *ExprValue) GetKind() isExprValue_Kind {
- if m != nil {
- return m.Kind
- }
- return nil
-}
-
-func (x *ExprValue) GetValue() *Value {
- if x, ok := x.GetKind().(*ExprValue_Value); ok {
- return x.Value
- }
- return nil
-}
-
-func (x *ExprValue) GetError() *ErrorSet {
- if x, ok := x.GetKind().(*ExprValue_Error); ok {
- return x.Error
- }
- return nil
-}
-
-func (x *ExprValue) GetUnknown() *UnknownSet {
- if x, ok := x.GetKind().(*ExprValue_Unknown); ok {
- return x.Unknown
- }
- return nil
-}
-
-type isExprValue_Kind interface {
- isExprValue_Kind()
-}
-
-type ExprValue_Value struct {
- Value *Value `protobuf:"bytes,1,opt,name=value,proto3,oneof"`
-}
-
-type ExprValue_Error struct {
- Error *ErrorSet `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
-}
-
-type ExprValue_Unknown struct {
- Unknown *UnknownSet `protobuf:"bytes,3,opt,name=unknown,proto3,oneof"`
-}
-
-func (*ExprValue_Value) isExprValue_Kind() {}
-
-func (*ExprValue_Error) isExprValue_Kind() {}
-
-func (*ExprValue_Unknown) isExprValue_Kind() {}
-
-type ErrorSet struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Errors []*status.Status `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
-}
-
-func (x *ErrorSet) Reset() {
- *x = ErrorSet{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_eval_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ErrorSet) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ErrorSet) ProtoMessage() {}
-
-func (x *ErrorSet) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_eval_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ErrorSet.ProtoReflect.Descriptor instead.
-func (*ErrorSet) Descriptor() ([]byte, []int) {
- return file_cel_expr_eval_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ErrorSet) GetErrors() []*status.Status {
- if x != nil {
- return x.Errors
- }
- return nil
-}
-
-type UnknownSet struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Exprs []int64 `protobuf:"varint,1,rep,packed,name=exprs,proto3" json:"exprs,omitempty"`
-}
-
-func (x *UnknownSet) Reset() {
- *x = UnknownSet{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_eval_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *UnknownSet) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*UnknownSet) ProtoMessage() {}
-
-func (x *UnknownSet) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_eval_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use UnknownSet.ProtoReflect.Descriptor instead.
-func (*UnknownSet) Descriptor() ([]byte, []int) {
- return file_cel_expr_eval_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *UnknownSet) GetExprs() []int64 {
- if x != nil {
- return x.Exprs
- }
- return nil
-}
-
-type EvalState_Result struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Expr int64 `protobuf:"varint,1,opt,name=expr,proto3" json:"expr,omitempty"`
- Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *EvalState_Result) Reset() {
- *x = EvalState_Result{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_eval_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EvalState_Result) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EvalState_Result) ProtoMessage() {}
-
-func (x *EvalState_Result) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_eval_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use EvalState_Result.ProtoReflect.Descriptor instead.
-func (*EvalState_Result) Descriptor() ([]byte, []int) {
- return file_cel_expr_eval_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *EvalState_Result) GetExpr() int64 {
- if x != nil {
- return x.Expr
- }
- return 0
-}
-
-func (x *EvalState_Result) GetValue() int64 {
- if x != nil {
- return x.Value
- }
- return 0
-}
-
-var File_cel_expr_eval_proto protoreflect.FileDescriptor
-
-var file_cel_expr_eval_proto_rawDesc = []byte{
- 0x0a, 0x13, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x1a,
- 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70,
- 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa2,
- 0x01, 0x0a, 0x09, 0x45, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x06,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
- 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a,
- 0x32, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, 0x70,
- 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x70, 0x72, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72,
- 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52,
- 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
- 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52,
- 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64,
- 0x22, 0x36, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x06,
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x22, 0x0a, 0x0a, 0x55, 0x6e, 0x6b, 0x6e,
- 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x70, 0x72, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x65, 0x78, 0x70, 0x72, 0x73, 0x42, 0x2c, 0x0a, 0x0c,
- 0x64, 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x09, 0x45, 0x76,
- 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64,
- 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
-}
-
-var (
- file_cel_expr_eval_proto_rawDescOnce sync.Once
- file_cel_expr_eval_proto_rawDescData = file_cel_expr_eval_proto_rawDesc
-)
-
-func file_cel_expr_eval_proto_rawDescGZIP() []byte {
- file_cel_expr_eval_proto_rawDescOnce.Do(func() {
- file_cel_expr_eval_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_eval_proto_rawDescData)
- })
- return file_cel_expr_eval_proto_rawDescData
-}
-
-var file_cel_expr_eval_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_cel_expr_eval_proto_goTypes = []interface{}{
- (*EvalState)(nil), // 0: cel.expr.EvalState
- (*ExprValue)(nil), // 1: cel.expr.ExprValue
- (*ErrorSet)(nil), // 2: cel.expr.ErrorSet
- (*UnknownSet)(nil), // 3: cel.expr.UnknownSet
- (*EvalState_Result)(nil), // 4: cel.expr.EvalState.Result
- (*Value)(nil), // 5: cel.expr.Value
- (*status.Status)(nil), // 6: google.rpc.Status
-}
-var file_cel_expr_eval_proto_depIdxs = []int32{
- 1, // 0: cel.expr.EvalState.values:type_name -> cel.expr.ExprValue
- 4, // 1: cel.expr.EvalState.results:type_name -> cel.expr.EvalState.Result
- 5, // 2: cel.expr.ExprValue.value:type_name -> cel.expr.Value
- 2, // 3: cel.expr.ExprValue.error:type_name -> cel.expr.ErrorSet
- 3, // 4: cel.expr.ExprValue.unknown:type_name -> cel.expr.UnknownSet
- 6, // 5: cel.expr.ErrorSet.errors:type_name -> google.rpc.Status
- 6, // [6:6] is the sub-list for method output_type
- 6, // [6:6] is the sub-list for method input_type
- 6, // [6:6] is the sub-list for extension type_name
- 6, // [6:6] is the sub-list for extension extendee
- 0, // [0:6] is the sub-list for field type_name
-}
-
-func init() { file_cel_expr_eval_proto_init() }
-func file_cel_expr_eval_proto_init() {
- if File_cel_expr_eval_proto != nil {
- return
- }
- file_cel_expr_value_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_cel_expr_eval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EvalState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_eval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExprValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_eval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ErrorSet); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_eval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UnknownSet); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_eval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EvalState_Result); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_cel_expr_eval_proto_msgTypes[1].OneofWrappers = []interface{}{
- (*ExprValue_Value)(nil),
- (*ExprValue_Error)(nil),
- (*ExprValue_Unknown)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_cel_expr_eval_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 5,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_cel_expr_eval_proto_goTypes,
- DependencyIndexes: file_cel_expr_eval_proto_depIdxs,
- MessageInfos: file_cel_expr_eval_proto_msgTypes,
- }.Build()
- File_cel_expr_eval_proto = out.File
- file_cel_expr_eval_proto_rawDesc = nil
- file_cel_expr_eval_proto_goTypes = nil
- file_cel_expr_eval_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/explain.pb.go b/upstream/image/git-init/vendor/cel.dev/expr/explain.pb.go
deleted file mode 100644
index 79fd5443..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/explain.pb.go
+++ /dev/null
@@ -1,236 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.28.1
-// protoc v3.21.5
-// source: cel/expr/explain.proto
-
-package expr
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// Deprecated: Do not use.
-type Explain struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
- ExprSteps []*Explain_ExprStep `protobuf:"bytes,2,rep,name=expr_steps,json=exprSteps,proto3" json:"expr_steps,omitempty"`
-}
-
-func (x *Explain) Reset() {
- *x = Explain{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_explain_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Explain) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Explain) ProtoMessage() {}
-
-func (x *Explain) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_explain_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Explain.ProtoReflect.Descriptor instead.
-func (*Explain) Descriptor() ([]byte, []int) {
- return file_cel_expr_explain_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Explain) GetValues() []*Value {
- if x != nil {
- return x.Values
- }
- return nil
-}
-
-func (x *Explain) GetExprSteps() []*Explain_ExprStep {
- if x != nil {
- return x.ExprSteps
- }
- return nil
-}
-
-type Explain_ExprStep struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
- ValueIndex int32 `protobuf:"varint,2,opt,name=value_index,json=valueIndex,proto3" json:"value_index,omitempty"`
-}
-
-func (x *Explain_ExprStep) Reset() {
- *x = Explain_ExprStep{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_explain_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Explain_ExprStep) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Explain_ExprStep) ProtoMessage() {}
-
-func (x *Explain_ExprStep) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_explain_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Explain_ExprStep.ProtoReflect.Descriptor instead.
-func (*Explain_ExprStep) Descriptor() ([]byte, []int) {
- return file_cel_expr_explain_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Explain_ExprStep) GetId() int64 {
- if x != nil {
- return x.Id
- }
- return 0
-}
-
-func (x *Explain_ExprStep) GetValueIndex() int32 {
- if x != nil {
- return x.ValueIndex
- }
- return 0
-}
-
-var File_cel_expr_explain_proto protoreflect.FileDescriptor
-
-var file_cel_expr_explain_proto_rawDesc = []byte{
- 0x0a, 0x16, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61,
- 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x1a, 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70,
- 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x0a,
- 0x0a, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70,
- 0x6c, 0x61, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x53, 0x74, 0x65, 0x70, 0x52, 0x09, 0x65,
- 0x78, 0x70, 0x72, 0x53, 0x74, 0x65, 0x70, 0x73, 0x1a, 0x3b, 0x0a, 0x08, 0x45, 0x78, 0x70, 0x72,
- 0x53, 0x74, 0x65, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x6e,
- 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x2f, 0x0a, 0x0c, 0x64, 0x65, 0x76,
- 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0c, 0x45, 0x78, 0x70, 0x6c, 0x61,
- 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64,
- 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
-}
-
-var (
- file_cel_expr_explain_proto_rawDescOnce sync.Once
- file_cel_expr_explain_proto_rawDescData = file_cel_expr_explain_proto_rawDesc
-)
-
-func file_cel_expr_explain_proto_rawDescGZIP() []byte {
- file_cel_expr_explain_proto_rawDescOnce.Do(func() {
- file_cel_expr_explain_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_explain_proto_rawDescData)
- })
- return file_cel_expr_explain_proto_rawDescData
-}
-
-var file_cel_expr_explain_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_cel_expr_explain_proto_goTypes = []interface{}{
- (*Explain)(nil), // 0: cel.expr.Explain
- (*Explain_ExprStep)(nil), // 1: cel.expr.Explain.ExprStep
- (*Value)(nil), // 2: cel.expr.Value
-}
-var file_cel_expr_explain_proto_depIdxs = []int32{
- 2, // 0: cel.expr.Explain.values:type_name -> cel.expr.Value
- 1, // 1: cel.expr.Explain.expr_steps:type_name -> cel.expr.Explain.ExprStep
- 2, // [2:2] is the sub-list for method output_type
- 2, // [2:2] is the sub-list for method input_type
- 2, // [2:2] is the sub-list for extension type_name
- 2, // [2:2] is the sub-list for extension extendee
- 0, // [0:2] is the sub-list for field type_name
-}
-
-func init() { file_cel_expr_explain_proto_init() }
-func file_cel_expr_explain_proto_init() {
- if File_cel_expr_explain_proto != nil {
- return
- }
- file_cel_expr_value_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_cel_expr_explain_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Explain); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_explain_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Explain_ExprStep); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_cel_expr_explain_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_cel_expr_explain_proto_goTypes,
- DependencyIndexes: file_cel_expr_explain_proto_depIdxs,
- MessageInfos: file_cel_expr_explain_proto_msgTypes,
- }.Build()
- File_cel_expr_explain_proto = out.File
- file_cel_expr_explain_proto_rawDesc = nil
- file_cel_expr_explain_proto_goTypes = nil
- file_cel_expr_explain_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto.sh b/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto.sh
deleted file mode 100644
index fdcbb3ce..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-bazel build //proto/cel/expr/conformance/...
-files=($(bazel aquery 'kind(proto, //proto/cel/expr/conformance/...)' | grep Outputs | grep "[.]pb[.]go" | sed 's/Outputs: \[//' | sed 's/\]//' | tr "," "\n"))
-for src in ${files[@]};
-do
- dst=$(echo $src | sed 's/\(.*\/cel.dev\/expr\/\(.*\)\)/\2/')
- echo "copying $dst"
- $(cp $src $dst)
-done
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh b/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh
deleted file mode 100644
index 9a13479e..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-bazel build //proto/cel/expr:all
-
-rm -vf ./*.pb.go
-
-files=( $(bazel cquery //proto/cel/expr:expr_go_proto --output=starlark --starlark:expr="'\n'.join([f.path for f in target.output_groups.go_generated_srcs.to_list()])") )
-for src in "${files[@]}";
-do
- cp -v "${src}" ./
-done
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/syntax.pb.go b/upstream/image/git-init/vendor/cel.dev/expr/syntax.pb.go
deleted file mode 100644
index 48a95287..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/syntax.pb.go
+++ /dev/null
@@ -1,1633 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.28.1
-// protoc v3.21.5
-// source: cel/expr/syntax.proto
-
-package expr
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- durationpb "google.golang.org/protobuf/types/known/durationpb"
- structpb "google.golang.org/protobuf/types/known/structpb"
- timestamppb "google.golang.org/protobuf/types/known/timestamppb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type SourceInfo_Extension_Component int32
-
-const (
- SourceInfo_Extension_COMPONENT_UNSPECIFIED SourceInfo_Extension_Component = 0
- SourceInfo_Extension_COMPONENT_PARSER SourceInfo_Extension_Component = 1
- SourceInfo_Extension_COMPONENT_TYPE_CHECKER SourceInfo_Extension_Component = 2
- SourceInfo_Extension_COMPONENT_RUNTIME SourceInfo_Extension_Component = 3
-)
-
-// Enum value maps for SourceInfo_Extension_Component.
-var (
- SourceInfo_Extension_Component_name = map[int32]string{
- 0: "COMPONENT_UNSPECIFIED",
- 1: "COMPONENT_PARSER",
- 2: "COMPONENT_TYPE_CHECKER",
- 3: "COMPONENT_RUNTIME",
- }
- SourceInfo_Extension_Component_value = map[string]int32{
- "COMPONENT_UNSPECIFIED": 0,
- "COMPONENT_PARSER": 1,
- "COMPONENT_TYPE_CHECKER": 2,
- "COMPONENT_RUNTIME": 3,
- }
-)
-
-func (x SourceInfo_Extension_Component) Enum() *SourceInfo_Extension_Component {
- p := new(SourceInfo_Extension_Component)
- *p = x
- return p
-}
-
-func (x SourceInfo_Extension_Component) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SourceInfo_Extension_Component) Descriptor() protoreflect.EnumDescriptor {
- return file_cel_expr_syntax_proto_enumTypes[0].Descriptor()
-}
-
-func (SourceInfo_Extension_Component) Type() protoreflect.EnumType {
- return &file_cel_expr_syntax_proto_enumTypes[0]
-}
-
-func (x SourceInfo_Extension_Component) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SourceInfo_Extension_Component.Descriptor instead.
-func (SourceInfo_Extension_Component) EnumDescriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2, 0}
-}
-
-type ParsedExpr struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"`
- SourceInfo *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
-}
-
-func (x *ParsedExpr) Reset() {
- *x = ParsedExpr{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ParsedExpr) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ParsedExpr) ProtoMessage() {}
-
-func (x *ParsedExpr) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ParsedExpr.ProtoReflect.Descriptor instead.
-func (*ParsedExpr) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ParsedExpr) GetExpr() *Expr {
- if x != nil {
- return x.Expr
- }
- return nil
-}
-
-func (x *ParsedExpr) GetSourceInfo() *SourceInfo {
- if x != nil {
- return x.SourceInfo
- }
- return nil
-}
-
-type Expr struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
- // Types that are assignable to ExprKind:
- //
- // *Expr_ConstExpr
- // *Expr_IdentExpr
- // *Expr_SelectExpr
- // *Expr_CallExpr
- // *Expr_ListExpr
- // *Expr_StructExpr
- // *Expr_ComprehensionExpr
- ExprKind isExpr_ExprKind `protobuf_oneof:"expr_kind"`
-}
-
-func (x *Expr) Reset() {
- *x = Expr{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr) ProtoMessage() {}
-
-func (x *Expr) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr.ProtoReflect.Descriptor instead.
-func (*Expr) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Expr) GetId() int64 {
- if x != nil {
- return x.Id
- }
- return 0
-}
-
-func (m *Expr) GetExprKind() isExpr_ExprKind {
- if m != nil {
- return m.ExprKind
- }
- return nil
-}
-
-func (x *Expr) GetConstExpr() *Constant {
- if x, ok := x.GetExprKind().(*Expr_ConstExpr); ok {
- return x.ConstExpr
- }
- return nil
-}
-
-func (x *Expr) GetIdentExpr() *Expr_Ident {
- if x, ok := x.GetExprKind().(*Expr_IdentExpr); ok {
- return x.IdentExpr
- }
- return nil
-}
-
-func (x *Expr) GetSelectExpr() *Expr_Select {
- if x, ok := x.GetExprKind().(*Expr_SelectExpr); ok {
- return x.SelectExpr
- }
- return nil
-}
-
-func (x *Expr) GetCallExpr() *Expr_Call {
- if x, ok := x.GetExprKind().(*Expr_CallExpr); ok {
- return x.CallExpr
- }
- return nil
-}
-
-func (x *Expr) GetListExpr() *Expr_CreateList {
- if x, ok := x.GetExprKind().(*Expr_ListExpr); ok {
- return x.ListExpr
- }
- return nil
-}
-
-func (x *Expr) GetStructExpr() *Expr_CreateStruct {
- if x, ok := x.GetExprKind().(*Expr_StructExpr); ok {
- return x.StructExpr
- }
- return nil
-}
-
-func (x *Expr) GetComprehensionExpr() *Expr_Comprehension {
- if x, ok := x.GetExprKind().(*Expr_ComprehensionExpr); ok {
- return x.ComprehensionExpr
- }
- return nil
-}
-
-type isExpr_ExprKind interface {
- isExpr_ExprKind()
-}
-
-type Expr_ConstExpr struct {
- ConstExpr *Constant `protobuf:"bytes,3,opt,name=const_expr,json=constExpr,proto3,oneof"`
-}
-
-type Expr_IdentExpr struct {
- IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"`
-}
-
-type Expr_SelectExpr struct {
- SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"`
-}
-
-type Expr_CallExpr struct {
- CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"`
-}
-
-type Expr_ListExpr struct {
- ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"`
-}
-
-type Expr_StructExpr struct {
- StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"`
-}
-
-type Expr_ComprehensionExpr struct {
- ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"`
-}
-
-func (*Expr_ConstExpr) isExpr_ExprKind() {}
-
-func (*Expr_IdentExpr) isExpr_ExprKind() {}
-
-func (*Expr_SelectExpr) isExpr_ExprKind() {}
-
-func (*Expr_CallExpr) isExpr_ExprKind() {}
-
-func (*Expr_ListExpr) isExpr_ExprKind() {}
-
-func (*Expr_StructExpr) isExpr_ExprKind() {}
-
-func (*Expr_ComprehensionExpr) isExpr_ExprKind() {}
-
-type Constant struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to ConstantKind:
- //
- // *Constant_NullValue
- // *Constant_BoolValue
- // *Constant_Int64Value
- // *Constant_Uint64Value
- // *Constant_DoubleValue
- // *Constant_StringValue
- // *Constant_BytesValue
- // *Constant_DurationValue
- // *Constant_TimestampValue
- ConstantKind isConstant_ConstantKind `protobuf_oneof:"constant_kind"`
-}
-
-func (x *Constant) Reset() {
- *x = Constant{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Constant) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Constant) ProtoMessage() {}
-
-func (x *Constant) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Constant.ProtoReflect.Descriptor instead.
-func (*Constant) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{2}
-}
-
-func (m *Constant) GetConstantKind() isConstant_ConstantKind {
- if m != nil {
- return m.ConstantKind
- }
- return nil
-}
-
-func (x *Constant) GetNullValue() structpb.NullValue {
- if x, ok := x.GetConstantKind().(*Constant_NullValue); ok {
- return x.NullValue
- }
- return structpb.NullValue(0)
-}
-
-func (x *Constant) GetBoolValue() bool {
- if x, ok := x.GetConstantKind().(*Constant_BoolValue); ok {
- return x.BoolValue
- }
- return false
-}
-
-func (x *Constant) GetInt64Value() int64 {
- if x, ok := x.GetConstantKind().(*Constant_Int64Value); ok {
- return x.Int64Value
- }
- return 0
-}
-
-func (x *Constant) GetUint64Value() uint64 {
- if x, ok := x.GetConstantKind().(*Constant_Uint64Value); ok {
- return x.Uint64Value
- }
- return 0
-}
-
-func (x *Constant) GetDoubleValue() float64 {
- if x, ok := x.GetConstantKind().(*Constant_DoubleValue); ok {
- return x.DoubleValue
- }
- return 0
-}
-
-func (x *Constant) GetStringValue() string {
- if x, ok := x.GetConstantKind().(*Constant_StringValue); ok {
- return x.StringValue
- }
- return ""
-}
-
-func (x *Constant) GetBytesValue() []byte {
- if x, ok := x.GetConstantKind().(*Constant_BytesValue); ok {
- return x.BytesValue
- }
- return nil
-}
-
-// Deprecated: Do not use.
-func (x *Constant) GetDurationValue() *durationpb.Duration {
- if x, ok := x.GetConstantKind().(*Constant_DurationValue); ok {
- return x.DurationValue
- }
- return nil
-}
-
-// Deprecated: Do not use.
-func (x *Constant) GetTimestampValue() *timestamppb.Timestamp {
- if x, ok := x.GetConstantKind().(*Constant_TimestampValue); ok {
- return x.TimestampValue
- }
- return nil
-}
-
-type isConstant_ConstantKind interface {
- isConstant_ConstantKind()
-}
-
-type Constant_NullValue struct {
- NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
-}
-
-type Constant_BoolValue struct {
- BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
-}
-
-type Constant_Int64Value struct {
- Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
-}
-
-type Constant_Uint64Value struct {
- Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
-}
-
-type Constant_DoubleValue struct {
- DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
-}
-
-type Constant_StringValue struct {
- StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
-}
-
-type Constant_BytesValue struct {
- BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
-}
-
-type Constant_DurationValue struct {
- // Deprecated: Do not use.
- DurationValue *durationpb.Duration `protobuf:"bytes,8,opt,name=duration_value,json=durationValue,proto3,oneof"`
-}
-
-type Constant_TimestampValue struct {
- // Deprecated: Do not use.
- TimestampValue *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
-}
-
-func (*Constant_NullValue) isConstant_ConstantKind() {}
-
-func (*Constant_BoolValue) isConstant_ConstantKind() {}
-
-func (*Constant_Int64Value) isConstant_ConstantKind() {}
-
-func (*Constant_Uint64Value) isConstant_ConstantKind() {}
-
-func (*Constant_DoubleValue) isConstant_ConstantKind() {}
-
-func (*Constant_StringValue) isConstant_ConstantKind() {}
-
-func (*Constant_BytesValue) isConstant_ConstantKind() {}
-
-func (*Constant_DurationValue) isConstant_ConstantKind() {}
-
-func (*Constant_TimestampValue) isConstant_ConstantKind() {}
-
-type SourceInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- SyntaxVersion string `protobuf:"bytes,1,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"`
- Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
- LineOffsets []int32 `protobuf:"varint,3,rep,packed,name=line_offsets,json=lineOffsets,proto3" json:"line_offsets,omitempty"`
- Positions map[int64]int32 `protobuf:"bytes,4,rep,name=positions,proto3" json:"positions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
- MacroCalls map[int64]*Expr `protobuf:"bytes,5,rep,name=macro_calls,json=macroCalls,proto3" json:"macro_calls,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
- Extensions []*SourceInfo_Extension `protobuf:"bytes,6,rep,name=extensions,proto3" json:"extensions,omitempty"`
-}
-
-func (x *SourceInfo) Reset() {
- *x = SourceInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SourceInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SourceInfo) ProtoMessage() {}
-
-func (x *SourceInfo) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SourceInfo.ProtoReflect.Descriptor instead.
-func (*SourceInfo) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *SourceInfo) GetSyntaxVersion() string {
- if x != nil {
- return x.SyntaxVersion
- }
- return ""
-}
-
-func (x *SourceInfo) GetLocation() string {
- if x != nil {
- return x.Location
- }
- return ""
-}
-
-func (x *SourceInfo) GetLineOffsets() []int32 {
- if x != nil {
- return x.LineOffsets
- }
- return nil
-}
-
-func (x *SourceInfo) GetPositions() map[int64]int32 {
- if x != nil {
- return x.Positions
- }
- return nil
-}
-
-func (x *SourceInfo) GetMacroCalls() map[int64]*Expr {
- if x != nil {
- return x.MacroCalls
- }
- return nil
-}
-
-func (x *SourceInfo) GetExtensions() []*SourceInfo_Extension {
- if x != nil {
- return x.Extensions
- }
- return nil
-}
-
-type Expr_Ident struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-}
-
-func (x *Expr_Ident) Reset() {
- *x = Expr_Ident{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_Ident) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_Ident) ProtoMessage() {}
-
-func (x *Expr_Ident) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_Ident.ProtoReflect.Descriptor instead.
-func (*Expr_Ident) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *Expr_Ident) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-type Expr_Select struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"`
- Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
- TestOnly bool `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"`
-}
-
-func (x *Expr_Select) Reset() {
- *x = Expr_Select{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_Select) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_Select) ProtoMessage() {}
-
-func (x *Expr_Select) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_Select.ProtoReflect.Descriptor instead.
-func (*Expr_Select) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 1}
-}
-
-func (x *Expr_Select) GetOperand() *Expr {
- if x != nil {
- return x.Operand
- }
- return nil
-}
-
-func (x *Expr_Select) GetField() string {
- if x != nil {
- return x.Field
- }
- return ""
-}
-
-func (x *Expr_Select) GetTestOnly() bool {
- if x != nil {
- return x.TestOnly
- }
- return false
-}
-
-type Expr_Call struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
- Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
- Args []*Expr `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
-}
-
-func (x *Expr_Call) Reset() {
- *x = Expr_Call{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_Call) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_Call) ProtoMessage() {}
-
-func (x *Expr_Call) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_Call.ProtoReflect.Descriptor instead.
-func (*Expr_Call) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 2}
-}
-
-func (x *Expr_Call) GetTarget() *Expr {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-func (x *Expr_Call) GetFunction() string {
- if x != nil {
- return x.Function
- }
- return ""
-}
-
-func (x *Expr_Call) GetArgs() []*Expr {
- if x != nil {
- return x.Args
- }
- return nil
-}
-
-type Expr_CreateList struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Elements []*Expr `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
- OptionalIndices []int32 `protobuf:"varint,2,rep,packed,name=optional_indices,json=optionalIndices,proto3" json:"optional_indices,omitempty"`
-}
-
-func (x *Expr_CreateList) Reset() {
- *x = Expr_CreateList{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_CreateList) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_CreateList) ProtoMessage() {}
-
-func (x *Expr_CreateList) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_CreateList.ProtoReflect.Descriptor instead.
-func (*Expr_CreateList) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 3}
-}
-
-func (x *Expr_CreateList) GetElements() []*Expr {
- if x != nil {
- return x.Elements
- }
- return nil
-}
-
-func (x *Expr_CreateList) GetOptionalIndices() []int32 {
- if x != nil {
- return x.OptionalIndices
- }
- return nil
-}
-
-type Expr_CreateStruct struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- MessageName string `protobuf:"bytes,1,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"`
- Entries []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
-}
-
-func (x *Expr_CreateStruct) Reset() {
- *x = Expr_CreateStruct{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_CreateStruct) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_CreateStruct) ProtoMessage() {}
-
-func (x *Expr_CreateStruct) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_CreateStruct.ProtoReflect.Descriptor instead.
-func (*Expr_CreateStruct) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 4}
-}
-
-func (x *Expr_CreateStruct) GetMessageName() string {
- if x != nil {
- return x.MessageName
- }
- return ""
-}
-
-func (x *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry {
- if x != nil {
- return x.Entries
- }
- return nil
-}
-
-type Expr_Comprehension struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"`
- IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"`
- AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"`
- AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"`
- LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"`
- LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"`
- Result *Expr `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"`
-}
-
-func (x *Expr_Comprehension) Reset() {
- *x = Expr_Comprehension{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_Comprehension) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_Comprehension) ProtoMessage() {}
-
-func (x *Expr_Comprehension) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_Comprehension.ProtoReflect.Descriptor instead.
-func (*Expr_Comprehension) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 5}
-}
-
-func (x *Expr_Comprehension) GetIterVar() string {
- if x != nil {
- return x.IterVar
- }
- return ""
-}
-
-func (x *Expr_Comprehension) GetIterRange() *Expr {
- if x != nil {
- return x.IterRange
- }
- return nil
-}
-
-func (x *Expr_Comprehension) GetAccuVar() string {
- if x != nil {
- return x.AccuVar
- }
- return ""
-}
-
-func (x *Expr_Comprehension) GetAccuInit() *Expr {
- if x != nil {
- return x.AccuInit
- }
- return nil
-}
-
-func (x *Expr_Comprehension) GetLoopCondition() *Expr {
- if x != nil {
- return x.LoopCondition
- }
- return nil
-}
-
-func (x *Expr_Comprehension) GetLoopStep() *Expr {
- if x != nil {
- return x.LoopStep
- }
- return nil
-}
-
-func (x *Expr_Comprehension) GetResult() *Expr {
- if x != nil {
- return x.Result
- }
- return nil
-}
-
-type Expr_CreateStruct_Entry struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
- // Types that are assignable to KeyKind:
- //
- // *Expr_CreateStruct_Entry_FieldKey
- // *Expr_CreateStruct_Entry_MapKey
- KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"`
- Value *Expr `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
- OptionalEntry bool `protobuf:"varint,5,opt,name=optional_entry,json=optionalEntry,proto3" json:"optional_entry,omitempty"`
-}
-
-func (x *Expr_CreateStruct_Entry) Reset() {
- *x = Expr_CreateStruct_Entry{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Expr_CreateStruct_Entry) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Expr_CreateStruct_Entry) ProtoMessage() {}
-
-func (x *Expr_CreateStruct_Entry) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Expr_CreateStruct_Entry.ProtoReflect.Descriptor instead.
-func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 4, 0}
-}
-
-func (x *Expr_CreateStruct_Entry) GetId() int64 {
- if x != nil {
- return x.Id
- }
- return 0
-}
-
-func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind {
- if m != nil {
- return m.KeyKind
- }
- return nil
-}
-
-func (x *Expr_CreateStruct_Entry) GetFieldKey() string {
- if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok {
- return x.FieldKey
- }
- return ""
-}
-
-func (x *Expr_CreateStruct_Entry) GetMapKey() *Expr {
- if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok {
- return x.MapKey
- }
- return nil
-}
-
-func (x *Expr_CreateStruct_Entry) GetValue() *Expr {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-func (x *Expr_CreateStruct_Entry) GetOptionalEntry() bool {
- if x != nil {
- return x.OptionalEntry
- }
- return false
-}
-
-type isExpr_CreateStruct_Entry_KeyKind interface {
- isExpr_CreateStruct_Entry_KeyKind()
-}
-
-type Expr_CreateStruct_Entry_FieldKey struct {
- FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"`
-}
-
-type Expr_CreateStruct_Entry_MapKey struct {
- MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"`
-}
-
-func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {}
-
-func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {}
-
-type SourceInfo_Extension struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- AffectedComponents []SourceInfo_Extension_Component `protobuf:"varint,2,rep,packed,name=affected_components,json=affectedComponents,proto3,enum=cel.expr.SourceInfo_Extension_Component" json:"affected_components,omitempty"`
- Version *SourceInfo_Extension_Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
-}
-
-func (x *SourceInfo_Extension) Reset() {
- *x = SourceInfo_Extension{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SourceInfo_Extension) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SourceInfo_Extension) ProtoMessage() {}
-
-func (x *SourceInfo_Extension) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SourceInfo_Extension.ProtoReflect.Descriptor instead.
-func (*SourceInfo_Extension) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2}
-}
-
-func (x *SourceInfo_Extension) GetId() string {
- if x != nil {
- return x.Id
- }
- return ""
-}
-
-func (x *SourceInfo_Extension) GetAffectedComponents() []SourceInfo_Extension_Component {
- if x != nil {
- return x.AffectedComponents
- }
- return nil
-}
-
-func (x *SourceInfo_Extension) GetVersion() *SourceInfo_Extension_Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-type SourceInfo_Extension_Version struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Major int64 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
- Minor int64 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
-}
-
-func (x *SourceInfo_Extension_Version) Reset() {
- *x = SourceInfo_Extension_Version{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_syntax_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SourceInfo_Extension_Version) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SourceInfo_Extension_Version) ProtoMessage() {}
-
-func (x *SourceInfo_Extension_Version) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_syntax_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SourceInfo_Extension_Version.ProtoReflect.Descriptor instead.
-func (*SourceInfo_Extension_Version) Descriptor() ([]byte, []int) {
- return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2, 0}
-}
-
-func (x *SourceInfo_Extension_Version) GetMajor() int64 {
- if x != nil {
- return x.Major
- }
- return 0
-}
-
-func (x *SourceInfo_Extension_Version) GetMinor() int64 {
- if x != nil {
- return x.Minor
- }
- return 0
-}
-
-var File_cel_expr_syntax_proto protoreflect.FileDescriptor
-
-var file_cel_expr_syntax_proto_rawDesc = []byte{
- 0x0a, 0x15, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x73, 0x79, 0x6e, 0x74, 0x61,
- 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
- 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x22, 0x67, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x12, 0x22,
- 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
- 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65, 0x78,
- 0x70, 0x72, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66,
- 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
- 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfd, 0x0a, 0x0a, 0x04, 0x45, 0x78,
- 0x70, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
- 0x69, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f,
- 0x6e, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74,
- 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x49, 0x64, 0x65, 0x6e,
- 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x38,
- 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
- 0x78, 0x70, 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65,
- 0x6c, 0x65, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c,
- 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x61, 0x6c, 0x6c,
- 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x38, 0x0a, 0x09,
- 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x19, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x69,
- 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
- 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65,
- 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75,
- 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65,
- 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x09, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78,
- 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x1b, 0x0a, 0x05, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x12,
- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x1a, 0x65, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x07,
- 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
- 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x07, 0x6f,
- 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09,
- 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x08, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0x6e, 0x0a, 0x04, 0x43, 0x61, 0x6c,
- 0x6c, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70,
- 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
- 0x78, 0x70, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
- 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x6f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x1a, 0xab,
- 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12,
- 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x61,
- 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
- 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
- 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a,
- 0xba, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x69, 0x65,
- 0x6c, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08,
- 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f,
- 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
- 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x70,
- 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78,
- 0x70, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x42, 0x0a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xad, 0x02, 0x0a,
- 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19,
- 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x56, 0x61, 0x72, 0x12, 0x2d, 0x0a, 0x0a, 0x69, 0x74, 0x65,
- 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
- 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x69,
- 0x74, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75,
- 0x5f, 0x76, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x75,
- 0x56, 0x61, 0x72, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
- 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x61, 0x63, 0x63, 0x75, 0x49, 0x6e, 0x69, 0x74,
- 0x12, 0x35, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65,
- 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x43, 0x6f,
- 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x70, 0x5f,
- 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x6c, 0x6f, 0x6f, 0x70,
- 0x53, 0x74, 0x65, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09,
- 0x65, 0x78, 0x70, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x08, 0x43, 0x6f,
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c,
- 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74,
- 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36,
- 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52,
- 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c,
- 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e,
- 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62,
- 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x64, 0x75, 0x72,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01,
- 0x48, 0x00, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0f, 0x0a, 0x0d,
- 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xac, 0x06,
- 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e,
- 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x56, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
- 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x5f, 0x63,
- 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
- 0x2e, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x0a,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x1e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3c, 0x0a, 0x0e,
- 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
- 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0f, 0x4d, 0x61,
- 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
- 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xe0, 0x02, 0x0a, 0x09, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x59, 0x0a, 0x13, 0x61, 0x66, 0x66, 0x65, 0x63,
- 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,
- 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x12,
- 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
- 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x35, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
- 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
- 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x09, 0x43,
- 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50,
- 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
- 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54,
- 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d,
- 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43,
- 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45,
- 0x4e, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x42, 0x2e, 0x0a, 0x0c,
- 0x64, 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0b, 0x53, 0x79,
- 0x6e, 0x74, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c,
- 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_cel_expr_syntax_proto_rawDescOnce sync.Once
- file_cel_expr_syntax_proto_rawDescData = file_cel_expr_syntax_proto_rawDesc
-)
-
-func file_cel_expr_syntax_proto_rawDescGZIP() []byte {
- file_cel_expr_syntax_proto_rawDescOnce.Do(func() {
- file_cel_expr_syntax_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_syntax_proto_rawDescData)
- })
- return file_cel_expr_syntax_proto_rawDescData
-}
-
-var file_cel_expr_syntax_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_cel_expr_syntax_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_cel_expr_syntax_proto_goTypes = []interface{}{
- (SourceInfo_Extension_Component)(0), // 0: cel.expr.SourceInfo.Extension.Component
- (*ParsedExpr)(nil), // 1: cel.expr.ParsedExpr
- (*Expr)(nil), // 2: cel.expr.Expr
- (*Constant)(nil), // 3: cel.expr.Constant
- (*SourceInfo)(nil), // 4: cel.expr.SourceInfo
- (*Expr_Ident)(nil), // 5: cel.expr.Expr.Ident
- (*Expr_Select)(nil), // 6: cel.expr.Expr.Select
- (*Expr_Call)(nil), // 7: cel.expr.Expr.Call
- (*Expr_CreateList)(nil), // 8: cel.expr.Expr.CreateList
- (*Expr_CreateStruct)(nil), // 9: cel.expr.Expr.CreateStruct
- (*Expr_Comprehension)(nil), // 10: cel.expr.Expr.Comprehension
- (*Expr_CreateStruct_Entry)(nil), // 11: cel.expr.Expr.CreateStruct.Entry
- nil, // 12: cel.expr.SourceInfo.PositionsEntry
- nil, // 13: cel.expr.SourceInfo.MacroCallsEntry
- (*SourceInfo_Extension)(nil), // 14: cel.expr.SourceInfo.Extension
- (*SourceInfo_Extension_Version)(nil), // 15: cel.expr.SourceInfo.Extension.Version
- (structpb.NullValue)(0), // 16: google.protobuf.NullValue
- (*durationpb.Duration)(nil), // 17: google.protobuf.Duration
- (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp
-}
-var file_cel_expr_syntax_proto_depIdxs = []int32{
- 2, // 0: cel.expr.ParsedExpr.expr:type_name -> cel.expr.Expr
- 4, // 1: cel.expr.ParsedExpr.source_info:type_name -> cel.expr.SourceInfo
- 3, // 2: cel.expr.Expr.const_expr:type_name -> cel.expr.Constant
- 5, // 3: cel.expr.Expr.ident_expr:type_name -> cel.expr.Expr.Ident
- 6, // 4: cel.expr.Expr.select_expr:type_name -> cel.expr.Expr.Select
- 7, // 5: cel.expr.Expr.call_expr:type_name -> cel.expr.Expr.Call
- 8, // 6: cel.expr.Expr.list_expr:type_name -> cel.expr.Expr.CreateList
- 9, // 7: cel.expr.Expr.struct_expr:type_name -> cel.expr.Expr.CreateStruct
- 10, // 8: cel.expr.Expr.comprehension_expr:type_name -> cel.expr.Expr.Comprehension
- 16, // 9: cel.expr.Constant.null_value:type_name -> google.protobuf.NullValue
- 17, // 10: cel.expr.Constant.duration_value:type_name -> google.protobuf.Duration
- 18, // 11: cel.expr.Constant.timestamp_value:type_name -> google.protobuf.Timestamp
- 12, // 12: cel.expr.SourceInfo.positions:type_name -> cel.expr.SourceInfo.PositionsEntry
- 13, // 13: cel.expr.SourceInfo.macro_calls:type_name -> cel.expr.SourceInfo.MacroCallsEntry
- 14, // 14: cel.expr.SourceInfo.extensions:type_name -> cel.expr.SourceInfo.Extension
- 2, // 15: cel.expr.Expr.Select.operand:type_name -> cel.expr.Expr
- 2, // 16: cel.expr.Expr.Call.target:type_name -> cel.expr.Expr
- 2, // 17: cel.expr.Expr.Call.args:type_name -> cel.expr.Expr
- 2, // 18: cel.expr.Expr.CreateList.elements:type_name -> cel.expr.Expr
- 11, // 19: cel.expr.Expr.CreateStruct.entries:type_name -> cel.expr.Expr.CreateStruct.Entry
- 2, // 20: cel.expr.Expr.Comprehension.iter_range:type_name -> cel.expr.Expr
- 2, // 21: cel.expr.Expr.Comprehension.accu_init:type_name -> cel.expr.Expr
- 2, // 22: cel.expr.Expr.Comprehension.loop_condition:type_name -> cel.expr.Expr
- 2, // 23: cel.expr.Expr.Comprehension.loop_step:type_name -> cel.expr.Expr
- 2, // 24: cel.expr.Expr.Comprehension.result:type_name -> cel.expr.Expr
- 2, // 25: cel.expr.Expr.CreateStruct.Entry.map_key:type_name -> cel.expr.Expr
- 2, // 26: cel.expr.Expr.CreateStruct.Entry.value:type_name -> cel.expr.Expr
- 2, // 27: cel.expr.SourceInfo.MacroCallsEntry.value:type_name -> cel.expr.Expr
- 0, // 28: cel.expr.SourceInfo.Extension.affected_components:type_name -> cel.expr.SourceInfo.Extension.Component
- 15, // 29: cel.expr.SourceInfo.Extension.version:type_name -> cel.expr.SourceInfo.Extension.Version
- 30, // [30:30] is the sub-list for method output_type
- 30, // [30:30] is the sub-list for method input_type
- 30, // [30:30] is the sub-list for extension type_name
- 30, // [30:30] is the sub-list for extension extendee
- 0, // [0:30] is the sub-list for field type_name
-}
-
-func init() { file_cel_expr_syntax_proto_init() }
-func file_cel_expr_syntax_proto_init() {
- if File_cel_expr_syntax_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_cel_expr_syntax_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ParsedExpr); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Constant); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SourceInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_Ident); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_Select); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_Call); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_CreateList); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_CreateStruct); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_Comprehension); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Expr_CreateStruct_Entry); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SourceInfo_Extension); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_syntax_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SourceInfo_Extension_Version); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_cel_expr_syntax_proto_msgTypes[1].OneofWrappers = []interface{}{
- (*Expr_ConstExpr)(nil),
- (*Expr_IdentExpr)(nil),
- (*Expr_SelectExpr)(nil),
- (*Expr_CallExpr)(nil),
- (*Expr_ListExpr)(nil),
- (*Expr_StructExpr)(nil),
- (*Expr_ComprehensionExpr)(nil),
- }
- file_cel_expr_syntax_proto_msgTypes[2].OneofWrappers = []interface{}{
- (*Constant_NullValue)(nil),
- (*Constant_BoolValue)(nil),
- (*Constant_Int64Value)(nil),
- (*Constant_Uint64Value)(nil),
- (*Constant_DoubleValue)(nil),
- (*Constant_StringValue)(nil),
- (*Constant_BytesValue)(nil),
- (*Constant_DurationValue)(nil),
- (*Constant_TimestampValue)(nil),
- }
- file_cel_expr_syntax_proto_msgTypes[10].OneofWrappers = []interface{}{
- (*Expr_CreateStruct_Entry_FieldKey)(nil),
- (*Expr_CreateStruct_Entry_MapKey)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_cel_expr_syntax_proto_rawDesc,
- NumEnums: 1,
- NumMessages: 15,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_cel_expr_syntax_proto_goTypes,
- DependencyIndexes: file_cel_expr_syntax_proto_depIdxs,
- EnumInfos: file_cel_expr_syntax_proto_enumTypes,
- MessageInfos: file_cel_expr_syntax_proto_msgTypes,
- }.Build()
- File_cel_expr_syntax_proto = out.File
- file_cel_expr_syntax_proto_rawDesc = nil
- file_cel_expr_syntax_proto_goTypes = nil
- file_cel_expr_syntax_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/cel.dev/expr/value.pb.go b/upstream/image/git-init/vendor/cel.dev/expr/value.pb.go
deleted file mode 100644
index e5e29228..00000000
--- a/upstream/image/git-init/vendor/cel.dev/expr/value.pb.go
+++ /dev/null
@@ -1,653 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.28.1
-// protoc v3.21.5
-// source: cel/expr/value.proto
-
-package expr
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- anypb "google.golang.org/protobuf/types/known/anypb"
- structpb "google.golang.org/protobuf/types/known/structpb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Value struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to Kind:
- //
- // *Value_NullValue
- // *Value_BoolValue
- // *Value_Int64Value
- // *Value_Uint64Value
- // *Value_DoubleValue
- // *Value_StringValue
- // *Value_BytesValue
- // *Value_EnumValue
- // *Value_ObjectValue
- // *Value_MapValue
- // *Value_ListValue
- // *Value_TypeValue
- Kind isValue_Kind `protobuf_oneof:"kind"`
-}
-
-func (x *Value) Reset() {
- *x = Value{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_value_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Value) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Value) ProtoMessage() {}
-
-func (x *Value) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_value_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Value.ProtoReflect.Descriptor instead.
-func (*Value) Descriptor() ([]byte, []int) {
- return file_cel_expr_value_proto_rawDescGZIP(), []int{0}
-}
-
-func (m *Value) GetKind() isValue_Kind {
- if m != nil {
- return m.Kind
- }
- return nil
-}
-
-func (x *Value) GetNullValue() structpb.NullValue {
- if x, ok := x.GetKind().(*Value_NullValue); ok {
- return x.NullValue
- }
- return structpb.NullValue(0)
-}
-
-func (x *Value) GetBoolValue() bool {
- if x, ok := x.GetKind().(*Value_BoolValue); ok {
- return x.BoolValue
- }
- return false
-}
-
-func (x *Value) GetInt64Value() int64 {
- if x, ok := x.GetKind().(*Value_Int64Value); ok {
- return x.Int64Value
- }
- return 0
-}
-
-func (x *Value) GetUint64Value() uint64 {
- if x, ok := x.GetKind().(*Value_Uint64Value); ok {
- return x.Uint64Value
- }
- return 0
-}
-
-func (x *Value) GetDoubleValue() float64 {
- if x, ok := x.GetKind().(*Value_DoubleValue); ok {
- return x.DoubleValue
- }
- return 0
-}
-
-func (x *Value) GetStringValue() string {
- if x, ok := x.GetKind().(*Value_StringValue); ok {
- return x.StringValue
- }
- return ""
-}
-
-func (x *Value) GetBytesValue() []byte {
- if x, ok := x.GetKind().(*Value_BytesValue); ok {
- return x.BytesValue
- }
- return nil
-}
-
-func (x *Value) GetEnumValue() *EnumValue {
- if x, ok := x.GetKind().(*Value_EnumValue); ok {
- return x.EnumValue
- }
- return nil
-}
-
-func (x *Value) GetObjectValue() *anypb.Any {
- if x, ok := x.GetKind().(*Value_ObjectValue); ok {
- return x.ObjectValue
- }
- return nil
-}
-
-func (x *Value) GetMapValue() *MapValue {
- if x, ok := x.GetKind().(*Value_MapValue); ok {
- return x.MapValue
- }
- return nil
-}
-
-func (x *Value) GetListValue() *ListValue {
- if x, ok := x.GetKind().(*Value_ListValue); ok {
- return x.ListValue
- }
- return nil
-}
-
-func (x *Value) GetTypeValue() string {
- if x, ok := x.GetKind().(*Value_TypeValue); ok {
- return x.TypeValue
- }
- return ""
-}
-
-type isValue_Kind interface {
- isValue_Kind()
-}
-
-type Value_NullValue struct {
- NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
-}
-
-type Value_BoolValue struct {
- BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
-}
-
-type Value_Int64Value struct {
- Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
-}
-
-type Value_Uint64Value struct {
- Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
-}
-
-type Value_DoubleValue struct {
- DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
-}
-
-type Value_StringValue struct {
- StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
-}
-
-type Value_BytesValue struct {
- BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
-}
-
-type Value_EnumValue struct {
- EnumValue *EnumValue `protobuf:"bytes,9,opt,name=enum_value,json=enumValue,proto3,oneof"`
-}
-
-type Value_ObjectValue struct {
- ObjectValue *anypb.Any `protobuf:"bytes,10,opt,name=object_value,json=objectValue,proto3,oneof"`
-}
-
-type Value_MapValue struct {
- MapValue *MapValue `protobuf:"bytes,11,opt,name=map_value,json=mapValue,proto3,oneof"`
-}
-
-type Value_ListValue struct {
- ListValue *ListValue `protobuf:"bytes,12,opt,name=list_value,json=listValue,proto3,oneof"`
-}
-
-type Value_TypeValue struct {
- TypeValue string `protobuf:"bytes,15,opt,name=type_value,json=typeValue,proto3,oneof"`
-}
-
-func (*Value_NullValue) isValue_Kind() {}
-
-func (*Value_BoolValue) isValue_Kind() {}
-
-func (*Value_Int64Value) isValue_Kind() {}
-
-func (*Value_Uint64Value) isValue_Kind() {}
-
-func (*Value_DoubleValue) isValue_Kind() {}
-
-func (*Value_StringValue) isValue_Kind() {}
-
-func (*Value_BytesValue) isValue_Kind() {}
-
-func (*Value_EnumValue) isValue_Kind() {}
-
-func (*Value_ObjectValue) isValue_Kind() {}
-
-func (*Value_MapValue) isValue_Kind() {}
-
-func (*Value_ListValue) isValue_Kind() {}
-
-func (*Value_TypeValue) isValue_Kind() {}
-
-type EnumValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
- Value int32 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *EnumValue) Reset() {
- *x = EnumValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_value_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EnumValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EnumValue) ProtoMessage() {}
-
-func (x *EnumValue) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_value_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use EnumValue.ProtoReflect.Descriptor instead.
-func (*EnumValue) Descriptor() ([]byte, []int) {
- return file_cel_expr_value_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *EnumValue) GetType() string {
- if x != nil {
- return x.Type
- }
- return ""
-}
-
-func (x *EnumValue) GetValue() int32 {
- if x != nil {
- return x.Value
- }
- return 0
-}
-
-type ListValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
-}
-
-func (x *ListValue) Reset() {
- *x = ListValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_value_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListValue) ProtoMessage() {}
-
-func (x *ListValue) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_value_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ListValue.ProtoReflect.Descriptor instead.
-func (*ListValue) Descriptor() ([]byte, []int) {
- return file_cel_expr_value_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ListValue) GetValues() []*Value {
- if x != nil {
- return x.Values
- }
- return nil
-}
-
-type MapValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Entries []*MapValue_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
-}
-
-func (x *MapValue) Reset() {
- *x = MapValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_value_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *MapValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MapValue) ProtoMessage() {}
-
-func (x *MapValue) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_value_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use MapValue.ProtoReflect.Descriptor instead.
-func (*MapValue) Descriptor() ([]byte, []int) {
- return file_cel_expr_value_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *MapValue) GetEntries() []*MapValue_Entry {
- if x != nil {
- return x.Entries
- }
- return nil
-}
-
-type MapValue_Entry struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Key *Value `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- Value *Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *MapValue_Entry) Reset() {
- *x = MapValue_Entry{}
- if protoimpl.UnsafeEnabled {
- mi := &file_cel_expr_value_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *MapValue_Entry) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MapValue_Entry) ProtoMessage() {}
-
-func (x *MapValue_Entry) ProtoReflect() protoreflect.Message {
- mi := &file_cel_expr_value_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use MapValue_Entry.ProtoReflect.Descriptor instead.
-func (*MapValue_Entry) Descriptor() ([]byte, []int) {
- return file_cel_expr_value_proto_rawDescGZIP(), []int{3, 0}
-}
-
-func (x *MapValue_Entry) GetKey() *Value {
- if x != nil {
- return x.Key
- }
- return nil
-}
-
-func (x *MapValue_Entry) GetValue() *Value {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-var File_cel_expr_value_proto protoreflect.FileDescriptor
-
-var file_cel_expr_value_proto_rawDesc = []byte{
- 0x0a, 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
- 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72,
- 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x04, 0x0a, 0x05, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x69,
- 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75,
- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48,
- 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23,
- 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65,
- 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48,
- 0x00, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0c,
- 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c,
- 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x4d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00,
- 0x52, 0x08, 0x6d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x6c, 0x69,
- 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
- 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f,
- 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75,
- 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x22, 0x34, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a,
- 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
- 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
- 0x4d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
- 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x21, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
- 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03,
- 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2d, 0x0a, 0x0c, 0x64, 0x65,
- 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0a, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64, 0x65,
- 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
-}
-
-var (
- file_cel_expr_value_proto_rawDescOnce sync.Once
- file_cel_expr_value_proto_rawDescData = file_cel_expr_value_proto_rawDesc
-)
-
-func file_cel_expr_value_proto_rawDescGZIP() []byte {
- file_cel_expr_value_proto_rawDescOnce.Do(func() {
- file_cel_expr_value_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_value_proto_rawDescData)
- })
- return file_cel_expr_value_proto_rawDescData
-}
-
-var file_cel_expr_value_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_cel_expr_value_proto_goTypes = []interface{}{
- (*Value)(nil), // 0: cel.expr.Value
- (*EnumValue)(nil), // 1: cel.expr.EnumValue
- (*ListValue)(nil), // 2: cel.expr.ListValue
- (*MapValue)(nil), // 3: cel.expr.MapValue
- (*MapValue_Entry)(nil), // 4: cel.expr.MapValue.Entry
- (structpb.NullValue)(0), // 5: google.protobuf.NullValue
- (*anypb.Any)(nil), // 6: google.protobuf.Any
-}
-var file_cel_expr_value_proto_depIdxs = []int32{
- 5, // 0: cel.expr.Value.null_value:type_name -> google.protobuf.NullValue
- 1, // 1: cel.expr.Value.enum_value:type_name -> cel.expr.EnumValue
- 6, // 2: cel.expr.Value.object_value:type_name -> google.protobuf.Any
- 3, // 3: cel.expr.Value.map_value:type_name -> cel.expr.MapValue
- 2, // 4: cel.expr.Value.list_value:type_name -> cel.expr.ListValue
- 0, // 5: cel.expr.ListValue.values:type_name -> cel.expr.Value
- 4, // 6: cel.expr.MapValue.entries:type_name -> cel.expr.MapValue.Entry
- 0, // 7: cel.expr.MapValue.Entry.key:type_name -> cel.expr.Value
- 0, // 8: cel.expr.MapValue.Entry.value:type_name -> cel.expr.Value
- 9, // [9:9] is the sub-list for method output_type
- 9, // [9:9] is the sub-list for method input_type
- 9, // [9:9] is the sub-list for extension type_name
- 9, // [9:9] is the sub-list for extension extendee
- 0, // [0:9] is the sub-list for field type_name
-}
-
-func init() { file_cel_expr_value_proto_init() }
-func file_cel_expr_value_proto_init() {
- if File_cel_expr_value_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_cel_expr_value_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Value); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_value_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EnumValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_value_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_value_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*MapValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_cel_expr_value_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*MapValue_Entry); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_cel_expr_value_proto_msgTypes[0].OneofWrappers = []interface{}{
- (*Value_NullValue)(nil),
- (*Value_BoolValue)(nil),
- (*Value_Int64Value)(nil),
- (*Value_Uint64Value)(nil),
- (*Value_DoubleValue)(nil),
- (*Value_StringValue)(nil),
- (*Value_BytesValue)(nil),
- (*Value_EnumValue)(nil),
- (*Value_ObjectValue)(nil),
- (*Value_MapValue)(nil),
- (*Value_ListValue)(nil),
- (*Value_TypeValue)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_cel_expr_value_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 5,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_cel_expr_value_proto_goTypes,
- DependencyIndexes: file_cel_expr_value_proto_depIdxs,
- MessageInfos: file_cel_expr_value_proto_msgTypes,
- }.Build()
- File_cel_expr_value_proto = out.File
- file_cel_expr_value_proto_rawDesc = nil
- file_cel_expr_value_proto_goTypes = nil
- file_cel_expr_value_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.gitignore b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.gitignore
deleted file mode 100644
index c435b7eb..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.gitignore
+++ /dev/null
@@ -1,17 +0,0 @@
-# IntelliJ IDEA
-.idea
-*.iml
-.editorconfig
-
-# VS Code
-.vscode
-
-# OS X
-.DS_Store
-
-# Emacs
-*~
-\#*\#
-
-# Vim
-.swp
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.travis.yml b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.travis.yml
deleted file mode 100644
index f53103b1..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: go
-
-go:
- - 1.11.x
-
-go_import_path: contrib.go.opencensus.io/exporter/ocagent
-
-install: skip
-
-before_script:
- - GO_FILES=$(find . -iname '*.go' | grep -v /vendor/) # All the .go files, excluding vendor/ if any
- - PKGS=$(go list ./... | grep -v /vendor/) # All the import paths, excluding vendor/ if any
- - GO111MODULE=on # Depend on go.mod for dependencies
-
-script:
- - go build ./... # Ensure dependency updates don't break build
- - if [ -n "$(gofmt -s -l $GO_FILES)" ]; then echo "gofmt the following files:"; gofmt -s -l $GO_FILES; exit 1; fi
- - go vet ./...
- - go test -v -race $PKGS # Run all the tests with the race detector enabled
- - 'if [[ $TRAVIS_GO_VERSION = 1.8* ]]; then ! golint ./... | grep -vE "(_mock|_string|\.pb)\.go:"; fi'
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/CONTRIBUTING.md b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/CONTRIBUTING.md
deleted file mode 100644
index 0786fdf4..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/CONTRIBUTING.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# How to contribute
-
-We'd love to accept your patches and contributions to this project. There are
-just a few small guidelines you need to follow.
-
-## Contributor License Agreement
-
-Contributions to this project must be accompanied by a Contributor License
-Agreement. You (or your employer) retain the copyright to your contribution,
-this simply gives us permission to use and redistribute your contributions as
-part of the project. Head over to to see
-your current agreements on file or to sign a new one.
-
-You generally only need to submit a CLA once, so if you've already submitted one
-(even if it was for a different project), you probably don't need to do it
-again.
-
-## Code reviews
-
-All submissions, including submissions by project members, require review. We
-use GitHub pull requests for this purpose. Consult [GitHub Help] for more
-information on using pull requests.
-
-[GitHub Help]: https://help.github.com/articles/about-pull-requests/
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/LICENSE b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/LICENSE
deleted file mode 100644
index 261eeb9e..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/README.md b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/README.md
deleted file mode 100644
index 3b9e908f..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# OpenCensus Agent Go Exporter
-
-[![Build Status][travis-image]][travis-url] [![GoDoc][godoc-image]][godoc-url]
-
-
-This repository contains the Go implementation of the OpenCensus Agent (OC-Agent) Exporter.
-OC-Agent is a deamon process running in a VM that can retrieve spans/stats/metrics from
-OpenCensus Library, export them to other backends and possibly push configurations back to
-Library. See more details on [OC-Agent Readme][OCAgentReadme].
-
-Note: This is an experimental repository and is likely to get backwards-incompatible changes.
-Ultimately we may want to move the OC-Agent Go Exporter to [OpenCensus Go core library][OpenCensusGo].
-
-## Installation
-
-```bash
-$ go get -u contrib.go.opencensus.io/exporter/ocagent
-```
-
-## Usage
-
-```go
-import (
- "context"
- "fmt"
- "log"
- "time"
-
- "contrib.go.opencensus.io/exporter/ocagent"
- "go.opencensus.io/trace"
-)
-
-func Example() {
- exp, err := ocagent.NewExporter(ocagent.WithInsecure(), ocagent.WithServiceName("your-service-name"))
- if err != nil {
- log.Fatalf("Failed to create the agent exporter: %v", err)
- }
- defer exp.Stop()
-
- // Now register it as a trace exporter.
- trace.RegisterExporter(exp)
-
- // Then use the OpenCensus tracing library, like we normally would.
- ctx, span := trace.StartSpan(context.Background(), "AgentExporter-Example")
- defer span.End()
-
- for i := 0; i < 10; i++ {
- _, iSpan := trace.StartSpan(ctx, fmt.Sprintf("Sample-%d", i))
- <-time.After(6 * time.Millisecond)
- iSpan.End()
- }
-}
-```
-
-[OCAgentReadme]: https://github.com/census-instrumentation/opencensus-proto/tree/master/opencensus/proto/agent#opencensus-agent-proto
-[OpenCensusGo]: https://github.com/census-instrumentation/opencensus-go
-[godoc-image]: https://godoc.org/contrib.go.opencensus.io/exporter/ocagent?status.svg
-[godoc-url]: https://godoc.org/contrib.go.opencensus.io/exporter/ocagent
-[travis-image]: https://travis-ci.org/census-ecosystem/opencensus-go-exporter-ocagent.svg?branch=master
-[travis-url]: https://travis-ci.org/census-ecosystem/opencensus-go-exporter-ocagent
-
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/common.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/common.go
deleted file mode 100644
index 297e44b6..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/common.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package ocagent
-
-import (
- "math/rand"
- "time"
-)
-
-var randSrc = rand.New(rand.NewSource(time.Now().UnixNano()))
-
-// retries function fn upto n times, if fn returns an error lest it returns nil early.
-// It applies exponential backoff in units of (1< 0 {
- ctx = metadata.NewOutgoingContext(ctx, metadata.New(ae.headers))
- }
- traceExporter, err := traceSvcClient.Export(ctx)
- if err != nil {
- return fmt.Errorf("Exporter.Start:: TraceServiceClient: %v", err)
- }
-
- firstTraceMessage := &agenttracepb.ExportTraceServiceRequest{
- Node: node,
- Resource: ae.resource,
- }
- if err := traceExporter.Send(firstTraceMessage); err != nil {
- return fmt.Errorf("Exporter.Start:: Failed to initiate the Config service: %v", err)
- }
-
- ae.mu.Lock()
- ae.traceExporter = traceExporter
- ae.mu.Unlock()
-
- // Initiate the config service by sending over node identifier info.
- configStream, err := traceSvcClient.Config(context.Background())
- if err != nil {
- return fmt.Errorf("Exporter.Start:: ConfigStream: %v", err)
- }
- firstCfgMessage := &agenttracepb.CurrentLibraryConfig{Node: node}
- if err := configStream.Send(firstCfgMessage); err != nil {
- return fmt.Errorf("Exporter.Start:: Failed to initiate the Config service: %v", err)
- }
-
- // In the background, handle trace configurations that are beamed down
- // by the agent, but also reply to it with the applied configuration.
- go ae.handleConfigStreaming(configStream)
-
- return nil
-}
-
-func (ae *Exporter) createMetricsServiceConnection(cc *grpc.ClientConn, node *commonpb.Node) error {
- metricsSvcClient := agentmetricspb.NewMetricsServiceClient(cc)
- metricsExporter, err := metricsSvcClient.Export(context.Background())
- if err != nil {
- return fmt.Errorf("MetricsExporter: failed to start the service client: %v", err)
- }
- // Initiate the metrics service by sending over the first message just containing the Node and Resource.
- firstMetricsMessage := &agentmetricspb.ExportMetricsServiceRequest{
- Node: node,
- Resource: ae.resource,
- }
- if err := metricsExporter.Send(firstMetricsMessage); err != nil {
- return fmt.Errorf("MetricsExporter:: failed to send the first message: %v", err)
- }
-
- ae.mu.Lock()
- ae.metricsExporter = metricsExporter
- ae.mu.Unlock()
-
- // With that we are good to go and can start sending metrics
- return nil
-}
-
-func (ae *Exporter) dialToAgent() (*grpc.ClientConn, error) {
- addr := ae.prepareAgentAddress()
- var dialOpts []grpc.DialOption
- if ae.clientTransportCredentials != nil {
- dialOpts = append(dialOpts, grpc.WithTransportCredentials(ae.clientTransportCredentials))
- } else if ae.canDialInsecure {
- dialOpts = append(dialOpts, grpc.WithInsecure())
- }
- if ae.compressor != "" {
- dialOpts = append(dialOpts, grpc.WithDefaultCallOptions(grpc.UseCompressor(ae.compressor)))
- }
- dialOpts = append(dialOpts, grpc.WithStatsHandler(&ocgrpc.ClientHandler{}))
- if len(ae.grpcDialOptions) != 0 {
- dialOpts = append(dialOpts, ae.grpcDialOptions...)
- }
-
- ctx := context.Background()
- if len(ae.headers) > 0 {
- ctx = metadata.NewOutgoingContext(ctx, metadata.New(ae.headers))
- }
- return grpc.DialContext(ctx, addr, dialOpts...)
-}
-
-func (ae *Exporter) handleConfigStreaming(configStream agenttracepb.TraceService_ConfigClient) error {
- // Note: We haven't yet implemented configuration sending so we
- // should NOT be changing connection states within this function for now.
- for {
- recv, err := configStream.Recv()
- if err != nil {
- // TODO: Check if this is a transient error or exponential backoff-able.
- return err
- }
- cfg := recv.Config
- if cfg == nil {
- continue
- }
-
- // Otherwise now apply the trace configuration sent down from the agent
- if psamp := cfg.GetProbabilitySampler(); psamp != nil {
- trace.ApplyConfig(trace.Config{DefaultSampler: trace.ProbabilitySampler(psamp.SamplingProbability)})
- } else if csamp := cfg.GetConstantSampler(); csamp != nil {
- alwaysSample := csamp.Decision == tracepb.ConstantSampler_ALWAYS_ON
- if alwaysSample {
- trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
- } else {
- trace.ApplyConfig(trace.Config{DefaultSampler: trace.NeverSample()})
- }
- } else { // TODO: Add the rate limiting sampler here
- }
-
- // Then finally send back to upstream the newly applied configuration
- err = configStream.Send(&agenttracepb.CurrentLibraryConfig{Config: &tracepb.TraceConfig{Sampler: cfg.Sampler}})
- if err != nil {
- return err
- }
- }
-}
-
-// Stop shuts down all the connections and resources
-// related to the exporter.
-func (ae *Exporter) Stop() error {
- ae.mu.RLock()
- cc := ae.grpcClientConn
- started := ae.started
- stopped := ae.stopped
- ae.mu.RUnlock()
-
- if !started {
- return errNotStarted
- }
- if stopped {
- // TODO: tell the user that we've already stopped, so perhaps a sentinel error?
- return nil
- }
-
- ae.Flush()
-
- // Now close the underlying gRPC connection.
- var err error
- if cc != nil {
- err = cc.Close()
- }
-
- // At this point we can change the state variables: started and stopped
- ae.mu.Lock()
- ae.started = false
- ae.stopped = true
- ae.mu.Unlock()
- close(ae.stopCh)
-
- // Ensure that the backgroundConnector returns
- <-ae.backgroundConnectionDoneCh
-
- return err
-}
-
-func (ae *Exporter) ExportSpan(sd *trace.SpanData) {
- if sd == nil {
- return
- }
- _ = ae.traceBundler.Add(sd, 1)
-}
-
-func (ae *Exporter) ExportTraceServiceRequest(batch *agenttracepb.ExportTraceServiceRequest) error {
- if batch == nil || len(batch.Spans) == 0 {
- return nil
- }
-
- select {
- case <-ae.stopCh:
- return errStopped
-
- default:
- if lastConnectErr := ae.lastConnectError(); lastConnectErr != nil {
- return fmt.Errorf("ExportTraceServiceRequest: no active connection, last connection error: %v", lastConnectErr)
- }
-
- ae.senderMu.Lock()
- err := ae.traceExporter.Send(batch)
- ae.senderMu.Unlock()
- if err != nil {
- if err == io.EOF {
- ae.recvMu.Lock()
- // Perform a .Recv to try to find out why the RPC actually ended.
- // See:
- // * https://github.com/grpc/grpc-go/blob/d389f9fac68eea0dcc49957d0b4cca5b3a0a7171/stream.go#L98-L100
- // * https://groups.google.com/forum/#!msg/grpc-io/XcN4hA9HonI/F_UDiejTAwAJ
- for {
- _, err = ae.traceExporter.Recv()
- if err != nil {
- break
- }
- }
- ae.recvMu.Unlock()
- }
-
- ae.setStateDisconnected(err)
- if err != io.EOF {
- return err
- }
- }
- return nil
- }
-}
-
-func (ae *Exporter) ExportView(vd *view.Data) {
- if vd == nil {
- return
- }
- _ = ae.viewDataBundler.Add(vd, 1)
-}
-
-// ExportMetricsServiceRequest sends proto metrics with the metrics service client.
-func (ae *Exporter) ExportMetricsServiceRequest(batch *agentmetricspb.ExportMetricsServiceRequest) error {
- if batch == nil || len(batch.Metrics) == 0 {
- return nil
- }
-
- select {
- case <-ae.stopCh:
- return errStopped
-
- default:
- if lastConnectErr := ae.lastConnectError(); lastConnectErr != nil {
- return fmt.Errorf("ExportMetricsServiceRequest: no active connection, last connection error: %v", lastConnectErr)
- }
-
- ae.senderMu.Lock()
- err := ae.metricsExporter.Send(batch)
- ae.senderMu.Unlock()
- if err != nil {
- if err == io.EOF {
- ae.recvMu.Lock()
- // Perform a .Recv to try to find out why the RPC actually ended.
- // See:
- // * https://github.com/grpc/grpc-go/blob/d389f9fac68eea0dcc49957d0b4cca5b3a0a7171/stream.go#L98-L100
- // * https://groups.google.com/forum/#!msg/grpc-io/XcN4hA9HonI/F_UDiejTAwAJ
- for {
- _, err = ae.metricsExporter.Recv()
- if err != nil {
- break
- }
- }
- ae.recvMu.Unlock()
- }
-
- ae.setStateDisconnected(err)
- if err != io.EOF {
- return err
- }
- }
- return nil
- }
-}
-
-func ocSpanDataToPbSpans(sdl []*trace.SpanData, spanConfig SpanConfig) []*tracepb.Span {
- if len(sdl) == 0 {
- return nil
- }
- protoSpans := make([]*tracepb.Span, 0, len(sdl))
- for _, sd := range sdl {
- if sd != nil {
- protoSpans = append(protoSpans, ocSpanToProtoSpan(sd, spanConfig))
- }
- }
- return protoSpans
-}
-
-func (ae *Exporter) uploadTraces(sdl []*trace.SpanData) {
- select {
- case <-ae.stopCh:
- return
-
- default:
- if !ae.connected() {
- return
- }
-
- protoSpans := ocSpanDataToPbSpans(sdl, ae.spanConfig)
- if len(protoSpans) == 0 {
- return
- }
- ae.senderMu.Lock()
- err := ae.traceExporter.Send(&agenttracepb.ExportTraceServiceRequest{
- Spans: protoSpans,
- Resource: ae.resource,
- })
- ae.senderMu.Unlock()
- if err != nil {
- ae.setStateDisconnected(err)
- }
- }
-}
-
-func ocViewDataToPbMetrics(vdl []*view.Data, metricNamePrefix string) []*metricspb.Metric {
- if len(vdl) == 0 {
- return nil
- }
- metrics := make([]*metricspb.Metric, 0, len(vdl))
- for _, vd := range vdl {
- if vd != nil {
- vmetric, err := viewDataToMetric(vd, metricNamePrefix)
- // TODO: (@odeke-em) somehow report this error, if it is non-nil.
- if err == nil && vmetric != nil {
- metrics = append(metrics, vmetric)
- }
- }
- }
- return metrics
-}
-
-func (ae *Exporter) uploadViewData(vdl []*view.Data) {
- protoMetrics := ocViewDataToPbMetrics(vdl, ae.metricNamePerfix)
- if len(protoMetrics) == 0 {
- return
- }
- req := &agentmetricspb.ExportMetricsServiceRequest{
- Metrics: protoMetrics,
- Resource: ae.resource,
- // TODO:(@odeke-em)
- // a) Figure out how to derive a Node from the environment
- // or better letting users of the exporter configure it.
- }
- ae.ExportMetricsServiceRequest(req)
-}
-
-func (ae *Exporter) Flush() {
- ae.traceBundler.Flush()
- ae.viewDataBundler.Flush()
-}
-
-func resourceProtoFromEnv() *resourcepb.Resource {
- rs, _ := resource.FromEnv(context.Background())
- if rs == nil {
- return nil
- }
- return resourceToResourcePb(rs)
-}
-
-func resourceToResourcePb(rs *resource.Resource) *resourcepb.Resource {
- rprs := &resourcepb.Resource{
- Type: rs.Type,
- }
- if rs.Labels != nil {
- rprs.Labels = make(map[string]string)
- for k, v := range rs.Labels {
- rprs.Labels[k] = v
- }
- }
- return rprs
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/options.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/options.go
deleted file mode 100644
index 148a5645..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/options.go
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package ocagent
-
-import (
- "time"
-
- "go.opencensus.io/resource"
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials"
-)
-
-const (
- DefaultAgentPort uint16 = 55678
- DefaultAgentHost string = "localhost"
-)
-
-type ExporterOption interface {
- withExporter(e *Exporter)
-}
-
-type resourceDetector resource.Detector
-
-var _ ExporterOption = (*resourceDetector)(nil)
-
-func (rd resourceDetector) withExporter(e *Exporter) {
- e.resourceDetector = resource.Detector(rd)
-}
-
-// WithResourceDetector allows one to register a resource detector. Resource Detector is used
-// to detect resources associated with the application. Detected resource is exported
-// along with the metrics. If the detector fails then it panics.
-// If a resource detector is not provided then by default it detects from the environment.
-func WithResourceDetector(rd resource.Detector) ExporterOption {
- return resourceDetector(rd)
-}
-
-type insecureGrpcConnection int
-
-var _ ExporterOption = (*insecureGrpcConnection)(nil)
-
-func (igc *insecureGrpcConnection) withExporter(e *Exporter) {
- e.canDialInsecure = true
-}
-
-// WithInsecure disables client transport security for the exporter's gRPC connection
-// just like grpc.WithInsecure() https://godoc.org/google.golang.org/grpc#WithInsecure
-// does. Note, by default, client security is required unless WithInsecure is used.
-func WithInsecure() ExporterOption { return new(insecureGrpcConnection) }
-
-type addressSetter string
-
-func (as addressSetter) withExporter(e *Exporter) {
- e.agentAddress = string(as)
-}
-
-var _ ExporterOption = (*addressSetter)(nil)
-
-// WithAddress allows one to set the address that the exporter will
-// connect to the agent on. If unset, it will instead try to use
-// connect to DefaultAgentHost:DefaultAgentPort
-func WithAddress(addr string) ExporterOption {
- return addressSetter(addr)
-}
-
-type serviceNameSetter string
-
-func (sns serviceNameSetter) withExporter(e *Exporter) {
- e.serviceName = string(sns)
-}
-
-var _ ExporterOption = (*serviceNameSetter)(nil)
-
-// WithServiceName allows one to set/override the service name
-// that the exporter will report to the agent.
-func WithServiceName(serviceName string) ExporterOption {
- return serviceNameSetter(serviceName)
-}
-
-type reconnectionPeriod time.Duration
-
-func (rp reconnectionPeriod) withExporter(e *Exporter) {
- e.reconnectionPeriod = time.Duration(rp)
-}
-
-func WithReconnectionPeriod(rp time.Duration) ExporterOption {
- return reconnectionPeriod(rp)
-}
-
-type compressorSetter string
-
-func (c compressorSetter) withExporter(e *Exporter) {
- e.compressor = string(c)
-}
-
-// UseCompressor will set the compressor for the gRPC client to use when sending requests.
-// It is the responsibility of the caller to ensure that the compressor set has been registered
-// with google.golang.org/grpc/encoding. This can be done by encoding.RegisterCompressor. Some
-// compressors auto-register on import, such as gzip, which can be registered by calling
-// `import _ "google.golang.org/grpc/encoding/gzip"`
-func UseCompressor(compressorName string) ExporterOption {
- return compressorSetter(compressorName)
-}
-
-type headerSetter map[string]string
-
-func (h headerSetter) withExporter(e *Exporter) {
- e.headers = map[string]string(h)
-}
-
-// WithHeaders will send the provided headers when the gRPC stream connection
-// is instantiated
-func WithHeaders(headers map[string]string) ExporterOption {
- return headerSetter(headers)
-}
-
-type clientCredentials struct {
- credentials.TransportCredentials
-}
-
-var _ ExporterOption = (*clientCredentials)(nil)
-
-// WithTLSCredentials allows the connection to use TLS credentials
-// when talking to the server. It takes in grpc.TransportCredentials instead
-// of say a Certificate file or a tls.Certificate, because the retrieving
-// these credentials can be done in many ways e.g. plain file, in code tls.Config
-// or by certificate rotation, so it is up to the caller to decide what to use.
-func WithTLSCredentials(creds credentials.TransportCredentials) ExporterOption {
- return &clientCredentials{TransportCredentials: creds}
-}
-
-func (cc *clientCredentials) withExporter(e *Exporter) {
- e.clientTransportCredentials = cc.TransportCredentials
-}
-
-type grpcDialOptions []grpc.DialOption
-
-var _ ExporterOption = (*grpcDialOptions)(nil)
-
-// WithGRPCDialOption opens support to any grpc.DialOption to be used. If it conflicts
-// with some other configuration the GRPC specified via the agent the ones here will
-// take preference since they are set last.
-func WithGRPCDialOption(opts ...grpc.DialOption) ExporterOption {
- return grpcDialOptions(opts)
-}
-
-func (opts grpcDialOptions) withExporter(e *Exporter) {
- e.grpcDialOptions = opts
-}
-
-type metricNamePrefixSetter string
-
-var _ ExporterOption = (*metricNamePrefixSetter)(nil)
-
-func (p metricNamePrefixSetter) withExporter(e *Exporter) {
- e.metricNamePerfix = string(p)
-}
-
-// WithMetricNamePrefix provides an option for the caller to add a prefix to metric names.
-func WithMetricNamePrefix(prefix string) ExporterOption {
- return metricNamePrefixSetter(prefix)
-}
-
-type dataBundlerOptions struct {
- delay time.Duration
- count int
-}
-
-var _ ExporterOption = (*dataBundlerOptions)(nil)
-
-func (b dataBundlerOptions) withExporter(e *Exporter) {
- if b.delay > 0 {
- e.viewDataDelay = b.delay
- }
- if b.count > 0 {
- e.viewDataBundleCount = b.count
- }
-}
-
-// WithDataBundlerOptions provides an option for the caller to configure the metrics data bundler.
-func WithDataBundlerOptions(delay time.Duration, count int) ExporterOption {
- return dataBundlerOptions{delay, count}
-}
-
-func (spanConfig SpanConfig) withExporter(e *Exporter) {
- e.spanConfig = spanConfig
-}
-
-var _ ExporterOption = (*SpanConfig)(nil)
-
-// WithSpanConfig allows one to set the AnnotationEventsPerSpan and MessageEventsPerSpan
-func WithSpanConfig(spanConfig SpanConfig) ExporterOption {
- return spanConfig
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/span_config.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/span_config.go
deleted file mode 100644
index 8d3d60b1..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/span_config.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package ocagent
-
-const (
- maxAnnotationEventsPerSpan = 32
- maxMessageEventsPerSpan = 128
-)
-
-type SpanConfig struct {
- AnnotationEventsPerSpan int
- MessageEventsPerSpan int
-}
-
-func (spanConfig SpanConfig) GetAnnotationEventsPerSpan() int {
- if spanConfig.AnnotationEventsPerSpan <= 0 {
- return maxAnnotationEventsPerSpan
- }
- return spanConfig.AnnotationEventsPerSpan
-}
-
-func (spanConfig SpanConfig) GetMessageEventsPerSpan() int {
- if spanConfig.MessageEventsPerSpan <= 0 {
- return maxMessageEventsPerSpan
- }
- return spanConfig.MessageEventsPerSpan
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_spans.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_spans.go
deleted file mode 100644
index 409afe1e..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_spans.go
+++ /dev/null
@@ -1,243 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package ocagent
-
-import (
- "math"
- "time"
-
- "go.opencensus.io/trace"
- "go.opencensus.io/trace/tracestate"
-
- tracepb "github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1"
- "github.com/golang/protobuf/ptypes/timestamp"
-)
-
-func ocSpanToProtoSpan(sd *trace.SpanData, spanConfig SpanConfig) *tracepb.Span {
- if sd == nil {
- return nil
- }
- var namePtr *tracepb.TruncatableString
- if sd.Name != "" {
- namePtr = &tracepb.TruncatableString{Value: sd.Name}
- }
- return &tracepb.Span{
- TraceId: sd.TraceID[:],
- SpanId: sd.SpanID[:],
- ParentSpanId: sd.ParentSpanID[:],
- Status: ocStatusToProtoStatus(sd.Status),
- StartTime: timeToTimestamp(sd.StartTime),
- EndTime: timeToTimestamp(sd.EndTime),
- Links: ocLinksToProtoLinks(sd.Links),
- Kind: ocSpanKindToProtoSpanKind(sd.SpanKind),
- Name: namePtr,
- Attributes: ocAttributesToProtoAttributes(sd.Attributes),
- TimeEvents: ocTimeEventsToProtoTimeEvents(sd.Annotations, sd.MessageEvents, spanConfig),
- Tracestate: ocTracestateToProtoTracestate(sd.Tracestate),
- }
-}
-
-var blankStatus trace.Status
-
-func ocStatusToProtoStatus(status trace.Status) *tracepb.Status {
- if status == blankStatus {
- return nil
- }
- return &tracepb.Status{
- Code: status.Code,
- Message: status.Message,
- }
-}
-
-func ocLinksToProtoLinks(links []trace.Link) *tracepb.Span_Links {
- if len(links) == 0 {
- return nil
- }
-
- sl := make([]*tracepb.Span_Link, 0, len(links))
- for _, ocLink := range links {
- // This redefinition is necessary to prevent ocLink.*ID[:] copies
- // being reused -- in short we need a new ocLink per iteration.
- ocLink := ocLink
-
- sl = append(sl, &tracepb.Span_Link{
- TraceId: ocLink.TraceID[:],
- SpanId: ocLink.SpanID[:],
- Type: ocLinkTypeToProtoLinkType(ocLink.Type),
- })
- }
-
- return &tracepb.Span_Links{
- Link: sl,
- }
-}
-
-func ocLinkTypeToProtoLinkType(oct trace.LinkType) tracepb.Span_Link_Type {
- switch oct {
- case trace.LinkTypeChild:
- return tracepb.Span_Link_CHILD_LINKED_SPAN
- case trace.LinkTypeParent:
- return tracepb.Span_Link_PARENT_LINKED_SPAN
- default:
- return tracepb.Span_Link_TYPE_UNSPECIFIED
- }
-}
-
-func ocAttributesToProtoAttributes(attrs map[string]interface{}) *tracepb.Span_Attributes {
- if len(attrs) == 0 {
- return nil
- }
- outMap := make(map[string]*tracepb.AttributeValue)
- for k, v := range attrs {
- switch v := v.(type) {
- case bool:
- outMap[k] = &tracepb.AttributeValue{Value: &tracepb.AttributeValue_BoolValue{BoolValue: v}}
-
- case int:
- outMap[k] = &tracepb.AttributeValue{Value: &tracepb.AttributeValue_IntValue{IntValue: int64(v)}}
-
- case int64:
- outMap[k] = &tracepb.AttributeValue{Value: &tracepb.AttributeValue_IntValue{IntValue: v}}
-
- case string:
- outMap[k] = &tracepb.AttributeValue{
- Value: &tracepb.AttributeValue_StringValue{
- StringValue: &tracepb.TruncatableString{Value: v},
- },
- }
- }
- }
- return &tracepb.Span_Attributes{
- AttributeMap: outMap,
- }
-}
-
-// This code is mostly copied from
-// https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/blob/master/trace_proto.go#L46
-func ocTimeEventsToProtoTimeEvents(as []trace.Annotation, es []trace.MessageEvent, spanConfig SpanConfig) *tracepb.Span_TimeEvents {
- if len(as) == 0 && len(es) == 0 {
- return nil
- }
-
- timeEvents := &tracepb.Span_TimeEvents{}
- var annotations, droppedAnnotationsCount int
- var messageEvents, droppedMessageEventsCount int
-
- // Transform annotations
- for i, a := range as {
- if annotations >= spanConfig.GetAnnotationEventsPerSpan() {
- droppedAnnotationsCount = len(as) - i
- break
- }
- annotations++
- timeEvents.TimeEvent = append(timeEvents.TimeEvent,
- &tracepb.Span_TimeEvent{
- Time: timeToTimestamp(a.Time),
- Value: transformAnnotationToTimeEvent(&a),
- },
- )
- }
-
- // Transform message events
- for i, e := range es {
- if messageEvents >= spanConfig.GetMessageEventsPerSpan() {
- droppedMessageEventsCount = len(es) - i
- break
- }
- messageEvents++
- timeEvents.TimeEvent = append(timeEvents.TimeEvent,
- &tracepb.Span_TimeEvent{
- Time: timeToTimestamp(e.Time),
- Value: transformMessageEventToTimeEvent(&e),
- },
- )
- }
-
- // Process dropped counter
- timeEvents.DroppedAnnotationsCount = clip32(droppedAnnotationsCount)
- timeEvents.DroppedMessageEventsCount = clip32(droppedMessageEventsCount)
-
- return timeEvents
-}
-
-func transformAnnotationToTimeEvent(a *trace.Annotation) *tracepb.Span_TimeEvent_Annotation_ {
- return &tracepb.Span_TimeEvent_Annotation_{
- Annotation: &tracepb.Span_TimeEvent_Annotation{
- Description: &tracepb.TruncatableString{Value: a.Message},
- Attributes: ocAttributesToProtoAttributes(a.Attributes),
- },
- }
-}
-
-func transformMessageEventToTimeEvent(e *trace.MessageEvent) *tracepb.Span_TimeEvent_MessageEvent_ {
- return &tracepb.Span_TimeEvent_MessageEvent_{
- MessageEvent: &tracepb.Span_TimeEvent_MessageEvent{
- Type: tracepb.Span_TimeEvent_MessageEvent_Type(e.EventType),
- Id: uint64(e.MessageID),
- UncompressedSize: uint64(e.UncompressedByteSize),
- CompressedSize: uint64(e.CompressedByteSize),
- },
- }
-}
-
-// clip32 clips an int to the range of an int32.
-func clip32(x int) int32 {
- if x < math.MinInt32 {
- return math.MinInt32
- }
- if x > math.MaxInt32 {
- return math.MaxInt32
- }
- return int32(x)
-}
-
-func timeToTimestamp(t time.Time) *timestamp.Timestamp {
- nanoTime := t.UnixNano()
- return ×tamp.Timestamp{
- Seconds: nanoTime / 1e9,
- Nanos: int32(nanoTime % 1e9),
- }
-}
-
-func ocSpanKindToProtoSpanKind(kind int) tracepb.Span_SpanKind {
- switch kind {
- case trace.SpanKindClient:
- return tracepb.Span_CLIENT
- case trace.SpanKindServer:
- return tracepb.Span_SERVER
- default:
- return tracepb.Span_SPAN_KIND_UNSPECIFIED
- }
-}
-
-func ocTracestateToProtoTracestate(ts *tracestate.Tracestate) *tracepb.Span_Tracestate {
- if ts == nil {
- return nil
- }
- return &tracepb.Span_Tracestate{
- Entries: ocTracestateEntriesToProtoTracestateEntries(ts.Entries()),
- }
-}
-
-func ocTracestateEntriesToProtoTracestateEntries(entries []tracestate.Entry) []*tracepb.Span_Tracestate_Entry {
- protoEntries := make([]*tracepb.Span_Tracestate_Entry, 0, len(entries))
- for _, entry := range entries {
- protoEntries = append(protoEntries, &tracepb.Span_Tracestate_Entry{
- Key: entry.Key,
- Value: entry.Value,
- })
- }
- return protoEntries
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_stats_to_metrics.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_stats_to_metrics.go
deleted file mode 100644
index 45160912..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/transform_stats_to_metrics.go
+++ /dev/null
@@ -1,278 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package ocagent
-
-import (
- "errors"
- "time"
-
- "go.opencensus.io/stats"
- "go.opencensus.io/stats/view"
- "go.opencensus.io/tag"
-
- "github.com/golang/protobuf/ptypes/timestamp"
-
- metricspb "github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1"
-)
-
-var (
- errNilMeasure = errors.New("expecting a non-nil stats.Measure")
- errNilView = errors.New("expecting a non-nil view.View")
- errNilViewData = errors.New("expecting a non-nil view.Data")
-)
-
-func viewDataToMetric(vd *view.Data, metricNamePrefix string) (*metricspb.Metric, error) {
- if vd == nil {
- return nil, errNilViewData
- }
-
- descriptor, err := viewToMetricDescriptor(vd.View, metricNamePrefix)
- if err != nil {
- return nil, err
- }
-
- timeseries, err := viewDataToTimeseries(vd)
- if err != nil {
- return nil, err
- }
-
- metric := &metricspb.Metric{
- MetricDescriptor: descriptor,
- Timeseries: timeseries,
- }
- return metric, nil
-}
-
-func viewToMetricDescriptor(v *view.View, metricNamePrefix string) (*metricspb.MetricDescriptor, error) {
- if v == nil {
- return nil, errNilView
- }
- if v.Measure == nil {
- return nil, errNilMeasure
- }
-
- name := stringOrCall(v.Name, v.Measure.Name)
- if len(metricNamePrefix) > 0 {
- name = metricNamePrefix + "/" + name
- }
- desc := &metricspb.MetricDescriptor{
- Name: name,
- Description: stringOrCall(v.Description, v.Measure.Description),
- Unit: v.Measure.Unit(),
- Type: aggregationToMetricDescriptorType(v),
- LabelKeys: tagKeysToLabelKeys(v.TagKeys),
- }
- return desc, nil
-}
-
-func stringOrCall(first string, call func() string) string {
- if first != "" {
- return first
- }
- return call()
-}
-
-type measureType uint
-
-const (
- measureUnknown measureType = iota
- measureInt64
- measureFloat64
-)
-
-func measureTypeFromMeasure(m stats.Measure) measureType {
- switch m.(type) {
- default:
- return measureUnknown
- case *stats.Float64Measure:
- return measureFloat64
- case *stats.Int64Measure:
- return measureInt64
- }
-}
-
-func aggregationToMetricDescriptorType(v *view.View) metricspb.MetricDescriptor_Type {
- if v == nil || v.Aggregation == nil {
- return metricspb.MetricDescriptor_UNSPECIFIED
- }
- if v.Measure == nil {
- return metricspb.MetricDescriptor_UNSPECIFIED
- }
-
- switch v.Aggregation.Type {
- case view.AggTypeCount:
- // Cumulative on int64
- return metricspb.MetricDescriptor_CUMULATIVE_INT64
-
- case view.AggTypeDistribution:
- // Cumulative types
- return metricspb.MetricDescriptor_CUMULATIVE_DISTRIBUTION
-
- case view.AggTypeLastValue:
- // Gauge types
- switch measureTypeFromMeasure(v.Measure) {
- case measureFloat64:
- return metricspb.MetricDescriptor_GAUGE_DOUBLE
- case measureInt64:
- return metricspb.MetricDescriptor_GAUGE_INT64
- }
-
- case view.AggTypeSum:
- // Cumulative types
- switch measureTypeFromMeasure(v.Measure) {
- case measureFloat64:
- return metricspb.MetricDescriptor_CUMULATIVE_DOUBLE
- case measureInt64:
- return metricspb.MetricDescriptor_CUMULATIVE_INT64
- }
- }
-
- // For all other cases, return unspecified.
- return metricspb.MetricDescriptor_UNSPECIFIED
-}
-
-func tagKeysToLabelKeys(tagKeys []tag.Key) []*metricspb.LabelKey {
- labelKeys := make([]*metricspb.LabelKey, 0, len(tagKeys))
- for _, tagKey := range tagKeys {
- labelKeys = append(labelKeys, &metricspb.LabelKey{
- Key: tagKey.Name(),
- })
- }
- return labelKeys
-}
-
-func viewDataToTimeseries(vd *view.Data) ([]*metricspb.TimeSeries, error) {
- if vd == nil || len(vd.Rows) == 0 {
- return nil, nil
- }
-
- // Given that view.Data only contains Start, End
- // the timestamps for all the row data will be the exact same
- // per aggregation. However, the values will differ.
- // Each row has its own tags.
- startTimestamp := timeToProtoTimestamp(vd.Start)
- endTimestamp := timeToProtoTimestamp(vd.End)
-
- mType := measureTypeFromMeasure(vd.View.Measure)
- timeseries := make([]*metricspb.TimeSeries, 0, len(vd.Rows))
- // It is imperative that the ordering of "LabelValues" matches those
- // of the Label keys in the metric descriptor.
- for _, row := range vd.Rows {
- labelValues := labelValuesFromTags(row.Tags)
- point := rowToPoint(vd.View, row, endTimestamp, mType)
- timeseries = append(timeseries, &metricspb.TimeSeries{
- StartTimestamp: startTimestamp,
- LabelValues: labelValues,
- Points: []*metricspb.Point{point},
- })
- }
-
- if len(timeseries) == 0 {
- return nil, nil
- }
-
- return timeseries, nil
-}
-
-func timeToProtoTimestamp(t time.Time) *timestamp.Timestamp {
- unixNano := t.UnixNano()
- return ×tamp.Timestamp{
- Seconds: int64(unixNano / 1e9),
- Nanos: int32(unixNano % 1e9),
- }
-}
-
-func rowToPoint(v *view.View, row *view.Row, endTimestamp *timestamp.Timestamp, mType measureType) *metricspb.Point {
- pt := &metricspb.Point{
- Timestamp: endTimestamp,
- }
-
- switch data := row.Data.(type) {
- case *view.CountData:
- pt.Value = &metricspb.Point_Int64Value{Int64Value: data.Value}
-
- case *view.DistributionData:
- pt.Value = &metricspb.Point_DistributionValue{
- DistributionValue: &metricspb.DistributionValue{
- Count: data.Count,
- Sum: float64(data.Count) * data.Mean, // because Mean := Sum/Count
- // TODO: Add Exemplar
- Buckets: bucketsToProtoBuckets(data.CountPerBucket),
- BucketOptions: &metricspb.DistributionValue_BucketOptions{
- Type: &metricspb.DistributionValue_BucketOptions_Explicit_{
- Explicit: &metricspb.DistributionValue_BucketOptions_Explicit{
- Bounds: v.Aggregation.Buckets,
- },
- },
- },
- SumOfSquaredDeviation: data.SumOfSquaredDev,
- }}
-
- case *view.LastValueData:
- setPointValue(pt, data.Value, mType)
-
- case *view.SumData:
- setPointValue(pt, data.Value, mType)
- }
-
- return pt
-}
-
-// Not returning anything from this function because metricspb.Point.is_Value is an unexported
-// interface hence we just have to set its value by pointer.
-func setPointValue(pt *metricspb.Point, value float64, mType measureType) {
- if mType == measureInt64 {
- pt.Value = &metricspb.Point_Int64Value{Int64Value: int64(value)}
- } else {
- pt.Value = &metricspb.Point_DoubleValue{DoubleValue: value}
- }
-}
-
-func bucketsToProtoBuckets(countPerBucket []int64) []*metricspb.DistributionValue_Bucket {
- distBuckets := make([]*metricspb.DistributionValue_Bucket, len(countPerBucket))
- for i := 0; i < len(countPerBucket); i++ {
- count := countPerBucket[i]
-
- distBuckets[i] = &metricspb.DistributionValue_Bucket{
- Count: count,
- }
- }
-
- return distBuckets
-}
-
-func labelValuesFromTags(tags []tag.Tag) []*metricspb.LabelValue {
- if len(tags) == 0 {
- return nil
- }
-
- labelValues := make([]*metricspb.LabelValue, 0, len(tags))
- for _, tag_ := range tags {
- labelValues = append(labelValues, &metricspb.LabelValue{
- Value: tag_.Value,
-
- // It is imperative that we set the "HasValue" attribute,
- // in order to distinguish missing a label from the empty string.
- // https://godoc.org/github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1#LabelValue.HasValue
- //
- // OpenCensus-Go uses non-pointers for tags as seen by this function's arguments,
- // so the best case that we can use to distinguish missing labels/tags from the
- // empty string is by checking if the Tag.Key.Name() != "" to indicate that we have
- // a value.
- HasValue: tag_.Key.Name() != "",
- })
- }
- return labelValues
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/version.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/version.go
deleted file mode 100644
index 68be4c75..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/ocagent/version.go
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package ocagent
-
-const Version = "0.0.1"
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.gitignore b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.gitignore
deleted file mode 100644
index 85e7c1df..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/.idea/
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.golangci.yml b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.golangci.yml
deleted file mode 100644
index 0aa9844f..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.golangci.yml
+++ /dev/null
@@ -1,123 +0,0 @@
-# options for analysis running
-run:
- # default concurrency is a available CPU number
- concurrency: 4
-
- # timeout for analysis, e.g. 30s, 5m, default is 1m
- timeout: 10m
-
- # exit code when at least one issue was found, default is 1
- issues-exit-code: 1
-
- # include test files or not, default is true
- tests: true
-
- # which dirs to skip: issues from them won't be reported;
- # can use regexp here: generated.*, regexp is applied on full path;
- # default value is empty list, but default dirs are skipped independently
- # from this option's value (see skip-dirs-use-default).
- skip-dirs:
-
- # default is true. Enables skipping of directories:
- # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
- skip-dirs-use-default: false
-
- # which files to skip: they will be analyzed, but issues from them
- # won't be reported. Default value is empty list, but there is
- # no need to include all autogenerated files, we confidently recognize
- # autogenerated files. If it's not please let us know.
- skip-files:
-
- # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
- # If invoked with -mod=readonly, the go command is disallowed from the implicit
- # automatic updating of go.mod described above. Instead, it fails when any changes
- # to go.mod are needed. This setting is most useful to check that go.mod does
- # not need updates, such as in a continuous integration and testing system.
- # If invoked with -mod=vendor, the go command assumes that the vendor
- # directory holds the correct copies of dependencies and ignores
- # the dependency descriptions in go.mod.
- modules-download-mode: readonly
-
-# output configuration options
-output:
- # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
- format: colored-line-number
-
- # print lines of code with issue, default is true
- print-issued-lines: true
-
- # print linter name in the end of issue text, default is true
- print-linter-name: true
-
-# all available settings of specific linters
-linters-settings:
- govet:
- # report about shadowed variables
- check-shadowing: true
-
- # settings per analyzer
- settings:
- printf: # analyzer name, run `go tool vet help` to see all analyzers
- funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
-
- enable-all: true
- # TODO: Enable this and fix the alignment issues.
- disable:
- - fieldalignment
-
- golint:
- # minimal confidence for issues, default is 0.8
- min-confidence: 0.8
-
- gofmt:
- # simplify code: gofmt with `-s` option, true by default
- simplify: true
-
- goimports:
- # put imports beginning with prefix after 3rd-party packages;
- # it's a comma-separated list of prefixes
- local-prefixes: contrib.go.opencensus.io/exporter/prometheus
-
- misspell:
- # Correct spellings using locale preferences for US or UK.
- # Default is to use a neutral variety of English.
- # Setting locale to US will correct the British spelling of 'colour' to 'color'.
- locale: US
- ignore-words:
- - cancelled
- - metre
- - meter
- - metres
- - kilometre
- - kilometres
-
-linters:
- disable:
- - errcheck
- enable:
- - gofmt
- - goimports
- - golint
- - gosec
- - govet
- - staticcheck
- - misspell
- - scopelint
- - unconvert
- - gocritic
- - unparam
-
-issues:
- # Excluding configuration per-path, per-linter, per-text and per-source
- exclude-rules:
- # Exclude some linters from running on tests files.
- - path: _test\.go
- linters:
- - scopelint
- - text: "G404:"
- linters:
- - gosec
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.travis.yml b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.travis.yml
deleted file mode 100644
index 17afafec..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: go
-
-go_import_path: contrib.go.opencensus.io
-
-go:
- - 1.15.x
-
-env:
- global:
- GO111MODULE=on
-
-before_script:
- - make install-tools
-
-script:
- - make travis-ci
-
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/LICENSE b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/LICENSE
deleted file mode 100644
index 261eeb9e..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/Makefile b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/Makefile
deleted file mode 100644
index cf4d6132..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# TODO: Fix this on windows.
-ALL_SRC := $(shell find . -name '*.go' \
- -not -path './vendor/*' \
- -not -path '*/gen-go/*' \
- -type f | sort)
-ALL_PKGS := $(shell go list $(sort $(dir $(ALL_SRC))))
-
-GOTEST_OPT?=-v -race -timeout 30s
-GOTEST_OPT_WITH_COVERAGE = $(GOTEST_OPT) -coverprofile=coverage.txt -covermode=atomic
-GOTEST=go test
-LINT=golangci-lint
-# TODO decide if we need to change these names.
-README_FILES := $(shell find . -name '*README.md' | sort | tr '\n' ' ')
-
-.DEFAULT_GOAL := lint-test
-
-.PHONY: lint-test
-lint-test: lint test
-
-# TODO enable test-with-coverage in travis
-.PHONY: travis-ci
-travis-ci: lint test test-386
-
-all-pkgs:
- @echo $(ALL_PKGS) | tr ' ' '\n' | sort
-
-all-srcs:
- @echo $(ALL_SRC) | tr ' ' '\n' | sort
-
-.PHONY: test
-test:
- $(GOTEST) $(GOTEST_OPT) $(ALL_PKGS)
-
-.PHONY: test-386
-test-386:
- GOARCH=386 $(GOTEST) -v -timeout 30s $(ALL_PKGS)
-
-.PHONY: test-with-coverage
-test-with-coverage:
- $(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) $(ALL_PKGS)
-
-.PHONY: lint
-lint:
- $(LINT) run --allow-parallel-runners
-
-.PHONY: install-tools
-install-tools:
- cd internal/tools && go install golang.org/x/tools/cmd/cover
- cd internal/tools && go install github.com/golangci/golangci-lint/cmd/golangci-lint
-
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/README.md b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/README.md
deleted file mode 100644
index 3a9c5d3c..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# OpenCensus Go Prometheus Exporter
-
-[](https://travis-ci.org/census-ecosystem/opencensus-go-exporter-prometheus) [![GoDoc][godoc-image]][godoc-url]
-
-Provides OpenCensus metrics export support for Prometheus.
-
-## Installation
-
-```
-$ go get -u contrib.go.opencensus.io/exporter/prometheus
-```
-
-[godoc-image]: https://godoc.org/contrib.go.opencensus.io/exporter/prometheus?status.svg
-[godoc-url]: https://godoc.org/contrib.go.opencensus.io/exporter/prometheus
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/prometheus.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/prometheus.go
deleted file mode 100644
index b94c6d39..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/prometheus.go
+++ /dev/null
@@ -1,303 +0,0 @@
-// Copyright 2017, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package prometheus contains a Prometheus exporter that supports exporting
-// OpenCensus views as Prometheus metrics.
-package prometheus // import "contrib.go.opencensus.io/exporter/prometheus"
-
-import (
- "context"
- "fmt"
- "log"
- "net/http"
- "sync"
-
- "github.com/prometheus/client_golang/prometheus"
- "github.com/prometheus/client_golang/prometheus/promhttp"
- "go.opencensus.io/metric/metricdata"
- "go.opencensus.io/metric/metricexport"
- "go.opencensus.io/stats/view"
-)
-
-// Exporter exports stats to Prometheus, users need
-// to register the exporter as an http.Handler to be
-// able to export.
-type Exporter struct {
- opts Options
- g prometheus.Gatherer
- c *collector
- handler http.Handler
-}
-
-// Options contains options for configuring the exporter.
-type Options struct {
- Namespace string
- Registry *prometheus.Registry
- Registerer prometheus.Registerer
- Gatherer prometheus.Gatherer
- OnError func(err error)
- ConstLabels prometheus.Labels // ConstLabels will be set as labels on all views.
-}
-
-// NewExporter returns an exporter that exports stats to Prometheus.
-func NewExporter(o Options) (*Exporter, error) {
- if o.Registry == nil {
- o.Registry = prometheus.NewRegistry()
- }
- if o.Registerer == nil {
- o.Registerer = o.Registry
- }
- if o.Gatherer == nil {
- o.Gatherer = o.Registry
- }
-
- collector := newCollector(o, o.Registerer)
- e := &Exporter{
- opts: o,
- g: o.Gatherer,
- c: collector,
- handler: promhttp.HandlerFor(o.Gatherer, promhttp.HandlerOpts{}),
- }
- collector.ensureRegisteredOnce()
-
- return e, nil
-}
-
-var _ http.Handler = (*Exporter)(nil)
-
-// ensureRegisteredOnce invokes reg.Register on the collector itself
-// exactly once to ensure that we don't get errors such as
-// cannot register the collector: descriptor Desc{fqName: *}
-// already exists with the same fully-qualified name and const label values
-// which is documented by Prometheus at
-// https://github.com/prometheus/client_golang/blob/fcc130e101e76c5d303513d0e28f4b6d732845c7/prometheus/registry.go#L89-L101
-func (c *collector) ensureRegisteredOnce() {
- c.registerOnce.Do(func() {
- if err := c.reg.Register(c); err != nil {
- c.opts.onError(fmt.Errorf("cannot register the collector: %v", err))
- }
- })
-
-}
-
-func (o *Options) onError(err error) {
- if o.OnError != nil {
- o.OnError(err)
- } else {
- log.Printf("Failed to export to Prometheus: %v", err)
- }
-}
-
-// ExportView exports to the Prometheus if view data has one or more rows.
-// Each OpenCensus AggregationData will be converted to
-// corresponding Prometheus Metric: SumData will be converted
-// to Untyped Metric, CountData will be a Counter Metric,
-// DistributionData will be a Histogram Metric.
-//
-// Deprecated: in lieu of metricexport.Reader interface.
-func (e *Exporter) ExportView(vd *view.Data) {
-}
-
-// ServeHTTP serves the Prometheus endpoint.
-func (e *Exporter) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- e.handler.ServeHTTP(w, r)
-}
-
-// collector implements prometheus.Collector
-type collector struct {
- opts Options
-
- registerOnce sync.Once
-
- // reg helps collector register views dynamically.
- reg prometheus.Registerer
-
- // reader reads metrics from all registered producers.
- reader *metricexport.Reader
-}
-
-func (c *collector) Describe(ch chan<- *prometheus.Desc) {
- de := &descExporter{c: c, descCh: ch}
- c.reader.ReadAndExport(de)
-}
-
-// Collect fetches the statistics from OpenCensus
-// and delivers them as Prometheus Metrics.
-// Collect is invoked every time a prometheus.Gatherer is run
-// for example when the HTTP endpoint is invoked by Prometheus.
-func (c *collector) Collect(ch chan<- prometheus.Metric) {
- me := &metricExporter{c: c, metricCh: ch}
- c.reader.ReadAndExport(me)
-}
-
-func newCollector(opts Options, registrar prometheus.Registerer) *collector {
- return &collector{
- reg: registrar,
- opts: opts,
- reader: metricexport.NewReader()}
-}
-
-func (c *collector) toDesc(metric *metricdata.Metric) *prometheus.Desc {
- var labels prometheus.Labels
- switch {
- case metric.Resource == nil:
- labels = c.opts.ConstLabels
- case c.opts.ConstLabels == nil:
- labels = metric.Resource.Labels
- default:
- labels = prometheus.Labels{}
- for k, v := range c.opts.ConstLabels {
- labels[k] = v
- }
- // Resource labels overwrite const labels.
- for k, v := range metric.Resource.Labels {
- labels[k] = v
- }
- }
-
- return prometheus.NewDesc(
- metricName(c.opts.Namespace, metric),
- metric.Descriptor.Description,
- toPromLabels(metric.Descriptor.LabelKeys),
- labels)
-}
-
-type metricExporter struct {
- c *collector
- metricCh chan<- prometheus.Metric
-}
-
-// ExportMetrics exports to the Prometheus.
-// Each OpenCensus Metric will be converted to
-// corresponding Prometheus Metric:
-// TypeCumulativeInt64 and TypeCumulativeFloat64 will be a Counter Metric,
-// TypeCumulativeDistribution will be a Histogram Metric.
-// TypeGaugeFloat64 and TypeGaugeInt64 will be a Gauge Metric
-func (me *metricExporter) ExportMetrics(ctx context.Context, metrics []*metricdata.Metric) error {
- for _, metric := range metrics {
- desc := me.c.toDesc(metric)
- for _, ts := range metric.TimeSeries {
- tvs := toLabelValues(ts.LabelValues)
- for _, point := range ts.Points {
- metric, err := toPromMetric(desc, metric, point, tvs)
- if err != nil {
- me.c.opts.onError(err)
- } else if metric != nil {
- me.metricCh <- metric
- }
- }
- }
- }
- return nil
-}
-
-type descExporter struct {
- c *collector
- descCh chan<- *prometheus.Desc
-}
-
-// ExportMetrics exports descriptor to the Prometheus.
-// It is invoked when request to scrape descriptors is received.
-func (me *descExporter) ExportMetrics(ctx context.Context, metrics []*metricdata.Metric) error {
- for _, metric := range metrics {
- desc := me.c.toDesc(metric)
- me.descCh <- desc
- }
- return nil
-}
-
-func toPromLabels(mls []metricdata.LabelKey) (labels []string) {
- for _, ml := range mls {
- labels = append(labels, sanitize(ml.Key))
- }
- return labels
-}
-
-func metricName(namespace string, m *metricdata.Metric) string {
- var name string
- if namespace != "" {
- name = namespace + "_"
- }
- return name + sanitize(m.Descriptor.Name)
-}
-
-func toPromMetric(
- desc *prometheus.Desc,
- metric *metricdata.Metric,
- point metricdata.Point,
- labelValues []string) (prometheus.Metric, error) {
- switch metric.Descriptor.Type {
- case metricdata.TypeCumulativeFloat64, metricdata.TypeCumulativeInt64:
- pv, err := toPromValue(point)
- if err != nil {
- return nil, err
- }
- return prometheus.NewConstMetric(desc, prometheus.CounterValue, pv, labelValues...)
-
- case metricdata.TypeGaugeFloat64, metricdata.TypeGaugeInt64:
- pv, err := toPromValue(point)
- if err != nil {
- return nil, err
- }
- return prometheus.NewConstMetric(desc, prometheus.GaugeValue, pv, labelValues...)
-
- case metricdata.TypeCumulativeDistribution:
- switch v := point.Value.(type) {
- case *metricdata.Distribution:
- points := make(map[float64]uint64)
- // Histograms are cumulative in Prometheus.
- // Get cumulative bucket counts.
- cumCount := uint64(0)
- for i, b := range v.BucketOptions.Bounds {
- cumCount += uint64(v.Buckets[i].Count)
- points[b] = cumCount
- }
- return prometheus.NewConstHistogram(desc, uint64(v.Count), v.Sum, points, labelValues...)
- default:
- return nil, typeMismatchError(point)
- }
- case metricdata.TypeSummary:
- // TODO: [rghetia] add support for TypeSummary.
- return nil, nil
- default:
- return nil, fmt.Errorf("aggregation %T is not yet supported", metric.Descriptor.Type)
- }
-}
-
-func toLabelValues(labelValues []metricdata.LabelValue) (values []string) {
- for _, lv := range labelValues {
- if lv.Present {
- values = append(values, lv.Value)
- } else {
- values = append(values, "")
- }
- }
- return values
-}
-
-func typeMismatchError(point metricdata.Point) error {
- return fmt.Errorf("point type %T does not match metric type", point)
-
-}
-
-func toPromValue(point metricdata.Point) (float64, error) {
- switch v := point.Value.(type) {
- case float64:
- return v, nil
- case int64:
- return float64(v), nil
- default:
- return 0.0, typeMismatchError(point)
- }
-}
diff --git a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/sanitize.go b/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/sanitize.go
deleted file mode 100644
index 9c9a9c4d..00000000
--- a/upstream/image/git-init/vendor/contrib.go.opencensus.io/exporter/prometheus/sanitize.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2017, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package prometheus
-
-import (
- "github.com/prometheus/statsd_exporter/pkg/mapper"
-)
-
-const labelKeySizeLimit = 100
-
-// sanitize returns a string that is trunacated to 100 characters if it's too
-// long, and replaces non-alphanumeric characters to underscores.
-func sanitize(s string) string {
- if len(s) == 0 {
- return s
- }
- if len(s) > labelKeySizeLimit {
- s = s[:labelKeySizeLimit]
- }
-
- s = mapper.EscapeMetricName(s)
- if s[0] == '_' {
- s = "key" + s
- }
- return s
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/.gitignore b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/.gitignore
deleted file mode 100644
index 38ea34ff..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-### Go template
-
-# Binaries for programs and plugins
-*.exe
-*.exe~
-*.dll
-*.so
-*.dylib
-
-# Test binary, built with `go test -c`
-*.test
-
-
-# Go workspace file
-go.work
-
-# No Goland stuff in this repo
-.idea
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/LICENSE b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/LICENSE
deleted file mode 100644
index a22292eb..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012-2023 The ANTLR Project. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-3. Neither name of copyright holders nor the names of its contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/README.md b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/README.md
deleted file mode 100644
index 03e5b83e..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-[](https://goreportcard.com/report/github.com/antlr4-go/antlr)
-[](https://pkg.go.dev/github.com/antlr4-go/antlr)
-[](https://github.com/antlr4-go/antlr/releases/latest)
-[](https://github.com/antlr4-go/antlr/releases/latest)
-[](https://github.com/antlr4-go/antlr/commit-activity)
-[](https://opensource.org/licenses/BSD-3-Clause)
-[](https://GitHub.com/Naereen/StrapDown.js/stargazers/)
-# ANTLR4 Go Runtime Module Repo
-
-IMPORTANT: Please submit PRs via a clone of the https://github.com/antlr/antlr4 repo, and not here.
-
- - Do not submit PRs or any change requests to this repo
- - This repo is read only and is updated by the ANTLR team to create a new release of the Go Runtime for ANTLR
- - This repo contains the Go runtime that your generated projects should import
-
-## Introduction
-
-This repo contains the official modules for the Go Runtime for ANTLR. It is a copy of the runtime maintained
-at: https://github.com/antlr/antlr4/tree/master/runtime/Go/antlr and is automatically updated by the ANTLR team to create
-the official Go runtime release only. No development work is carried out in this repo and PRs are not accepted here.
-
-The dev branch of this repo is kept in sync with the dev branch of the main ANTLR repo and is updated periodically.
-
-### Why?
-
-The `go get` command is unable to retrieve the Go runtime when it is embedded so
-deeply in the main repo. A `go get` against the `antlr/antlr4` repo, while retrieving the correct source code for the runtime,
-does not correctly resolve tags and will create a reference in your `go.mod` file that is unclear, will not upgrade smoothly and
-causes confusion.
-
-For instance, the current Go runtime release, which is tagged with v4.13.0 in `antlr/antlr4` is retrieved by go get as:
-
-```sh
-require (
- github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230219212500-1f9a474cc2dc
-)
-```
-
-Where you would expect to see:
-
-```sh
-require (
- github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.13.0
-)
-```
-
-The decision was taken to create a separate org in a separate repo to hold the official Go runtime for ANTLR and
-from whence users can expect `go get` to behave as expected.
-
-
-# Documentation
-Please read the official documentation at: https://github.com/antlr/antlr4/blob/master/doc/index.md for tips on
-migrating existing projects to use the new module location and for information on how to use the Go runtime in
-general.
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/antlrdoc.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/antlrdoc.go
deleted file mode 100644
index 3bb4fd7c..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/antlrdoc.go
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Package antlr implements the Go version of the ANTLR 4 runtime.
-
-# The ANTLR Tool
-
-ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing,
-or translating structured text or binary files. It's widely used to build languages, tools, and frameworks.
-From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface
-(or visitor) that makes it easy to respond to the recognition of phrases of interest.
-
-# Go Runtime
-
-At version 4.11.x and prior, the Go runtime was not properly versioned for go modules. After this point, the runtime
-source code to be imported was held in the `runtime/Go/antlr/v4` directory, and the go.mod file was updated to reflect the version of
-ANTLR4 that it is compatible with (I.E. uses the /v4 path).
-
-However, this was found to be problematic, as it meant that with the runtime embedded so far underneath the root
-of the repo, the `go get` and related commands could not properly resolve the location of the go runtime source code.
-This meant that the reference to the runtime in your `go.mod` file would refer to the correct source code, but would not
-list the release tag such as @4.12.0 - this was confusing, to say the least.
-
-As of 4.12.1, the runtime is now available as a go module in its own repo, and can be imported as `github.com/antlr4-go/antlr`
-(the go get command should also be used with this path). See the main documentation for the ANTLR4 project for more information,
-which is available at [ANTLR docs]. The documentation for using the Go runtime is available at [Go runtime docs].
-
-This means that if you are using the source code without modules, you should also use the source code in the [new repo].
-Though we highly recommend that you use go modules, as they are now idiomatic for Go.
-
-I am aware that this change will prove Hyrum's Law, but am prepared to live with it for the common good.
-
-Go runtime author: [Jim Idle] jimi@idle.ws
-
-# Code Generation
-
-ANTLR supports the generation of code in a number of [target languages], and the generated code is supported by a
-runtime library, written specifically to support the generated code in the target language. This library is the
-runtime for the Go target.
-
-To generate code for the go target, it is generally recommended to place the source grammar files in a package of
-their own, and use the `.sh` script method of generating code, using the go generate directive. In that same directory
-it is usual, though not required, to place the antlr tool that should be used to generate the code. That does mean
-that the antlr tool JAR file will be checked in to your source code control though, so you are, of course, free to use any other
-way of specifying the version of the ANTLR tool to use, such as aliasing in `.zshrc` or equivalent, or a profile in
-your IDE, or configuration in your CI system. Checking in the jar does mean that it is easy to reproduce the build as
-it was at any point in its history.
-
-Here is a general/recommended template for an ANTLR based recognizer in Go:
-
- .
- ├── parser
- │ ├── mygrammar.g4
- │ ├── antlr-4.12.1-complete.jar
- │ ├── generate.go
- │ └── generate.sh
- ├── parsing - generated code goes here
- │ └── error_listeners.go
- ├── go.mod
- ├── go.sum
- ├── main.go
- └── main_test.go
-
-Make sure that the package statement in your grammar file(s) reflects the go package the generated code will exist in.
-
-The generate.go file then looks like this:
-
- package parser
-
- //go:generate ./generate.sh
-
-And the generate.sh file will look similar to this:
-
- #!/bin/sh
-
- alias antlr4='java -Xmx500M -cp "./antlr4-4.12.1-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
- antlr4 -Dlanguage=Go -no-visitor -package parsing *.g4
-
-depending on whether you want visitors or listeners or any other ANTLR options. Not that another option here
-is to generate the code into a
-
-From the command line at the root of your source package (location of go.mo)d) you can then simply issue the command:
-
- go generate ./...
-
-Which will generate the code for the parser, and place it in the parsing package. You can then use the generated code
-by importing the parsing package.
-
-There are no hard and fast rules on this. It is just a recommendation. You can generate the code in any way and to anywhere you like.
-
-# Copyright Notice
-
-Copyright (c) 2012-2023 The ANTLR Project. All rights reserved.
-
-Use of this file is governed by the BSD 3-clause license, which can be found in the [LICENSE.txt] file in the project root.
-
-[target languages]: https://github.com/antlr/antlr4/tree/master/runtime
-[LICENSE.txt]: https://github.com/antlr/antlr4/blob/master/LICENSE.txt
-[ANTLR docs]: https://github.com/antlr/antlr4/blob/master/doc/index.md
-[new repo]: https://github.com/antlr4-go/antlr
-[Jim Idle]: https://github.com/jimidle
-[Go runtime docs]: https://github.com/antlr/antlr4/blob/master/doc/go-target.md
-*/
-package antlr
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn.go
deleted file mode 100644
index cdeefed2..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn.go
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "sync"
-
-// ATNInvalidAltNumber is used to represent an ALT number that has yet to be calculated or
-// which is invalid for a particular struct such as [*antlr.BaseRuleContext]
-var ATNInvalidAltNumber int
-
-// ATN represents an “[Augmented Transition Network]”, though general in ANTLR the term
-// “Augmented Recursive Transition Network” though there are some descriptions of “[Recursive Transition Network]”
-// in existence.
-//
-// ATNs represent the main networks in the system and are serialized by the code generator and support [ALL(*)].
-//
-// [Augmented Transition Network]: https://en.wikipedia.org/wiki/Augmented_transition_network
-// [ALL(*)]: https://www.antlr.org/papers/allstar-techreport.pdf
-// [Recursive Transition Network]: https://en.wikipedia.org/wiki/Recursive_transition_network
-type ATN struct {
-
- // DecisionToState is the decision points for all rules, sub-rules, optional
- // blocks, ()+, ()*, etc. Each sub-rule/rule is a decision point, and we must track them, so we
- // can go back later and build DFA predictors for them. This includes
- // all the rules, sub-rules, optional blocks, ()+, ()* etc...
- DecisionToState []DecisionState
-
- // grammarType is the ATN type and is used for deserializing ATNs from strings.
- grammarType int
-
- // lexerActions is referenced by action transitions in the ATN for lexer ATNs.
- lexerActions []LexerAction
-
- // maxTokenType is the maximum value for any symbol recognized by a transition in the ATN.
- maxTokenType int
-
- modeNameToStartState map[string]*TokensStartState
-
- modeToStartState []*TokensStartState
-
- // ruleToStartState maps from rule index to starting state number.
- ruleToStartState []*RuleStartState
-
- // ruleToStopState maps from rule index to stop state number.
- ruleToStopState []*RuleStopState
-
- // ruleToTokenType maps the rule index to the resulting token type for lexer
- // ATNs. For parser ATNs, it maps the rule index to the generated bypass token
- // type if ATNDeserializationOptions.isGenerateRuleBypassTransitions was
- // specified, and otherwise is nil.
- ruleToTokenType []int
-
- // ATNStates is a list of all states in the ATN, ordered by state number.
- //
- states []ATNState
-
- mu sync.Mutex
- stateMu sync.RWMutex
- edgeMu sync.RWMutex
-}
-
-// NewATN returns a new ATN struct representing the given grammarType and is used
-// for runtime deserialization of ATNs from the code generated by the ANTLR tool
-func NewATN(grammarType int, maxTokenType int) *ATN {
- return &ATN{
- grammarType: grammarType,
- maxTokenType: maxTokenType,
- modeNameToStartState: make(map[string]*TokensStartState),
- }
-}
-
-// NextTokensInContext computes and returns the set of valid tokens that can occur starting
-// in state s. If ctx is nil, the set of tokens will not include what can follow
-// the rule surrounding s. In other words, the set will be restricted to tokens
-// reachable staying within the rule of s.
-func (a *ATN) NextTokensInContext(s ATNState, ctx RuleContext) *IntervalSet {
- return NewLL1Analyzer(a).Look(s, nil, ctx)
-}
-
-// NextTokensNoContext computes and returns the set of valid tokens that can occur starting
-// in state s and staying in same rule. [antlr.Token.EPSILON] is in set if we reach end of
-// rule.
-func (a *ATN) NextTokensNoContext(s ATNState) *IntervalSet {
- a.mu.Lock()
- defer a.mu.Unlock()
- iset := s.GetNextTokenWithinRule()
- if iset == nil {
- iset = a.NextTokensInContext(s, nil)
- iset.readOnly = true
- s.SetNextTokenWithinRule(iset)
- }
- return iset
-}
-
-// NextTokens computes and returns the set of valid tokens starting in state s, by
-// calling either [NextTokensNoContext] (ctx == nil) or [NextTokensInContext] (ctx != nil).
-func (a *ATN) NextTokens(s ATNState, ctx RuleContext) *IntervalSet {
- if ctx == nil {
- return a.NextTokensNoContext(s)
- }
-
- return a.NextTokensInContext(s, ctx)
-}
-
-func (a *ATN) addState(state ATNState) {
- if state != nil {
- state.SetATN(a)
- state.SetStateNumber(len(a.states))
- }
-
- a.states = append(a.states, state)
-}
-
-func (a *ATN) removeState(state ATNState) {
- a.states[state.GetStateNumber()] = nil // Just free the memory; don't shift states in the slice
-}
-
-func (a *ATN) defineDecisionState(s DecisionState) int {
- a.DecisionToState = append(a.DecisionToState, s)
- s.setDecision(len(a.DecisionToState) - 1)
-
- return s.getDecision()
-}
-
-func (a *ATN) getDecisionState(decision int) DecisionState {
- if len(a.DecisionToState) == 0 {
- return nil
- }
-
- return a.DecisionToState[decision]
-}
-
-// getExpectedTokens computes the set of input symbols which could follow ATN
-// state number stateNumber in the specified full parse context ctx and returns
-// the set of potentially valid input symbols which could follow the specified
-// state in the specified context. This method considers the complete parser
-// context, but does not evaluate semantic predicates (i.e. all predicates
-// encountered during the calculation are assumed true). If a path in the ATN
-// exists from the starting state to the RuleStopState of the outermost context
-// without Matching any symbols, Token.EOF is added to the returned set.
-//
-// A nil ctx defaults to ParserRuleContext.EMPTY.
-//
-// It panics if the ATN does not contain state stateNumber.
-func (a *ATN) getExpectedTokens(stateNumber int, ctx RuleContext) *IntervalSet {
- if stateNumber < 0 || stateNumber >= len(a.states) {
- panic("Invalid state number.")
- }
-
- s := a.states[stateNumber]
- following := a.NextTokens(s, nil)
-
- if !following.contains(TokenEpsilon) {
- return following
- }
-
- expected := NewIntervalSet()
-
- expected.addSet(following)
- expected.removeOne(TokenEpsilon)
-
- for ctx != nil && ctx.GetInvokingState() >= 0 && following.contains(TokenEpsilon) {
- invokingState := a.states[ctx.GetInvokingState()]
- rt := invokingState.GetTransitions()[0]
-
- following = a.NextTokens(rt.(*RuleTransition).followState, nil)
- expected.addSet(following)
- expected.removeOne(TokenEpsilon)
- ctx = ctx.GetParent().(RuleContext)
- }
-
- if following.contains(TokenEpsilon) {
- expected.addOne(TokenEOF)
- }
-
- return expected
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config.go
deleted file mode 100644
index a83f25d3..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config.go
+++ /dev/null
@@ -1,335 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
-)
-
-const (
- lexerConfig = iota // Indicates that this ATNConfig is for a lexer
- parserConfig // Indicates that this ATNConfig is for a parser
-)
-
-// ATNConfig is a tuple: (ATN state, predicted alt, syntactic, semantic
-// context). The syntactic context is a graph-structured stack node whose
-// path(s) to the root is the rule invocation(s) chain used to arrive in the
-// state. The semantic context is the tree of semantic predicates encountered
-// before reaching an ATN state.
-type ATNConfig struct {
- precedenceFilterSuppressed bool
- state ATNState
- alt int
- context *PredictionContext
- semanticContext SemanticContext
- reachesIntoOuterContext int
- cType int // lexerConfig or parserConfig
- lexerActionExecutor *LexerActionExecutor
- passedThroughNonGreedyDecision bool
-}
-
-// NewATNConfig6 creates a new ATNConfig instance given a state, alt and context only
-func NewATNConfig6(state ATNState, alt int, context *PredictionContext) *ATNConfig {
- return NewATNConfig5(state, alt, context, SemanticContextNone)
-}
-
-// NewATNConfig5 creates a new ATNConfig instance given a state, alt, context and semantic context
-func NewATNConfig5(state ATNState, alt int, context *PredictionContext, semanticContext SemanticContext) *ATNConfig {
- if semanticContext == nil {
- panic("semanticContext cannot be nil") // TODO: Necessary?
- }
-
- pac := &ATNConfig{}
- pac.state = state
- pac.alt = alt
- pac.context = context
- pac.semanticContext = semanticContext
- pac.cType = parserConfig
- return pac
-}
-
-// NewATNConfig4 creates a new ATNConfig instance given an existing config, and a state only
-func NewATNConfig4(c *ATNConfig, state ATNState) *ATNConfig {
- return NewATNConfig(c, state, c.GetContext(), c.GetSemanticContext())
-}
-
-// NewATNConfig3 creates a new ATNConfig instance given an existing config, a state and a semantic context
-func NewATNConfig3(c *ATNConfig, state ATNState, semanticContext SemanticContext) *ATNConfig {
- return NewATNConfig(c, state, c.GetContext(), semanticContext)
-}
-
-// NewATNConfig2 creates a new ATNConfig instance given an existing config, and a context only
-func NewATNConfig2(c *ATNConfig, semanticContext SemanticContext) *ATNConfig {
- return NewATNConfig(c, c.GetState(), c.GetContext(), semanticContext)
-}
-
-// NewATNConfig1 creates a new ATNConfig instance given an existing config, a state, and a context only
-func NewATNConfig1(c *ATNConfig, state ATNState, context *PredictionContext) *ATNConfig {
- return NewATNConfig(c, state, context, c.GetSemanticContext())
-}
-
-// NewATNConfig creates a new ATNConfig instance given an existing config, a state, a context and a semantic context, other 'constructors'
-// are just wrappers around this one.
-func NewATNConfig(c *ATNConfig, state ATNState, context *PredictionContext, semanticContext SemanticContext) *ATNConfig {
- if semanticContext == nil {
- panic("semanticContext cannot be nil") // TODO: Remove this - probably put here for some bug that is now fixed
- }
- b := &ATNConfig{}
- b.InitATNConfig(c, state, c.GetAlt(), context, semanticContext)
- b.cType = parserConfig
- return b
-}
-
-func (a *ATNConfig) InitATNConfig(c *ATNConfig, state ATNState, alt int, context *PredictionContext, semanticContext SemanticContext) {
-
- a.state = state
- a.alt = alt
- a.context = context
- a.semanticContext = semanticContext
- a.reachesIntoOuterContext = c.GetReachesIntoOuterContext()
- a.precedenceFilterSuppressed = c.getPrecedenceFilterSuppressed()
-}
-
-func (a *ATNConfig) getPrecedenceFilterSuppressed() bool {
- return a.precedenceFilterSuppressed
-}
-
-func (a *ATNConfig) setPrecedenceFilterSuppressed(v bool) {
- a.precedenceFilterSuppressed = v
-}
-
-// GetState returns the ATN state associated with this configuration
-func (a *ATNConfig) GetState() ATNState {
- return a.state
-}
-
-// GetAlt returns the alternative associated with this configuration
-func (a *ATNConfig) GetAlt() int {
- return a.alt
-}
-
-// SetContext sets the rule invocation stack associated with this configuration
-func (a *ATNConfig) SetContext(v *PredictionContext) {
- a.context = v
-}
-
-// GetContext returns the rule invocation stack associated with this configuration
-func (a *ATNConfig) GetContext() *PredictionContext {
- return a.context
-}
-
-// GetSemanticContext returns the semantic context associated with this configuration
-func (a *ATNConfig) GetSemanticContext() SemanticContext {
- return a.semanticContext
-}
-
-// GetReachesIntoOuterContext returns the count of references to an outer context from this configuration
-func (a *ATNConfig) GetReachesIntoOuterContext() int {
- return a.reachesIntoOuterContext
-}
-
-// SetReachesIntoOuterContext sets the count of references to an outer context from this configuration
-func (a *ATNConfig) SetReachesIntoOuterContext(v int) {
- a.reachesIntoOuterContext = v
-}
-
-// Equals is the default comparison function for an ATNConfig when no specialist implementation is required
-// for a collection.
-//
-// An ATN configuration is equal to another if both have the same state, they
-// predict the same alternative, and syntactic/semantic contexts are the same.
-func (a *ATNConfig) Equals(o Collectable[*ATNConfig]) bool {
- switch a.cType {
- case lexerConfig:
- return a.LEquals(o)
- case parserConfig:
- return a.PEquals(o)
- default:
- panic("Invalid ATNConfig type")
- }
-}
-
-// PEquals is the default comparison function for a Parser ATNConfig when no specialist implementation is required
-// for a collection.
-//
-// An ATN configuration is equal to another if both have the same state, they
-// predict the same alternative, and syntactic/semantic contexts are the same.
-func (a *ATNConfig) PEquals(o Collectable[*ATNConfig]) bool {
- var other, ok = o.(*ATNConfig)
-
- if !ok {
- return false
- }
- if a == other {
- return true
- } else if other == nil {
- return false
- }
-
- var equal bool
-
- if a.context == nil {
- equal = other.context == nil
- } else {
- equal = a.context.Equals(other.context)
- }
-
- var (
- nums = a.state.GetStateNumber() == other.state.GetStateNumber()
- alts = a.alt == other.alt
- cons = a.semanticContext.Equals(other.semanticContext)
- sups = a.precedenceFilterSuppressed == other.precedenceFilterSuppressed
- )
-
- return nums && alts && cons && sups && equal
-}
-
-// Hash is the default hash function for a parser ATNConfig, when no specialist hash function
-// is required for a collection
-func (a *ATNConfig) Hash() int {
- switch a.cType {
- case lexerConfig:
- return a.LHash()
- case parserConfig:
- return a.PHash()
- default:
- panic("Invalid ATNConfig type")
- }
-}
-
-// PHash is the default hash function for a parser ATNConfig, when no specialist hash function
-// is required for a collection
-func (a *ATNConfig) PHash() int {
- var c int
- if a.context != nil {
- c = a.context.Hash()
- }
-
- h := murmurInit(7)
- h = murmurUpdate(h, a.state.GetStateNumber())
- h = murmurUpdate(h, a.alt)
- h = murmurUpdate(h, c)
- h = murmurUpdate(h, a.semanticContext.Hash())
- return murmurFinish(h, 4)
-}
-
-// String returns a string representation of the ATNConfig, usually used for debugging purposes
-func (a *ATNConfig) String() string {
- var s1, s2, s3 string
-
- if a.context != nil {
- s1 = ",[" + fmt.Sprint(a.context) + "]"
- }
-
- if a.semanticContext != SemanticContextNone {
- s2 = "," + fmt.Sprint(a.semanticContext)
- }
-
- if a.reachesIntoOuterContext > 0 {
- s3 = ",up=" + fmt.Sprint(a.reachesIntoOuterContext)
- }
-
- return fmt.Sprintf("(%v,%v%v%v%v)", a.state, a.alt, s1, s2, s3)
-}
-
-func NewLexerATNConfig6(state ATNState, alt int, context *PredictionContext) *ATNConfig {
- lac := &ATNConfig{}
- lac.state = state
- lac.alt = alt
- lac.context = context
- lac.semanticContext = SemanticContextNone
- lac.cType = lexerConfig
- return lac
-}
-
-func NewLexerATNConfig4(c *ATNConfig, state ATNState) *ATNConfig {
- lac := &ATNConfig{}
- lac.lexerActionExecutor = c.lexerActionExecutor
- lac.passedThroughNonGreedyDecision = checkNonGreedyDecision(c, state)
- lac.InitATNConfig(c, state, c.GetAlt(), c.GetContext(), c.GetSemanticContext())
- lac.cType = lexerConfig
- return lac
-}
-
-func NewLexerATNConfig3(c *ATNConfig, state ATNState, lexerActionExecutor *LexerActionExecutor) *ATNConfig {
- lac := &ATNConfig{}
- lac.lexerActionExecutor = lexerActionExecutor
- lac.passedThroughNonGreedyDecision = checkNonGreedyDecision(c, state)
- lac.InitATNConfig(c, state, c.GetAlt(), c.GetContext(), c.GetSemanticContext())
- lac.cType = lexerConfig
- return lac
-}
-
-func NewLexerATNConfig2(c *ATNConfig, state ATNState, context *PredictionContext) *ATNConfig {
- lac := &ATNConfig{}
- lac.lexerActionExecutor = c.lexerActionExecutor
- lac.passedThroughNonGreedyDecision = checkNonGreedyDecision(c, state)
- lac.InitATNConfig(c, state, c.GetAlt(), context, c.GetSemanticContext())
- lac.cType = lexerConfig
- return lac
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewLexerATNConfig1(state ATNState, alt int, context *PredictionContext) *ATNConfig {
- lac := &ATNConfig{}
- lac.state = state
- lac.alt = alt
- lac.context = context
- lac.semanticContext = SemanticContextNone
- lac.cType = lexerConfig
- return lac
-}
-
-// LHash is the default hash function for Lexer ATNConfig objects, it can be used directly or via
-// the default comparator [ObjEqComparator].
-func (a *ATNConfig) LHash() int {
- var f int
- if a.passedThroughNonGreedyDecision {
- f = 1
- } else {
- f = 0
- }
- h := murmurInit(7)
- h = murmurUpdate(h, a.state.GetStateNumber())
- h = murmurUpdate(h, a.alt)
- h = murmurUpdate(h, a.context.Hash())
- h = murmurUpdate(h, a.semanticContext.Hash())
- h = murmurUpdate(h, f)
- h = murmurUpdate(h, a.lexerActionExecutor.Hash())
- h = murmurFinish(h, 6)
- return h
-}
-
-// LEquals is the default comparison function for Lexer ATNConfig objects, it can be used directly or via
-// the default comparator [ObjEqComparator].
-func (a *ATNConfig) LEquals(other Collectable[*ATNConfig]) bool {
- var otherT, ok = other.(*ATNConfig)
- if !ok {
- return false
- } else if a == otherT {
- return true
- } else if a.passedThroughNonGreedyDecision != otherT.passedThroughNonGreedyDecision {
- return false
- }
-
- switch {
- case a.lexerActionExecutor == nil && otherT.lexerActionExecutor == nil:
- return true
- case a.lexerActionExecutor != nil && otherT.lexerActionExecutor != nil:
- if !a.lexerActionExecutor.Equals(otherT.lexerActionExecutor) {
- return false
- }
- default:
- return false // One but not both, are nil
- }
-
- return a.PEquals(otherT)
-}
-
-func checkNonGreedyDecision(source *ATNConfig, target ATNState) bool {
- var ds, ok = target.(DecisionState)
-
- return source.passedThroughNonGreedyDecision || (ok && ds.getNonGreedy())
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config_set.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config_set.go
deleted file mode 100644
index 52dbaf80..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_config_set.go
+++ /dev/null
@@ -1,301 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
-)
-
-// ATNConfigSet is a specialized set of ATNConfig that tracks information
-// about its elements and can combine similar configurations using a
-// graph-structured stack.
-type ATNConfigSet struct {
- cachedHash int
-
- // configLookup is used to determine whether two ATNConfigSets are equal. We
- // need all configurations with the same (s, i, _, semctx) to be equal. A key
- // effectively doubles the number of objects associated with ATNConfigs. All
- // keys are hashed by (s, i, _, pi), not including the context. Wiped out when
- // read-only because a set becomes a DFA state.
- configLookup *JStore[*ATNConfig, Comparator[*ATNConfig]]
-
- // configs is the added elements that did not match an existing key in configLookup
- configs []*ATNConfig
-
- // TODO: These fields make me pretty uncomfortable, but it is nice to pack up
- // info together because it saves re-computation. Can we track conflicts as they
- // are added to save scanning configs later?
- conflictingAlts *BitSet
-
- // dipsIntoOuterContext is used by parsers and lexers. In a lexer, it indicates
- // we hit a pred while computing a closure operation. Do not make a DFA state
- // from the ATNConfigSet in this case. TODO: How is this used by parsers?
- dipsIntoOuterContext bool
-
- // fullCtx is whether it is part of a full context LL prediction. Used to
- // determine how to merge $. It is a wildcard with SLL, but not for an LL
- // context merge.
- fullCtx bool
-
- // Used in parser and lexer. In lexer, it indicates we hit a pred
- // while computing a closure operation. Don't make a DFA state from this set.
- hasSemanticContext bool
-
- // readOnly is whether it is read-only. Do not
- // allow any code to manipulate the set if true because DFA states will point at
- // sets and those must not change. It not, protect other fields; conflictingAlts
- // in particular, which is assigned after readOnly.
- readOnly bool
-
- // TODO: These fields make me pretty uncomfortable, but it is nice to pack up
- // info together because it saves re-computation. Can we track conflicts as they
- // are added to save scanning configs later?
- uniqueAlt int
-}
-
-// Alts returns the combined set of alts for all the configurations in this set.
-func (b *ATNConfigSet) Alts() *BitSet {
- alts := NewBitSet()
- for _, it := range b.configs {
- alts.add(it.GetAlt())
- }
- return alts
-}
-
-// NewATNConfigSet creates a new ATNConfigSet instance.
-func NewATNConfigSet(fullCtx bool) *ATNConfigSet {
- return &ATNConfigSet{
- cachedHash: -1,
- configLookup: NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfCompInst, ATNConfigLookupCollection, "NewATNConfigSet()"),
- fullCtx: fullCtx,
- }
-}
-
-// Add merges contexts with existing configs for (s, i, pi, _),
-// where 's' is the ATNConfig.state, 'i' is the ATNConfig.alt, and
-// 'pi' is the [ATNConfig].semanticContext.
-//
-// We use (s,i,pi) as the key.
-// Updates dipsIntoOuterContext and hasSemanticContext when necessary.
-func (b *ATNConfigSet) Add(config *ATNConfig, mergeCache *JPCMap) bool {
- if b.readOnly {
- panic("set is read-only")
- }
-
- if config.GetSemanticContext() != SemanticContextNone {
- b.hasSemanticContext = true
- }
-
- if config.GetReachesIntoOuterContext() > 0 {
- b.dipsIntoOuterContext = true
- }
-
- existing, present := b.configLookup.Put(config)
-
- // The config was not already in the set
- //
- if !present {
- b.cachedHash = -1
- b.configs = append(b.configs, config) // Track order here
- return true
- }
-
- // Merge a previous (s, i, pi, _) with it and save the result
- rootIsWildcard := !b.fullCtx
- merged := merge(existing.GetContext(), config.GetContext(), rootIsWildcard, mergeCache)
-
- // No need to check for existing.context because config.context is in the cache,
- // since the only way to create new graphs is the "call rule" and here. We cache
- // at both places.
- existing.SetReachesIntoOuterContext(intMax(existing.GetReachesIntoOuterContext(), config.GetReachesIntoOuterContext()))
-
- // Preserve the precedence filter suppression during the merge
- if config.getPrecedenceFilterSuppressed() {
- existing.setPrecedenceFilterSuppressed(true)
- }
-
- // Replace the context because there is no need to do alt mapping
- existing.SetContext(merged)
-
- return true
-}
-
-// GetStates returns the set of states represented by all configurations in this config set
-func (b *ATNConfigSet) GetStates() *JStore[ATNState, Comparator[ATNState]] {
-
- // states uses the standard comparator and Hash() provided by the ATNState instance
- //
- states := NewJStore[ATNState, Comparator[ATNState]](aStateEqInst, ATNStateCollection, "ATNConfigSet.GetStates()")
-
- for i := 0; i < len(b.configs); i++ {
- states.Put(b.configs[i].GetState())
- }
-
- return states
-}
-
-func (b *ATNConfigSet) GetPredicates() []SemanticContext {
- predicates := make([]SemanticContext, 0)
-
- for i := 0; i < len(b.configs); i++ {
- c := b.configs[i].GetSemanticContext()
-
- if c != SemanticContextNone {
- predicates = append(predicates, c)
- }
- }
-
- return predicates
-}
-
-func (b *ATNConfigSet) OptimizeConfigs(interpreter *BaseATNSimulator) {
- if b.readOnly {
- panic("set is read-only")
- }
-
- // Empty indicate no optimization is possible
- if b.configLookup == nil || b.configLookup.Len() == 0 {
- return
- }
-
- for i := 0; i < len(b.configs); i++ {
- config := b.configs[i]
- config.SetContext(interpreter.getCachedContext(config.GetContext()))
- }
-}
-
-func (b *ATNConfigSet) AddAll(coll []*ATNConfig) bool {
- for i := 0; i < len(coll); i++ {
- b.Add(coll[i], nil)
- }
-
- return false
-}
-
-// Compare The configs are only equal if they are in the same order and their Equals function returns true.
-// Java uses ArrayList.equals(), which requires the same order.
-func (b *ATNConfigSet) Compare(bs *ATNConfigSet) bool {
- if len(b.configs) != len(bs.configs) {
- return false
- }
- for i := 0; i < len(b.configs); i++ {
- if !b.configs[i].Equals(bs.configs[i]) {
- return false
- }
- }
-
- return true
-}
-
-func (b *ATNConfigSet) Equals(other Collectable[ATNConfig]) bool {
- if b == other {
- return true
- } else if _, ok := other.(*ATNConfigSet); !ok {
- return false
- }
-
- other2 := other.(*ATNConfigSet)
- var eca bool
- switch {
- case b.conflictingAlts == nil && other2.conflictingAlts == nil:
- eca = true
- case b.conflictingAlts != nil && other2.conflictingAlts != nil:
- eca = b.conflictingAlts.equals(other2.conflictingAlts)
- }
- return b.configs != nil &&
- b.fullCtx == other2.fullCtx &&
- b.uniqueAlt == other2.uniqueAlt &&
- eca &&
- b.hasSemanticContext == other2.hasSemanticContext &&
- b.dipsIntoOuterContext == other2.dipsIntoOuterContext &&
- b.Compare(other2)
-}
-
-func (b *ATNConfigSet) Hash() int {
- if b.readOnly {
- if b.cachedHash == -1 {
- b.cachedHash = b.hashCodeConfigs()
- }
-
- return b.cachedHash
- }
-
- return b.hashCodeConfigs()
-}
-
-func (b *ATNConfigSet) hashCodeConfigs() int {
- h := 1
- for _, config := range b.configs {
- h = 31*h + config.Hash()
- }
- return h
-}
-
-func (b *ATNConfigSet) Contains(item *ATNConfig) bool {
- if b.readOnly {
- panic("not implemented for read-only sets")
- }
- if b.configLookup == nil {
- return false
- }
- return b.configLookup.Contains(item)
-}
-
-func (b *ATNConfigSet) ContainsFast(item *ATNConfig) bool {
- return b.Contains(item)
-}
-
-func (b *ATNConfigSet) Clear() {
- if b.readOnly {
- panic("set is read-only")
- }
- b.configs = make([]*ATNConfig, 0)
- b.cachedHash = -1
- b.configLookup = NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfCompInst, ATNConfigLookupCollection, "NewATNConfigSet()")
-}
-
-func (b *ATNConfigSet) String() string {
-
- s := "["
-
- for i, c := range b.configs {
- s += c.String()
-
- if i != len(b.configs)-1 {
- s += ", "
- }
- }
-
- s += "]"
-
- if b.hasSemanticContext {
- s += ",hasSemanticContext=" + fmt.Sprint(b.hasSemanticContext)
- }
-
- if b.uniqueAlt != ATNInvalidAltNumber {
- s += ",uniqueAlt=" + fmt.Sprint(b.uniqueAlt)
- }
-
- if b.conflictingAlts != nil {
- s += ",conflictingAlts=" + b.conflictingAlts.String()
- }
-
- if b.dipsIntoOuterContext {
- s += ",dipsIntoOuterContext"
- }
-
- return s
-}
-
-// NewOrderedATNConfigSet creates a config set with a slightly different Hash/Equal pair
-// for use in lexers.
-func NewOrderedATNConfigSet() *ATNConfigSet {
- return &ATNConfigSet{
- cachedHash: -1,
- // This set uses the standard Hash() and Equals() from ATNConfig
- configLookup: NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfEqInst, ATNConfigCollection, "ATNConfigSet.NewOrderedATNConfigSet()"),
- fullCtx: false,
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserialization_options.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserialization_options.go
deleted file mode 100644
index bdb30b36..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserialization_options.go
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "errors"
-
-var defaultATNDeserializationOptions = ATNDeserializationOptions{true, true, false}
-
-type ATNDeserializationOptions struct {
- readOnly bool
- verifyATN bool
- generateRuleBypassTransitions bool
-}
-
-func (opts *ATNDeserializationOptions) ReadOnly() bool {
- return opts.readOnly
-}
-
-func (opts *ATNDeserializationOptions) SetReadOnly(readOnly bool) {
- if opts.readOnly {
- panic(errors.New("cannot mutate read only ATNDeserializationOptions"))
- }
- opts.readOnly = readOnly
-}
-
-func (opts *ATNDeserializationOptions) VerifyATN() bool {
- return opts.verifyATN
-}
-
-func (opts *ATNDeserializationOptions) SetVerifyATN(verifyATN bool) {
- if opts.readOnly {
- panic(errors.New("cannot mutate read only ATNDeserializationOptions"))
- }
- opts.verifyATN = verifyATN
-}
-
-func (opts *ATNDeserializationOptions) GenerateRuleBypassTransitions() bool {
- return opts.generateRuleBypassTransitions
-}
-
-func (opts *ATNDeserializationOptions) SetGenerateRuleBypassTransitions(generateRuleBypassTransitions bool) {
- if opts.readOnly {
- panic(errors.New("cannot mutate read only ATNDeserializationOptions"))
- }
- opts.generateRuleBypassTransitions = generateRuleBypassTransitions
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func DefaultATNDeserializationOptions() *ATNDeserializationOptions {
- return NewATNDeserializationOptions(&defaultATNDeserializationOptions)
-}
-
-func NewATNDeserializationOptions(other *ATNDeserializationOptions) *ATNDeserializationOptions {
- o := new(ATNDeserializationOptions)
- if other != nil {
- *o = *other
- o.readOnly = false
- }
- return o
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserializer.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserializer.go
deleted file mode 100644
index 2dcb9ae1..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_deserializer.go
+++ /dev/null
@@ -1,684 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
-)
-
-const serializedVersion = 4
-
-type loopEndStateIntPair struct {
- item0 *LoopEndState
- item1 int
-}
-
-type blockStartStateIntPair struct {
- item0 BlockStartState
- item1 int
-}
-
-type ATNDeserializer struct {
- options *ATNDeserializationOptions
- data []int32
- pos int
-}
-
-func NewATNDeserializer(options *ATNDeserializationOptions) *ATNDeserializer {
- if options == nil {
- options = &defaultATNDeserializationOptions
- }
-
- return &ATNDeserializer{options: options}
-}
-
-//goland:noinspection GoUnusedFunction
-func stringInSlice(a string, list []string) int {
- for i, b := range list {
- if b == a {
- return i
- }
- }
-
- return -1
-}
-
-func (a *ATNDeserializer) Deserialize(data []int32) *ATN {
- a.data = data
- a.pos = 0
- a.checkVersion()
-
- atn := a.readATN()
-
- a.readStates(atn)
- a.readRules(atn)
- a.readModes(atn)
-
- sets := a.readSets(atn, nil)
-
- a.readEdges(atn, sets)
- a.readDecisions(atn)
- a.readLexerActions(atn)
- a.markPrecedenceDecisions(atn)
- a.verifyATN(atn)
-
- if a.options.GenerateRuleBypassTransitions() && atn.grammarType == ATNTypeParser {
- a.generateRuleBypassTransitions(atn)
- // Re-verify after modification
- a.verifyATN(atn)
- }
-
- return atn
-
-}
-
-func (a *ATNDeserializer) checkVersion() {
- version := a.readInt()
-
- if version != serializedVersion {
- panic("Could not deserialize ATN with version " + strconv.Itoa(version) + " (expected " + strconv.Itoa(serializedVersion) + ").")
- }
-}
-
-func (a *ATNDeserializer) readATN() *ATN {
- grammarType := a.readInt()
- maxTokenType := a.readInt()
-
- return NewATN(grammarType, maxTokenType)
-}
-
-func (a *ATNDeserializer) readStates(atn *ATN) {
- nstates := a.readInt()
-
- // Allocate worst case size.
- loopBackStateNumbers := make([]loopEndStateIntPair, 0, nstates)
- endStateNumbers := make([]blockStartStateIntPair, 0, nstates)
-
- // Preallocate states slice.
- atn.states = make([]ATNState, 0, nstates)
-
- for i := 0; i < nstates; i++ {
- stype := a.readInt()
-
- // Ignore bad types of states
- if stype == ATNStateInvalidType {
- atn.addState(nil)
- continue
- }
-
- ruleIndex := a.readInt()
-
- s := a.stateFactory(stype, ruleIndex)
-
- if stype == ATNStateLoopEnd {
- loopBackStateNumber := a.readInt()
-
- loopBackStateNumbers = append(loopBackStateNumbers, loopEndStateIntPair{s.(*LoopEndState), loopBackStateNumber})
- } else if s2, ok := s.(BlockStartState); ok {
- endStateNumber := a.readInt()
-
- endStateNumbers = append(endStateNumbers, blockStartStateIntPair{s2, endStateNumber})
- }
-
- atn.addState(s)
- }
-
- // Delay the assignment of loop back and end states until we know all the state
- // instances have been initialized
- for _, pair := range loopBackStateNumbers {
- pair.item0.loopBackState = atn.states[pair.item1]
- }
-
- for _, pair := range endStateNumbers {
- pair.item0.setEndState(atn.states[pair.item1].(*BlockEndState))
- }
-
- numNonGreedyStates := a.readInt()
- for j := 0; j < numNonGreedyStates; j++ {
- stateNumber := a.readInt()
-
- atn.states[stateNumber].(DecisionState).setNonGreedy(true)
- }
-
- numPrecedenceStates := a.readInt()
- for j := 0; j < numPrecedenceStates; j++ {
- stateNumber := a.readInt()
-
- atn.states[stateNumber].(*RuleStartState).isPrecedenceRule = true
- }
-}
-
-func (a *ATNDeserializer) readRules(atn *ATN) {
- nrules := a.readInt()
-
- if atn.grammarType == ATNTypeLexer {
- atn.ruleToTokenType = make([]int, nrules)
- }
-
- atn.ruleToStartState = make([]*RuleStartState, nrules)
-
- for i := range atn.ruleToStartState {
- s := a.readInt()
- startState := atn.states[s].(*RuleStartState)
-
- atn.ruleToStartState[i] = startState
-
- if atn.grammarType == ATNTypeLexer {
- tokenType := a.readInt()
-
- atn.ruleToTokenType[i] = tokenType
- }
- }
-
- atn.ruleToStopState = make([]*RuleStopState, nrules)
-
- for _, state := range atn.states {
- if s2, ok := state.(*RuleStopState); ok {
- atn.ruleToStopState[s2.ruleIndex] = s2
- atn.ruleToStartState[s2.ruleIndex].stopState = s2
- }
- }
-}
-
-func (a *ATNDeserializer) readModes(atn *ATN) {
- nmodes := a.readInt()
- atn.modeToStartState = make([]*TokensStartState, nmodes)
-
- for i := range atn.modeToStartState {
- s := a.readInt()
-
- atn.modeToStartState[i] = atn.states[s].(*TokensStartState)
- }
-}
-
-func (a *ATNDeserializer) readSets(_ *ATN, sets []*IntervalSet) []*IntervalSet {
- m := a.readInt()
-
- // Preallocate the needed capacity.
- if cap(sets)-len(sets) < m {
- isets := make([]*IntervalSet, len(sets), len(sets)+m)
- copy(isets, sets)
- sets = isets
- }
-
- for i := 0; i < m; i++ {
- iset := NewIntervalSet()
-
- sets = append(sets, iset)
-
- n := a.readInt()
- containsEOF := a.readInt()
-
- if containsEOF != 0 {
- iset.addOne(-1)
- }
-
- for j := 0; j < n; j++ {
- i1 := a.readInt()
- i2 := a.readInt()
-
- iset.addRange(i1, i2)
- }
- }
-
- return sets
-}
-
-func (a *ATNDeserializer) readEdges(atn *ATN, sets []*IntervalSet) {
- nedges := a.readInt()
-
- for i := 0; i < nedges; i++ {
- var (
- src = a.readInt()
- trg = a.readInt()
- ttype = a.readInt()
- arg1 = a.readInt()
- arg2 = a.readInt()
- arg3 = a.readInt()
- trans = a.edgeFactory(atn, ttype, src, trg, arg1, arg2, arg3, sets)
- srcState = atn.states[src]
- )
-
- srcState.AddTransition(trans, -1)
- }
-
- // Edges for rule stop states can be derived, so they are not serialized
- for _, state := range atn.states {
- for _, t := range state.GetTransitions() {
- var rt, ok = t.(*RuleTransition)
-
- if !ok {
- continue
- }
-
- outermostPrecedenceReturn := -1
-
- if atn.ruleToStartState[rt.getTarget().GetRuleIndex()].isPrecedenceRule {
- if rt.precedence == 0 {
- outermostPrecedenceReturn = rt.getTarget().GetRuleIndex()
- }
- }
-
- trans := NewEpsilonTransition(rt.followState, outermostPrecedenceReturn)
-
- atn.ruleToStopState[rt.getTarget().GetRuleIndex()].AddTransition(trans, -1)
- }
- }
-
- for _, state := range atn.states {
- if s2, ok := state.(BlockStartState); ok {
- // We need to know the end state to set its start state
- if s2.getEndState() == nil {
- panic("IllegalState")
- }
-
- // Block end states can only be associated to a single block start state
- if s2.getEndState().startState != nil {
- panic("IllegalState")
- }
-
- s2.getEndState().startState = state
- }
-
- if s2, ok := state.(*PlusLoopbackState); ok {
- for _, t := range s2.GetTransitions() {
- if t2, ok := t.getTarget().(*PlusBlockStartState); ok {
- t2.loopBackState = state
- }
- }
- } else if s2, ok := state.(*StarLoopbackState); ok {
- for _, t := range s2.GetTransitions() {
- if t2, ok := t.getTarget().(*StarLoopEntryState); ok {
- t2.loopBackState = state
- }
- }
- }
- }
-}
-
-func (a *ATNDeserializer) readDecisions(atn *ATN) {
- ndecisions := a.readInt()
-
- for i := 0; i < ndecisions; i++ {
- s := a.readInt()
- decState := atn.states[s].(DecisionState)
-
- atn.DecisionToState = append(atn.DecisionToState, decState)
- decState.setDecision(i)
- }
-}
-
-func (a *ATNDeserializer) readLexerActions(atn *ATN) {
- if atn.grammarType == ATNTypeLexer {
- count := a.readInt()
-
- atn.lexerActions = make([]LexerAction, count)
-
- for i := range atn.lexerActions {
- actionType := a.readInt()
- data1 := a.readInt()
- data2 := a.readInt()
- atn.lexerActions[i] = a.lexerActionFactory(actionType, data1, data2)
- }
- }
-}
-
-func (a *ATNDeserializer) generateRuleBypassTransitions(atn *ATN) {
- count := len(atn.ruleToStartState)
-
- for i := 0; i < count; i++ {
- atn.ruleToTokenType[i] = atn.maxTokenType + i + 1
- }
-
- for i := 0; i < count; i++ {
- a.generateRuleBypassTransition(atn, i)
- }
-}
-
-func (a *ATNDeserializer) generateRuleBypassTransition(atn *ATN, idx int) {
- bypassStart := NewBasicBlockStartState()
-
- bypassStart.ruleIndex = idx
- atn.addState(bypassStart)
-
- bypassStop := NewBlockEndState()
-
- bypassStop.ruleIndex = idx
- atn.addState(bypassStop)
-
- bypassStart.endState = bypassStop
-
- atn.defineDecisionState(&bypassStart.BaseDecisionState)
-
- bypassStop.startState = bypassStart
-
- var excludeTransition Transition
- var endState ATNState
-
- if atn.ruleToStartState[idx].isPrecedenceRule {
- // Wrap from the beginning of the rule to the StarLoopEntryState
- endState = nil
-
- for i := 0; i < len(atn.states); i++ {
- state := atn.states[i]
-
- if a.stateIsEndStateFor(state, idx) != nil {
- endState = state
- excludeTransition = state.(*StarLoopEntryState).loopBackState.GetTransitions()[0]
-
- break
- }
- }
-
- if excludeTransition == nil {
- panic("Couldn't identify final state of the precedence rule prefix section.")
- }
- } else {
- endState = atn.ruleToStopState[idx]
- }
-
- // All non-excluded transitions that currently target end state need to target
- // blockEnd instead
- for i := 0; i < len(atn.states); i++ {
- state := atn.states[i]
-
- for j := 0; j < len(state.GetTransitions()); j++ {
- transition := state.GetTransitions()[j]
-
- if transition == excludeTransition {
- continue
- }
-
- if transition.getTarget() == endState {
- transition.setTarget(bypassStop)
- }
- }
- }
-
- // All transitions leaving the rule start state need to leave blockStart instead
- ruleToStartState := atn.ruleToStartState[idx]
- count := len(ruleToStartState.GetTransitions())
-
- for count > 0 {
- bypassStart.AddTransition(ruleToStartState.GetTransitions()[count-1], -1)
- ruleToStartState.SetTransitions([]Transition{ruleToStartState.GetTransitions()[len(ruleToStartState.GetTransitions())-1]})
- }
-
- // Link the new states
- atn.ruleToStartState[idx].AddTransition(NewEpsilonTransition(bypassStart, -1), -1)
- bypassStop.AddTransition(NewEpsilonTransition(endState, -1), -1)
-
- MatchState := NewBasicState()
-
- atn.addState(MatchState)
- MatchState.AddTransition(NewAtomTransition(bypassStop, atn.ruleToTokenType[idx]), -1)
- bypassStart.AddTransition(NewEpsilonTransition(MatchState, -1), -1)
-}
-
-func (a *ATNDeserializer) stateIsEndStateFor(state ATNState, idx int) ATNState {
- if state.GetRuleIndex() != idx {
- return nil
- }
-
- if _, ok := state.(*StarLoopEntryState); !ok {
- return nil
- }
-
- maybeLoopEndState := state.GetTransitions()[len(state.GetTransitions())-1].getTarget()
-
- if _, ok := maybeLoopEndState.(*LoopEndState); !ok {
- return nil
- }
-
- var _, ok = maybeLoopEndState.GetTransitions()[0].getTarget().(*RuleStopState)
-
- if maybeLoopEndState.(*LoopEndState).epsilonOnlyTransitions && ok {
- return state
- }
-
- return nil
-}
-
-// markPrecedenceDecisions analyzes the StarLoopEntryState states in the
-// specified ATN to set the StarLoopEntryState.precedenceRuleDecision field to
-// the correct value.
-func (a *ATNDeserializer) markPrecedenceDecisions(atn *ATN) {
- for _, state := range atn.states {
- if _, ok := state.(*StarLoopEntryState); !ok {
- continue
- }
-
- // We analyze the [ATN] to determine if an ATN decision state is the
- // decision for the closure block that determines whether a
- // precedence rule should continue or complete.
- if atn.ruleToStartState[state.GetRuleIndex()].isPrecedenceRule {
- maybeLoopEndState := state.GetTransitions()[len(state.GetTransitions())-1].getTarget()
-
- if s3, ok := maybeLoopEndState.(*LoopEndState); ok {
- var _, ok2 = maybeLoopEndState.GetTransitions()[0].getTarget().(*RuleStopState)
-
- if s3.epsilonOnlyTransitions && ok2 {
- state.(*StarLoopEntryState).precedenceRuleDecision = true
- }
- }
- }
- }
-}
-
-func (a *ATNDeserializer) verifyATN(atn *ATN) {
- if !a.options.VerifyATN() {
- return
- }
-
- // Verify assumptions
- for _, state := range atn.states {
- if state == nil {
- continue
- }
-
- a.checkCondition(state.GetEpsilonOnlyTransitions() || len(state.GetTransitions()) <= 1, "")
-
- switch s2 := state.(type) {
- case *PlusBlockStartState:
- a.checkCondition(s2.loopBackState != nil, "")
-
- case *StarLoopEntryState:
- a.checkCondition(s2.loopBackState != nil, "")
- a.checkCondition(len(s2.GetTransitions()) == 2, "")
-
- switch s2.transitions[0].getTarget().(type) {
- case *StarBlockStartState:
- _, ok := s2.transitions[1].getTarget().(*LoopEndState)
-
- a.checkCondition(ok, "")
- a.checkCondition(!s2.nonGreedy, "")
-
- case *LoopEndState:
- var _, ok = s2.transitions[1].getTarget().(*StarBlockStartState)
-
- a.checkCondition(ok, "")
- a.checkCondition(s2.nonGreedy, "")
-
- default:
- panic("IllegalState")
- }
-
- case *StarLoopbackState:
- a.checkCondition(len(state.GetTransitions()) == 1, "")
-
- var _, ok = state.GetTransitions()[0].getTarget().(*StarLoopEntryState)
-
- a.checkCondition(ok, "")
-
- case *LoopEndState:
- a.checkCondition(s2.loopBackState != nil, "")
-
- case *RuleStartState:
- a.checkCondition(s2.stopState != nil, "")
-
- case BlockStartState:
- a.checkCondition(s2.getEndState() != nil, "")
-
- case *BlockEndState:
- a.checkCondition(s2.startState != nil, "")
-
- case DecisionState:
- a.checkCondition(len(s2.GetTransitions()) <= 1 || s2.getDecision() >= 0, "")
-
- default:
- var _, ok = s2.(*RuleStopState)
-
- a.checkCondition(len(s2.GetTransitions()) <= 1 || ok, "")
- }
- }
-}
-
-func (a *ATNDeserializer) checkCondition(condition bool, message string) {
- if !condition {
- if message == "" {
- message = "IllegalState"
- }
-
- panic(message)
- }
-}
-
-func (a *ATNDeserializer) readInt() int {
- v := a.data[a.pos]
-
- a.pos++
-
- return int(v) // data is 32 bits but int is at least that big
-}
-
-func (a *ATNDeserializer) edgeFactory(atn *ATN, typeIndex, _, trg, arg1, arg2, arg3 int, sets []*IntervalSet) Transition {
- target := atn.states[trg]
-
- switch typeIndex {
- case TransitionEPSILON:
- return NewEpsilonTransition(target, -1)
-
- case TransitionRANGE:
- if arg3 != 0 {
- return NewRangeTransition(target, TokenEOF, arg2)
- }
-
- return NewRangeTransition(target, arg1, arg2)
-
- case TransitionRULE:
- return NewRuleTransition(atn.states[arg1], arg2, arg3, target)
-
- case TransitionPREDICATE:
- return NewPredicateTransition(target, arg1, arg2, arg3 != 0)
-
- case TransitionPRECEDENCE:
- return NewPrecedencePredicateTransition(target, arg1)
-
- case TransitionATOM:
- if arg3 != 0 {
- return NewAtomTransition(target, TokenEOF)
- }
-
- return NewAtomTransition(target, arg1)
-
- case TransitionACTION:
- return NewActionTransition(target, arg1, arg2, arg3 != 0)
-
- case TransitionSET:
- return NewSetTransition(target, sets[arg1])
-
- case TransitionNOTSET:
- return NewNotSetTransition(target, sets[arg1])
-
- case TransitionWILDCARD:
- return NewWildcardTransition(target)
- }
-
- panic("The specified transition type is not valid.")
-}
-
-func (a *ATNDeserializer) stateFactory(typeIndex, ruleIndex int) ATNState {
- var s ATNState
-
- switch typeIndex {
- case ATNStateInvalidType:
- return nil
-
- case ATNStateBasic:
- s = NewBasicState()
-
- case ATNStateRuleStart:
- s = NewRuleStartState()
-
- case ATNStateBlockStart:
- s = NewBasicBlockStartState()
-
- case ATNStatePlusBlockStart:
- s = NewPlusBlockStartState()
-
- case ATNStateStarBlockStart:
- s = NewStarBlockStartState()
-
- case ATNStateTokenStart:
- s = NewTokensStartState()
-
- case ATNStateRuleStop:
- s = NewRuleStopState()
-
- case ATNStateBlockEnd:
- s = NewBlockEndState()
-
- case ATNStateStarLoopBack:
- s = NewStarLoopbackState()
-
- case ATNStateStarLoopEntry:
- s = NewStarLoopEntryState()
-
- case ATNStatePlusLoopBack:
- s = NewPlusLoopbackState()
-
- case ATNStateLoopEnd:
- s = NewLoopEndState()
-
- default:
- panic(fmt.Sprintf("state type %d is invalid", typeIndex))
- }
-
- s.SetRuleIndex(ruleIndex)
-
- return s
-}
-
-func (a *ATNDeserializer) lexerActionFactory(typeIndex, data1, data2 int) LexerAction {
- switch typeIndex {
- case LexerActionTypeChannel:
- return NewLexerChannelAction(data1)
-
- case LexerActionTypeCustom:
- return NewLexerCustomAction(data1, data2)
-
- case LexerActionTypeMode:
- return NewLexerModeAction(data1)
-
- case LexerActionTypeMore:
- return LexerMoreActionINSTANCE
-
- case LexerActionTypePopMode:
- return LexerPopModeActionINSTANCE
-
- case LexerActionTypePushMode:
- return NewLexerPushModeAction(data1)
-
- case LexerActionTypeSkip:
- return LexerSkipActionINSTANCE
-
- case LexerActionTypeType:
- return NewLexerTypeAction(data1)
-
- default:
- panic(fmt.Sprintf("lexer action %d is invalid", typeIndex))
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_simulator.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_simulator.go
deleted file mode 100644
index afe6c9f8..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_simulator.go
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-var ATNSimulatorError = NewDFAState(0x7FFFFFFF, NewATNConfigSet(false))
-
-type IATNSimulator interface {
- SharedContextCache() *PredictionContextCache
- ATN() *ATN
- DecisionToDFA() []*DFA
-}
-
-type BaseATNSimulator struct {
- atn *ATN
- sharedContextCache *PredictionContextCache
- decisionToDFA []*DFA
-}
-
-func (b *BaseATNSimulator) getCachedContext(context *PredictionContext) *PredictionContext {
- if b.sharedContextCache == nil {
- return context
- }
-
- //visited := NewJMap[*PredictionContext, *PredictionContext, Comparator[*PredictionContext]](pContextEqInst, PredictionVisitedCollection, "Visit map in getCachedContext()")
- visited := NewVisitRecord()
- return getCachedBasePredictionContext(context, b.sharedContextCache, visited)
-}
-
-func (b *BaseATNSimulator) SharedContextCache() *PredictionContextCache {
- return b.sharedContextCache
-}
-
-func (b *BaseATNSimulator) ATN() *ATN {
- return b.atn
-}
-
-func (b *BaseATNSimulator) DecisionToDFA() []*DFA {
- return b.decisionToDFA
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_state.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_state.go
deleted file mode 100644
index 2ae5807c..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_state.go
+++ /dev/null
@@ -1,461 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "os"
- "strconv"
-)
-
-// Constants for serialization.
-const (
- ATNStateInvalidType = 0
- ATNStateBasic = 1
- ATNStateRuleStart = 2
- ATNStateBlockStart = 3
- ATNStatePlusBlockStart = 4
- ATNStateStarBlockStart = 5
- ATNStateTokenStart = 6
- ATNStateRuleStop = 7
- ATNStateBlockEnd = 8
- ATNStateStarLoopBack = 9
- ATNStateStarLoopEntry = 10
- ATNStatePlusLoopBack = 11
- ATNStateLoopEnd = 12
-
- ATNStateInvalidStateNumber = -1
-)
-
-//goland:noinspection GoUnusedGlobalVariable
-var ATNStateInitialNumTransitions = 4
-
-type ATNState interface {
- GetEpsilonOnlyTransitions() bool
-
- GetRuleIndex() int
- SetRuleIndex(int)
-
- GetNextTokenWithinRule() *IntervalSet
- SetNextTokenWithinRule(*IntervalSet)
-
- GetATN() *ATN
- SetATN(*ATN)
-
- GetStateType() int
-
- GetStateNumber() int
- SetStateNumber(int)
-
- GetTransitions() []Transition
- SetTransitions([]Transition)
- AddTransition(Transition, int)
-
- String() string
- Hash() int
- Equals(Collectable[ATNState]) bool
-}
-
-type BaseATNState struct {
- // NextTokenWithinRule caches lookahead during parsing. Not used during construction.
- NextTokenWithinRule *IntervalSet
-
- // atn is the current ATN.
- atn *ATN
-
- epsilonOnlyTransitions bool
-
- // ruleIndex tracks the Rule index because there are no Rule objects at runtime.
- ruleIndex int
-
- stateNumber int
-
- stateType int
-
- // Track the transitions emanating from this ATN state.
- transitions []Transition
-}
-
-func NewATNState() *BaseATNState {
- return &BaseATNState{stateNumber: ATNStateInvalidStateNumber, stateType: ATNStateInvalidType}
-}
-
-func (as *BaseATNState) GetRuleIndex() int {
- return as.ruleIndex
-}
-
-func (as *BaseATNState) SetRuleIndex(v int) {
- as.ruleIndex = v
-}
-func (as *BaseATNState) GetEpsilonOnlyTransitions() bool {
- return as.epsilonOnlyTransitions
-}
-
-func (as *BaseATNState) GetATN() *ATN {
- return as.atn
-}
-
-func (as *BaseATNState) SetATN(atn *ATN) {
- as.atn = atn
-}
-
-func (as *BaseATNState) GetTransitions() []Transition {
- return as.transitions
-}
-
-func (as *BaseATNState) SetTransitions(t []Transition) {
- as.transitions = t
-}
-
-func (as *BaseATNState) GetStateType() int {
- return as.stateType
-}
-
-func (as *BaseATNState) GetStateNumber() int {
- return as.stateNumber
-}
-
-func (as *BaseATNState) SetStateNumber(stateNumber int) {
- as.stateNumber = stateNumber
-}
-
-func (as *BaseATNState) GetNextTokenWithinRule() *IntervalSet {
- return as.NextTokenWithinRule
-}
-
-func (as *BaseATNState) SetNextTokenWithinRule(v *IntervalSet) {
- as.NextTokenWithinRule = v
-}
-
-func (as *BaseATNState) Hash() int {
- return as.stateNumber
-}
-
-func (as *BaseATNState) String() string {
- return strconv.Itoa(as.stateNumber)
-}
-
-func (as *BaseATNState) Equals(other Collectable[ATNState]) bool {
- if ot, ok := other.(ATNState); ok {
- return as.stateNumber == ot.GetStateNumber()
- }
-
- return false
-}
-
-func (as *BaseATNState) isNonGreedyExitState() bool {
- return false
-}
-
-func (as *BaseATNState) AddTransition(trans Transition, index int) {
- if len(as.transitions) == 0 {
- as.epsilonOnlyTransitions = trans.getIsEpsilon()
- } else if as.epsilonOnlyTransitions != trans.getIsEpsilon() {
- _, _ = fmt.Fprintf(os.Stdin, "ATN state %d has both epsilon and non-epsilon transitions.\n", as.stateNumber)
- as.epsilonOnlyTransitions = false
- }
-
- // TODO: Check code for already present compared to the Java equivalent
- //alreadyPresent := false
- //for _, t := range as.transitions {
- // if t.getTarget().GetStateNumber() == trans.getTarget().GetStateNumber() {
- // if t.getLabel() != nil && trans.getLabel() != nil && trans.getLabel().Equals(t.getLabel()) {
- // alreadyPresent = true
- // break
- // }
- // } else if t.getIsEpsilon() && trans.getIsEpsilon() {
- // alreadyPresent = true
- // break
- // }
- //}
- //if !alreadyPresent {
- if index == -1 {
- as.transitions = append(as.transitions, trans)
- } else {
- as.transitions = append(as.transitions[:index], append([]Transition{trans}, as.transitions[index:]...)...)
- // TODO: as.transitions.splice(index, 1, trans)
- }
- //} else {
- // _, _ = fmt.Fprintf(os.Stderr, "Transition already present in state %d\n", as.stateNumber)
- //}
-}
-
-type BasicState struct {
- BaseATNState
-}
-
-func NewBasicState() *BasicState {
- return &BasicState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateBasic,
- },
- }
-}
-
-type DecisionState interface {
- ATNState
-
- getDecision() int
- setDecision(int)
-
- getNonGreedy() bool
- setNonGreedy(bool)
-}
-
-type BaseDecisionState struct {
- BaseATNState
- decision int
- nonGreedy bool
-}
-
-func NewBaseDecisionState() *BaseDecisionState {
- return &BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateBasic,
- },
- decision: -1,
- }
-}
-
-func (s *BaseDecisionState) getDecision() int {
- return s.decision
-}
-
-func (s *BaseDecisionState) setDecision(b int) {
- s.decision = b
-}
-
-func (s *BaseDecisionState) getNonGreedy() bool {
- return s.nonGreedy
-}
-
-func (s *BaseDecisionState) setNonGreedy(b bool) {
- s.nonGreedy = b
-}
-
-type BlockStartState interface {
- DecisionState
-
- getEndState() *BlockEndState
- setEndState(*BlockEndState)
-}
-
-// BaseBlockStartState is the start of a regular (...) block.
-type BaseBlockStartState struct {
- BaseDecisionState
- endState *BlockEndState
-}
-
-func NewBlockStartState() *BaseBlockStartState {
- return &BaseBlockStartState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateBasic,
- },
- decision: -1,
- },
- }
-}
-
-func (s *BaseBlockStartState) getEndState() *BlockEndState {
- return s.endState
-}
-
-func (s *BaseBlockStartState) setEndState(b *BlockEndState) {
- s.endState = b
-}
-
-type BasicBlockStartState struct {
- BaseBlockStartState
-}
-
-func NewBasicBlockStartState() *BasicBlockStartState {
- return &BasicBlockStartState{
- BaseBlockStartState: BaseBlockStartState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateBlockStart,
- },
- },
- },
- }
-}
-
-var _ BlockStartState = &BasicBlockStartState{}
-
-// BlockEndState is a terminal node of a simple (a|b|c) block.
-type BlockEndState struct {
- BaseATNState
- startState ATNState
-}
-
-func NewBlockEndState() *BlockEndState {
- return &BlockEndState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateBlockEnd,
- },
- startState: nil,
- }
-}
-
-// RuleStopState is the last node in the ATN for a rule, unless that rule is the
-// start symbol. In that case, there is one transition to EOF. Later, we might
-// encode references to all calls to this rule to compute FOLLOW sets for error
-// handling.
-type RuleStopState struct {
- BaseATNState
-}
-
-func NewRuleStopState() *RuleStopState {
- return &RuleStopState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateRuleStop,
- },
- }
-}
-
-type RuleStartState struct {
- BaseATNState
- stopState ATNState
- isPrecedenceRule bool
-}
-
-func NewRuleStartState() *RuleStartState {
- return &RuleStartState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateRuleStart,
- },
- }
-}
-
-// PlusLoopbackState is a decision state for A+ and (A|B)+. It has two
-// transitions: one to the loop back to start of the block, and one to exit.
-type PlusLoopbackState struct {
- BaseDecisionState
-}
-
-func NewPlusLoopbackState() *PlusLoopbackState {
- return &PlusLoopbackState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStatePlusLoopBack,
- },
- },
- }
-}
-
-// PlusBlockStartState is the start of a (A|B|...)+ loop. Technically it is a
-// decision state; we don't use it for code generation. Somebody might need it,
-// it is included for completeness. In reality, PlusLoopbackState is the real
-// decision-making node for A+.
-type PlusBlockStartState struct {
- BaseBlockStartState
- loopBackState ATNState
-}
-
-func NewPlusBlockStartState() *PlusBlockStartState {
- return &PlusBlockStartState{
- BaseBlockStartState: BaseBlockStartState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStatePlusBlockStart,
- },
- },
- },
- }
-}
-
-var _ BlockStartState = &PlusBlockStartState{}
-
-// StarBlockStartState is the block that begins a closure loop.
-type StarBlockStartState struct {
- BaseBlockStartState
-}
-
-func NewStarBlockStartState() *StarBlockStartState {
- return &StarBlockStartState{
- BaseBlockStartState: BaseBlockStartState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateStarBlockStart,
- },
- },
- },
- }
-}
-
-var _ BlockStartState = &StarBlockStartState{}
-
-type StarLoopbackState struct {
- BaseATNState
-}
-
-func NewStarLoopbackState() *StarLoopbackState {
- return &StarLoopbackState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateStarLoopBack,
- },
- }
-}
-
-type StarLoopEntryState struct {
- BaseDecisionState
- loopBackState ATNState
- precedenceRuleDecision bool
-}
-
-func NewStarLoopEntryState() *StarLoopEntryState {
- // False precedenceRuleDecision indicates whether s state can benefit from a precedence DFA during SLL decision making.
- return &StarLoopEntryState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateStarLoopEntry,
- },
- },
- }
-}
-
-// LoopEndState marks the end of a * or + loop.
-type LoopEndState struct {
- BaseATNState
- loopBackState ATNState
-}
-
-func NewLoopEndState() *LoopEndState {
- return &LoopEndState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateLoopEnd,
- },
- }
-}
-
-// TokensStartState is the Tokens rule start state linking to each lexer rule start state.
-type TokensStartState struct {
- BaseDecisionState
-}
-
-func NewTokensStartState() *TokensStartState {
- return &TokensStartState{
- BaseDecisionState: BaseDecisionState{
- BaseATNState: BaseATNState{
- stateNumber: ATNStateInvalidStateNumber,
- stateType: ATNStateTokenStart,
- },
- },
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_type.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_type.go
deleted file mode 100644
index 3a515a14..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/atn_type.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// Represent the type of recognizer an ATN applies to.
-const (
- ATNTypeLexer = 0
- ATNTypeParser = 1
-)
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/char_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/char_stream.go
deleted file mode 100644
index bd8127b6..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/char_stream.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-type CharStream interface {
- IntStream
- GetText(int, int) string
- GetTextFromTokens(start, end Token) string
- GetTextFromInterval(Interval) string
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_factory.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_factory.go
deleted file mode 100644
index 1bb0314e..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_factory.go
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// TokenFactory creates CommonToken objects.
-type TokenFactory interface {
- Create(source *TokenSourceCharStreamPair, ttype int, text string, channel, start, stop, line, column int) Token
-}
-
-// CommonTokenFactory is the default TokenFactory implementation.
-type CommonTokenFactory struct {
- // copyText indicates whether CommonToken.setText should be called after
- // constructing tokens to explicitly set the text. This is useful for cases
- // where the input stream might not be able to provide arbitrary substrings of
- // text from the input after the lexer creates a token (e.g. the
- // implementation of CharStream.GetText in UnbufferedCharStream panics an
- // UnsupportedOperationException). Explicitly setting the token text allows
- // Token.GetText to be called at any time regardless of the input stream
- // implementation.
- //
- // The default value is false to avoid the performance and memory overhead of
- // copying text for every token unless explicitly requested.
- copyText bool
-}
-
-func NewCommonTokenFactory(copyText bool) *CommonTokenFactory {
- return &CommonTokenFactory{copyText: copyText}
-}
-
-// CommonTokenFactoryDEFAULT is the default CommonTokenFactory. It does not
-// explicitly copy token text when constructing tokens.
-var CommonTokenFactoryDEFAULT = NewCommonTokenFactory(false)
-
-func (c *CommonTokenFactory) Create(source *TokenSourceCharStreamPair, ttype int, text string, channel, start, stop, line, column int) Token {
- t := NewCommonToken(source, ttype, channel, start, stop)
-
- t.line = line
- t.column = column
-
- if text != "" {
- t.SetText(text)
- } else if c.copyText && source.charStream != nil {
- t.SetText(source.charStream.GetTextFromInterval(NewInterval(start, stop)))
- }
-
- return t
-}
-
-func (c *CommonTokenFactory) createThin(ttype int, text string) Token {
- t := NewCommonToken(nil, ttype, TokenDefaultChannel, -1, -1)
- t.SetText(text)
-
- return t
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_stream.go
deleted file mode 100644
index b75da9df..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/common_token_stream.go
+++ /dev/null
@@ -1,450 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "strconv"
-)
-
-// CommonTokenStream is an implementation of TokenStream that loads tokens from
-// a TokenSource on-demand and places the tokens in a buffer to provide access
-// to any previous token by index. This token stream ignores the value of
-// Token.getChannel. If your parser requires the token stream filter tokens to
-// only those on a particular channel, such as Token.DEFAULT_CHANNEL or
-// Token.HIDDEN_CHANNEL, use a filtering token stream such a CommonTokenStream.
-type CommonTokenStream struct {
- channel int
-
- // fetchedEOF indicates whether the Token.EOF token has been fetched from
- // tokenSource and added to tokens. This field improves performance for the
- // following cases:
- //
- // consume: The lookahead check in consume to preven consuming the EOF symbol is
- // optimized by checking the values of fetchedEOF and p instead of calling LA.
- //
- // fetch: The check to prevent adding multiple EOF symbols into tokens is
- // trivial with bt field.
- fetchedEOF bool
-
- // index into [tokens] of the current token (next token to consume).
- // tokens[p] should be LT(1). It is set to -1 when the stream is first
- // constructed or when SetTokenSource is called, indicating that the first token
- // has not yet been fetched from the token source. For additional information,
- // see the documentation of [IntStream] for a description of initializing methods.
- index int
-
- // tokenSource is the [TokenSource] from which tokens for the bt stream are
- // fetched.
- tokenSource TokenSource
-
- // tokens contains all tokens fetched from the token source. The list is considered a
- // complete view of the input once fetchedEOF is set to true.
- tokens []Token
-}
-
-// NewCommonTokenStream creates a new CommonTokenStream instance using the supplied lexer to produce
-// tokens and will pull tokens from the given lexer channel.
-func NewCommonTokenStream(lexer Lexer, channel int) *CommonTokenStream {
- return &CommonTokenStream{
- channel: channel,
- index: -1,
- tokenSource: lexer,
- tokens: make([]Token, 0),
- }
-}
-
-// GetAllTokens returns all tokens currently pulled from the token source.
-func (c *CommonTokenStream) GetAllTokens() []Token {
- return c.tokens
-}
-
-func (c *CommonTokenStream) Mark() int {
- return 0
-}
-
-func (c *CommonTokenStream) Release(_ int) {}
-
-func (c *CommonTokenStream) Reset() {
- c.fetchedEOF = false
- c.tokens = make([]Token, 0)
- c.Seek(0)
-}
-
-func (c *CommonTokenStream) Seek(index int) {
- c.lazyInit()
- c.index = c.adjustSeekIndex(index)
-}
-
-func (c *CommonTokenStream) Get(index int) Token {
- c.lazyInit()
-
- return c.tokens[index]
-}
-
-func (c *CommonTokenStream) Consume() {
- SkipEOFCheck := false
-
- if c.index >= 0 {
- if c.fetchedEOF {
- // The last token in tokens is EOF. Skip the check if p indexes any fetched.
- // token except the last.
- SkipEOFCheck = c.index < len(c.tokens)-1
- } else {
- // No EOF token in tokens. Skip the check if p indexes a fetched token.
- SkipEOFCheck = c.index < len(c.tokens)
- }
- } else {
- // Not yet initialized
- SkipEOFCheck = false
- }
-
- if !SkipEOFCheck && c.LA(1) == TokenEOF {
- panic("cannot consume EOF")
- }
-
- if c.Sync(c.index + 1) {
- c.index = c.adjustSeekIndex(c.index + 1)
- }
-}
-
-// Sync makes sure index i in tokens has a token and returns true if a token is
-// located at index i and otherwise false.
-func (c *CommonTokenStream) Sync(i int) bool {
- n := i - len(c.tokens) + 1 // How many more elements do we need?
-
- if n > 0 {
- fetched := c.fetch(n)
- return fetched >= n
- }
-
- return true
-}
-
-// fetch adds n elements to buffer and returns the actual number of elements
-// added to the buffer.
-func (c *CommonTokenStream) fetch(n int) int {
- if c.fetchedEOF {
- return 0
- }
-
- for i := 0; i < n; i++ {
- t := c.tokenSource.NextToken()
-
- t.SetTokenIndex(len(c.tokens))
- c.tokens = append(c.tokens, t)
-
- if t.GetTokenType() == TokenEOF {
- c.fetchedEOF = true
-
- return i + 1
- }
- }
-
- return n
-}
-
-// GetTokens gets all tokens from start to stop inclusive.
-func (c *CommonTokenStream) GetTokens(start int, stop int, types *IntervalSet) []Token {
- if start < 0 || stop < 0 {
- return nil
- }
-
- c.lazyInit()
-
- subset := make([]Token, 0)
-
- if stop >= len(c.tokens) {
- stop = len(c.tokens) - 1
- }
-
- for i := start; i < stop; i++ {
- t := c.tokens[i]
-
- if t.GetTokenType() == TokenEOF {
- break
- }
-
- if types == nil || types.contains(t.GetTokenType()) {
- subset = append(subset, t)
- }
- }
-
- return subset
-}
-
-func (c *CommonTokenStream) LA(i int) int {
- return c.LT(i).GetTokenType()
-}
-
-func (c *CommonTokenStream) lazyInit() {
- if c.index == -1 {
- c.setup()
- }
-}
-
-func (c *CommonTokenStream) setup() {
- c.Sync(0)
- c.index = c.adjustSeekIndex(0)
-}
-
-func (c *CommonTokenStream) GetTokenSource() TokenSource {
- return c.tokenSource
-}
-
-// SetTokenSource resets the c token stream by setting its token source.
-func (c *CommonTokenStream) SetTokenSource(tokenSource TokenSource) {
- c.tokenSource = tokenSource
- c.tokens = make([]Token, 0)
- c.index = -1
- c.fetchedEOF = false
-}
-
-// NextTokenOnChannel returns the index of the next token on channel given a
-// starting index. Returns i if tokens[i] is on channel. Returns -1 if there are
-// no tokens on channel between 'i' and [TokenEOF].
-func (c *CommonTokenStream) NextTokenOnChannel(i, _ int) int {
- c.Sync(i)
-
- if i >= len(c.tokens) {
- return -1
- }
-
- token := c.tokens[i]
-
- for token.GetChannel() != c.channel {
- if token.GetTokenType() == TokenEOF {
- return -1
- }
-
- i++
- c.Sync(i)
- token = c.tokens[i]
- }
-
- return i
-}
-
-// previousTokenOnChannel returns the index of the previous token on channel
-// given a starting index. Returns i if tokens[i] is on channel. Returns -1 if
-// there are no tokens on channel between i and 0.
-func (c *CommonTokenStream) previousTokenOnChannel(i, channel int) int {
- for i >= 0 && c.tokens[i].GetChannel() != channel {
- i--
- }
-
- return i
-}
-
-// GetHiddenTokensToRight collects all tokens on a specified channel to the
-// right of the current token up until we see a token on DEFAULT_TOKEN_CHANNEL
-// or EOF. If channel is -1, it finds any non-default channel token.
-func (c *CommonTokenStream) GetHiddenTokensToRight(tokenIndex, channel int) []Token {
- c.lazyInit()
-
- if tokenIndex < 0 || tokenIndex >= len(c.tokens) {
- panic(strconv.Itoa(tokenIndex) + " not in 0.." + strconv.Itoa(len(c.tokens)-1))
- }
-
- nextOnChannel := c.NextTokenOnChannel(tokenIndex+1, LexerDefaultTokenChannel)
- from := tokenIndex + 1
-
- // If no onChannel to the right, then nextOnChannel == -1, so set 'to' to the last token
- var to int
-
- if nextOnChannel == -1 {
- to = len(c.tokens) - 1
- } else {
- to = nextOnChannel
- }
-
- return c.filterForChannel(from, to, channel)
-}
-
-// GetHiddenTokensToLeft collects all tokens on channel to the left of the
-// current token until we see a token on DEFAULT_TOKEN_CHANNEL. If channel is
-// -1, it finds any non default channel token.
-func (c *CommonTokenStream) GetHiddenTokensToLeft(tokenIndex, channel int) []Token {
- c.lazyInit()
-
- if tokenIndex < 0 || tokenIndex >= len(c.tokens) {
- panic(strconv.Itoa(tokenIndex) + " not in 0.." + strconv.Itoa(len(c.tokens)-1))
- }
-
- prevOnChannel := c.previousTokenOnChannel(tokenIndex-1, LexerDefaultTokenChannel)
-
- if prevOnChannel == tokenIndex-1 {
- return nil
- }
-
- // If there are none on channel to the left and prevOnChannel == -1 then from = 0
- from := prevOnChannel + 1
- to := tokenIndex - 1
-
- return c.filterForChannel(from, to, channel)
-}
-
-func (c *CommonTokenStream) filterForChannel(left, right, channel int) []Token {
- hidden := make([]Token, 0)
-
- for i := left; i < right+1; i++ {
- t := c.tokens[i]
-
- if channel == -1 {
- if t.GetChannel() != LexerDefaultTokenChannel {
- hidden = append(hidden, t)
- }
- } else if t.GetChannel() == channel {
- hidden = append(hidden, t)
- }
- }
-
- if len(hidden) == 0 {
- return nil
- }
-
- return hidden
-}
-
-func (c *CommonTokenStream) GetSourceName() string {
- return c.tokenSource.GetSourceName()
-}
-
-func (c *CommonTokenStream) Size() int {
- return len(c.tokens)
-}
-
-func (c *CommonTokenStream) Index() int {
- return c.index
-}
-
-func (c *CommonTokenStream) GetAllText() string {
- c.Fill()
- return c.GetTextFromInterval(NewInterval(0, len(c.tokens)-1))
-}
-
-func (c *CommonTokenStream) GetTextFromTokens(start, end Token) string {
- if start == nil || end == nil {
- return ""
- }
-
- return c.GetTextFromInterval(NewInterval(start.GetTokenIndex(), end.GetTokenIndex()))
-}
-
-func (c *CommonTokenStream) GetTextFromRuleContext(interval RuleContext) string {
- return c.GetTextFromInterval(interval.GetSourceInterval())
-}
-
-func (c *CommonTokenStream) GetTextFromInterval(interval Interval) string {
- c.lazyInit()
- c.Sync(interval.Stop)
-
- start := interval.Start
- stop := interval.Stop
-
- if start < 0 || stop < 0 {
- return ""
- }
-
- if stop >= len(c.tokens) {
- stop = len(c.tokens) - 1
- }
-
- s := ""
-
- for i := start; i < stop+1; i++ {
- t := c.tokens[i]
-
- if t.GetTokenType() == TokenEOF {
- break
- }
-
- s += t.GetText()
- }
-
- return s
-}
-
-// Fill gets all tokens from the lexer until EOF.
-func (c *CommonTokenStream) Fill() {
- c.lazyInit()
-
- for c.fetch(1000) == 1000 {
- continue
- }
-}
-
-func (c *CommonTokenStream) adjustSeekIndex(i int) int {
- return c.NextTokenOnChannel(i, c.channel)
-}
-
-func (c *CommonTokenStream) LB(k int) Token {
- if k == 0 || c.index-k < 0 {
- return nil
- }
-
- i := c.index
- n := 1
-
- // Find k good tokens looking backward
- for n <= k {
- // Skip off-channel tokens
- i = c.previousTokenOnChannel(i-1, c.channel)
- n++
- }
-
- if i < 0 {
- return nil
- }
-
- return c.tokens[i]
-}
-
-func (c *CommonTokenStream) LT(k int) Token {
- c.lazyInit()
-
- if k == 0 {
- return nil
- }
-
- if k < 0 {
- return c.LB(-k)
- }
-
- i := c.index
- n := 1 // We know tokens[n] is valid
-
- // Find k good tokens
- for n < k {
- // Skip off-channel tokens, but make sure to not look past EOF
- if c.Sync(i + 1) {
- i = c.NextTokenOnChannel(i+1, c.channel)
- }
-
- n++
- }
-
- return c.tokens[i]
-}
-
-// getNumberOfOnChannelTokens counts EOF once.
-func (c *CommonTokenStream) getNumberOfOnChannelTokens() int {
- var n int
-
- c.Fill()
-
- for i := 0; i < len(c.tokens); i++ {
- t := c.tokens[i]
-
- if t.GetChannel() == c.channel {
- n++
- }
-
- if t.GetTokenType() == TokenEOF {
- break
- }
- }
-
- return n
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/comparators.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/comparators.go
deleted file mode 100644
index 7467e9b4..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/comparators.go
+++ /dev/null
@@ -1,150 +0,0 @@
-package antlr
-
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-// This file contains all the implementations of custom comparators used for generic collections when the
-// Hash() and Equals() funcs supplied by the struct objects themselves need to be overridden. Normally, we would
-// put the comparators in the source file for the struct themselves, but given the organization of this code is
-// sorta kinda based upon the Java code, I found it confusing trying to find out which comparator was where and used by
-// which instantiation of a collection. For instance, an Array2DHashSet in the Java source, when used with ATNConfig
-// collections requires three different comparators depending on what the collection is being used for. Collecting - pun intended -
-// all the comparators here, makes it much easier to see which implementation of hash and equals is used by which collection.
-// It also makes it easy to verify that the Hash() and Equals() functions marry up with the Java implementations.
-
-// ObjEqComparator is the equivalent of the Java ObjectEqualityComparator, which is the default instance of
-// Equality comparator. We do not have inheritance in Go, only interfaces, so we use generics to enforce some
-// type safety and avoid having to implement this for every type that we want to perform comparison on.
-//
-// This comparator works by using the standard Hash() and Equals() methods of the type T that is being compared. Which
-// allows us to use it in any collection instance that does not require a special hash or equals implementation.
-type ObjEqComparator[T Collectable[T]] struct{}
-
-var (
- aStateEqInst = &ObjEqComparator[ATNState]{}
- aConfEqInst = &ObjEqComparator[*ATNConfig]{}
-
- // aConfCompInst is the comparator used for the ATNConfigSet for the configLookup cache
- aConfCompInst = &ATNConfigComparator[*ATNConfig]{}
- atnConfCompInst = &BaseATNConfigComparator[*ATNConfig]{}
- dfaStateEqInst = &ObjEqComparator[*DFAState]{}
- semctxEqInst = &ObjEqComparator[SemanticContext]{}
- atnAltCfgEqInst = &ATNAltConfigComparator[*ATNConfig]{}
- pContextEqInst = &ObjEqComparator[*PredictionContext]{}
-)
-
-// Equals2 delegates to the Equals() method of type T
-func (c *ObjEqComparator[T]) Equals2(o1, o2 T) bool {
- return o1.Equals(o2)
-}
-
-// Hash1 delegates to the Hash() method of type T
-func (c *ObjEqComparator[T]) Hash1(o T) int {
-
- return o.Hash()
-}
-
-type SemCComparator[T Collectable[T]] struct{}
-
-// ATNConfigComparator is used as the comparator for the configLookup field of an ATNConfigSet
-// and has a custom Equals() and Hash() implementation, because equality is not based on the
-// standard Hash() and Equals() methods of the ATNConfig type.
-type ATNConfigComparator[T Collectable[T]] struct {
-}
-
-// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
-func (c *ATNConfigComparator[T]) Equals2(o1, o2 *ATNConfig) bool {
-
- // Same pointer, must be equal, even if both nil
- //
- if o1 == o2 {
- return true
-
- }
-
- // If either are nil, but not both, then the result is false
- //
- if o1 == nil || o2 == nil {
- return false
- }
-
- return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
- o1.GetAlt() == o2.GetAlt() &&
- o1.GetSemanticContext().Equals(o2.GetSemanticContext())
-}
-
-// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
-func (c *ATNConfigComparator[T]) Hash1(o *ATNConfig) int {
-
- hash := 7
- hash = 31*hash + o.GetState().GetStateNumber()
- hash = 31*hash + o.GetAlt()
- hash = 31*hash + o.GetSemanticContext().Hash()
- return hash
-}
-
-// ATNAltConfigComparator is used as the comparator for mapping configs to Alt Bitsets
-type ATNAltConfigComparator[T Collectable[T]] struct {
-}
-
-// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
-func (c *ATNAltConfigComparator[T]) Equals2(o1, o2 *ATNConfig) bool {
-
- // Same pointer, must be equal, even if both nil
- //
- if o1 == o2 {
- return true
-
- }
-
- // If either are nil, but not both, then the result is false
- //
- if o1 == nil || o2 == nil {
- return false
- }
-
- return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
- o1.GetContext().Equals(o2.GetContext())
-}
-
-// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
-func (c *ATNAltConfigComparator[T]) Hash1(o *ATNConfig) int {
- h := murmurInit(7)
- h = murmurUpdate(h, o.GetState().GetStateNumber())
- h = murmurUpdate(h, o.GetContext().Hash())
- return murmurFinish(h, 2)
-}
-
-// BaseATNConfigComparator is used as the comparator for the configLookup field of a ATNConfigSet
-// and has a custom Equals() and Hash() implementation, because equality is not based on the
-// standard Hash() and Equals() methods of the ATNConfig type.
-type BaseATNConfigComparator[T Collectable[T]] struct {
-}
-
-// Equals2 is a custom comparator for ATNConfigs specifically for baseATNConfigSet
-func (c *BaseATNConfigComparator[T]) Equals2(o1, o2 *ATNConfig) bool {
-
- // Same pointer, must be equal, even if both nil
- //
- if o1 == o2 {
- return true
-
- }
-
- // If either are nil, but not both, then the result is false
- //
- if o1 == nil || o2 == nil {
- return false
- }
-
- return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
- o1.GetAlt() == o2.GetAlt() &&
- o1.GetSemanticContext().Equals(o2.GetSemanticContext())
-}
-
-// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup, but in fact just
-// delegates to the standard Hash() method of the ATNConfig type.
-func (c *BaseATNConfigComparator[T]) Hash1(o *ATNConfig) int {
- return o.Hash()
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/configuration.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/configuration.go
deleted file mode 100644
index c2b72451..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/configuration.go
+++ /dev/null
@@ -1,214 +0,0 @@
-package antlr
-
-type runtimeConfiguration struct {
- statsTraceStacks bool
- lexerATNSimulatorDebug bool
- lexerATNSimulatorDFADebug bool
- parserATNSimulatorDebug bool
- parserATNSimulatorTraceATNSim bool
- parserATNSimulatorDFADebug bool
- parserATNSimulatorRetryDebug bool
- lRLoopEntryBranchOpt bool
- memoryManager bool
-}
-
-// Global runtime configuration
-var runtimeConfig = runtimeConfiguration{
- lRLoopEntryBranchOpt: true,
-}
-
-type runtimeOption func(*runtimeConfiguration) error
-
-// ConfigureRuntime allows the runtime to be configured globally setting things like trace and statistics options.
-// It uses the functional options pattern for go. This is a package global function as it operates on the runtime
-// configuration regardless of the instantiation of anything higher up such as a parser or lexer. Generally this is
-// used for debugging/tracing/statistics options, which are usually used by the runtime maintainers (or rather the
-// only maintainer). However, it is possible that you might want to use this to set a global option concerning the
-// memory allocation type used by the runtime such as sync.Pool or not.
-//
-// The options are applied in the order they are passed in, so the last option will override any previous options.
-//
-// For example, if you want to turn on the collection create point stack flag to true, you can do:
-//
-// antlr.ConfigureRuntime(antlr.WithStatsTraceStacks(true))
-//
-// If you want to turn it off, you can do:
-//
-// antlr.ConfigureRuntime(antlr.WithStatsTraceStacks(false))
-func ConfigureRuntime(options ...runtimeOption) error {
- for _, option := range options {
- err := option(&runtimeConfig)
- if err != nil {
- return err
- }
- }
- return nil
-}
-
-// WithStatsTraceStacks sets the global flag indicating whether to collect stack traces at the create-point of
-// certain structs, such as collections, or the use point of certain methods such as Put().
-// Because this can be expensive, it is turned off by default. However, it
-// can be useful to track down exactly where memory is being created and used.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithStatsTraceStacks(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithStatsTraceStacks(false))
-func WithStatsTraceStacks(trace bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.statsTraceStacks = trace
- return nil
- }
-}
-
-// WithLexerATNSimulatorDebug sets the global flag indicating whether to log debug information from the lexer [ATN]
-// simulator. This is useful for debugging lexer issues by comparing the output with the Java runtime. Only useful
-// to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithLexerATNSimulatorDebug(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithLexerATNSimulatorDebug(false))
-func WithLexerATNSimulatorDebug(debug bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.lexerATNSimulatorDebug = debug
- return nil
- }
-}
-
-// WithLexerATNSimulatorDFADebug sets the global flag indicating whether to log debug information from the lexer [ATN] [DFA]
-// simulator. This is useful for debugging lexer issues by comparing the output with the Java runtime. Only useful
-// to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithLexerATNSimulatorDFADebug(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithLexerATNSimulatorDFADebug(false))
-func WithLexerATNSimulatorDFADebug(debug bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.lexerATNSimulatorDFADebug = debug
- return nil
- }
-}
-
-// WithParserATNSimulatorDebug sets the global flag indicating whether to log debug information from the parser [ATN]
-// simulator. This is useful for debugging parser issues by comparing the output with the Java runtime. Only useful
-// to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorDebug(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorDebug(false))
-func WithParserATNSimulatorDebug(debug bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.parserATNSimulatorDebug = debug
- return nil
- }
-}
-
-// WithParserATNSimulatorTraceATNSim sets the global flag indicating whether to log trace information from the parser [ATN] simulator
-// [DFA]. This is useful for debugging parser issues by comparing the output with the Java runtime. Only useful
-// to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorTraceATNSim(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorTraceATNSim(false))
-func WithParserATNSimulatorTraceATNSim(trace bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.parserATNSimulatorTraceATNSim = trace
- return nil
- }
-}
-
-// WithParserATNSimulatorDFADebug sets the global flag indicating whether to log debug information from the parser [ATN] [DFA]
-// simulator. This is useful for debugging parser issues by comparing the output with the Java runtime. Only useful
-// to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorDFADebug(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorDFADebug(false))
-func WithParserATNSimulatorDFADebug(debug bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.parserATNSimulatorDFADebug = debug
- return nil
- }
-}
-
-// WithParserATNSimulatorRetryDebug sets the global flag indicating whether to log debug information from the parser [ATN] [DFA]
-// simulator when retrying a decision. This is useful for debugging parser issues by comparing the output with the Java runtime.
-// Only useful to the runtime maintainers.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorRetryDebug(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithParserATNSimulatorRetryDebug(false))
-func WithParserATNSimulatorRetryDebug(debug bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.parserATNSimulatorRetryDebug = debug
- return nil
- }
-}
-
-// WithLRLoopEntryBranchOpt sets the global flag indicating whether let recursive loop operations should be
-// optimized or not. This is useful for debugging parser issues by comparing the output with the Java runtime.
-// It turns off the functionality of [canDropLoopEntryEdgeInLeftRecursiveRule] in [ParserATNSimulator].
-//
-// Note that default is to use this optimization.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithLRLoopEntryBranchOpt(true))
-//
-// You can turn it off at any time using:
-//
-// antlr.ConfigureRuntime(antlr.WithLRLoopEntryBranchOpt(false))
-func WithLRLoopEntryBranchOpt(off bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.lRLoopEntryBranchOpt = off
- return nil
- }
-}
-
-// WithMemoryManager sets the global flag indicating whether to use the memory manager or not. This is useful
-// for poorly constructed grammars that create a lot of garbage. It turns on the functionality of [memoryManager], which
-// will intercept garbage collection and cause available memory to be reused. At the end of the day, this is no substitute
-// for fixing your grammar by ridding yourself of extreme ambiguity. BUt if you are just trying to reuse an opensource
-// grammar, this may help make it more practical.
-//
-// Note that default is to use normal Go memory allocation and not pool memory.
-//
-// Use:
-//
-// antlr.ConfigureRuntime(antlr.WithMemoryManager(true))
-//
-// Note that if you turn this on, you should probably leave it on. You should use only one memory strategy or the other
-// and should remember to nil out any references to the parser or lexer when you are done with them.
-func WithMemoryManager(use bool) runtimeOption {
- return func(config *runtimeConfiguration) error {
- config.memoryManager = use
- return nil
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa.go
deleted file mode 100644
index 6b63eb15..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa.go
+++ /dev/null
@@ -1,175 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// DFA represents the Deterministic Finite Automaton used by the recognizer, including all the states it can
-// reach and the transitions between them.
-type DFA struct {
- // atnStartState is the ATN state in which this was created
- atnStartState DecisionState
-
- decision int
-
- // states is all the DFA states. Use Map to get the old state back; Set can only
- // indicate whether it is there. Go maps implement key hash collisions and so on and are very
- // good, but the DFAState is an object and can't be used directly as the key as it can in say Java
- // amd C#, whereby if the hashcode is the same for two objects, then Equals() is called against them
- // to see if they really are the same object. Hence, we have our own map storage.
- //
- states *JStore[*DFAState, *ObjEqComparator[*DFAState]]
-
- numstates int
-
- s0 *DFAState
-
- // precedenceDfa is the backing field for isPrecedenceDfa and setPrecedenceDfa.
- // True if the DFA is for a precedence decision and false otherwise.
- precedenceDfa bool
-}
-
-func NewDFA(atnStartState DecisionState, decision int) *DFA {
- dfa := &DFA{
- atnStartState: atnStartState,
- decision: decision,
- states: nil, // Lazy initialize
- }
- if s, ok := atnStartState.(*StarLoopEntryState); ok && s.precedenceRuleDecision {
- dfa.precedenceDfa = true
- dfa.s0 = NewDFAState(-1, NewATNConfigSet(false))
- dfa.s0.isAcceptState = false
- dfa.s0.requiresFullContext = false
- }
- return dfa
-}
-
-// getPrecedenceStartState gets the start state for the current precedence and
-// returns the start state corresponding to the specified precedence if a start
-// state exists for the specified precedence and nil otherwise. d must be a
-// precedence DFA. See also isPrecedenceDfa.
-func (d *DFA) getPrecedenceStartState(precedence int) *DFAState {
- if !d.getPrecedenceDfa() {
- panic("only precedence DFAs may contain a precedence start state")
- }
-
- // s0.edges is never nil for a precedence DFA
- if precedence < 0 || precedence >= len(d.getS0().getEdges()) {
- return nil
- }
-
- return d.getS0().getIthEdge(precedence)
-}
-
-// setPrecedenceStartState sets the start state for the current precedence. d
-// must be a precedence DFA. See also isPrecedenceDfa.
-func (d *DFA) setPrecedenceStartState(precedence int, startState *DFAState) {
- if !d.getPrecedenceDfa() {
- panic("only precedence DFAs may contain a precedence start state")
- }
-
- if precedence < 0 {
- return
- }
-
- // Synchronization on s0 here is ok. When the DFA is turned into a
- // precedence DFA, s0 will be initialized once and not updated again. s0.edges
- // is never nil for a precedence DFA.
- s0 := d.getS0()
- if precedence >= s0.numEdges() {
- edges := append(s0.getEdges(), make([]*DFAState, precedence+1-s0.numEdges())...)
- s0.setEdges(edges)
- d.setS0(s0)
- }
-
- s0.setIthEdge(precedence, startState)
-}
-
-func (d *DFA) getPrecedenceDfa() bool {
- return d.precedenceDfa
-}
-
-// setPrecedenceDfa sets whether d is a precedence DFA. If precedenceDfa differs
-// from the current DFA configuration, then d.states is cleared, the initial
-// state s0 is set to a new DFAState with an empty outgoing DFAState.edges to
-// store the start states for individual precedence values if precedenceDfa is
-// true or nil otherwise, and d.precedenceDfa is updated.
-func (d *DFA) setPrecedenceDfa(precedenceDfa bool) {
- if d.getPrecedenceDfa() != precedenceDfa {
- d.states = nil // Lazy initialize
- d.numstates = 0
-
- if precedenceDfa {
- precedenceState := NewDFAState(-1, NewATNConfigSet(false))
- precedenceState.setEdges(make([]*DFAState, 0))
- precedenceState.isAcceptState = false
- precedenceState.requiresFullContext = false
- d.setS0(precedenceState)
- } else {
- d.setS0(nil)
- }
-
- d.precedenceDfa = precedenceDfa
- }
-}
-
-// Len returns the number of states in d. We use this instead of accessing states directly so that we can implement lazy
-// instantiation of the states JMap.
-func (d *DFA) Len() int {
- if d.states == nil {
- return 0
- }
- return d.states.Len()
-}
-
-// Get returns a state that matches s if it is present in the DFA state set. We defer to this
-// function instead of accessing states directly so that we can implement lazy instantiation of the states JMap.
-func (d *DFA) Get(s *DFAState) (*DFAState, bool) {
- if d.states == nil {
- return nil, false
- }
- return d.states.Get(s)
-}
-
-func (d *DFA) Put(s *DFAState) (*DFAState, bool) {
- if d.states == nil {
- d.states = NewJStore[*DFAState, *ObjEqComparator[*DFAState]](dfaStateEqInst, DFAStateCollection, "DFA via DFA.Put")
- }
- return d.states.Put(s)
-}
-
-func (d *DFA) getS0() *DFAState {
- return d.s0
-}
-
-func (d *DFA) setS0(s *DFAState) {
- d.s0 = s
-}
-
-// sortedStates returns the states in d sorted by their state number, or an empty set if d.states is nil.
-func (d *DFA) sortedStates() []*DFAState {
- if d.states == nil {
- return []*DFAState{}
- }
- vs := d.states.SortedSlice(func(i, j *DFAState) bool {
- return i.stateNumber < j.stateNumber
- })
-
- return vs
-}
-
-func (d *DFA) String(literalNames []string, symbolicNames []string) string {
- if d.getS0() == nil {
- return ""
- }
-
- return NewDFASerializer(d, literalNames, symbolicNames).String()
-}
-
-func (d *DFA) ToLexerString() string {
- if d.getS0() == nil {
- return ""
- }
-
- return NewLexerDFASerializer(d).String()
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_serializer.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_serializer.go
deleted file mode 100644
index 0e110098..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_serializer.go
+++ /dev/null
@@ -1,158 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
- "strings"
-)
-
-// DFASerializer is a DFA walker that knows how to dump the DFA states to serialized
-// strings.
-type DFASerializer struct {
- dfa *DFA
- literalNames []string
- symbolicNames []string
-}
-
-func NewDFASerializer(dfa *DFA, literalNames, symbolicNames []string) *DFASerializer {
- if literalNames == nil {
- literalNames = make([]string, 0)
- }
-
- if symbolicNames == nil {
- symbolicNames = make([]string, 0)
- }
-
- return &DFASerializer{
- dfa: dfa,
- literalNames: literalNames,
- symbolicNames: symbolicNames,
- }
-}
-
-func (d *DFASerializer) String() string {
- if d.dfa.getS0() == nil {
- return ""
- }
-
- buf := ""
- states := d.dfa.sortedStates()
-
- for _, s := range states {
- if s.edges != nil {
- n := len(s.edges)
-
- for j := 0; j < n; j++ {
- t := s.edges[j]
-
- if t != nil && t.stateNumber != 0x7FFFFFFF {
- buf += d.GetStateString(s)
- buf += "-"
- buf += d.getEdgeLabel(j)
- buf += "->"
- buf += d.GetStateString(t)
- buf += "\n"
- }
- }
- }
- }
-
- if len(buf) == 0 {
- return ""
- }
-
- return buf
-}
-
-func (d *DFASerializer) getEdgeLabel(i int) string {
- if i == 0 {
- return "EOF"
- } else if d.literalNames != nil && i-1 < len(d.literalNames) {
- return d.literalNames[i-1]
- } else if d.symbolicNames != nil && i-1 < len(d.symbolicNames) {
- return d.symbolicNames[i-1]
- }
-
- return strconv.Itoa(i - 1)
-}
-
-func (d *DFASerializer) GetStateString(s *DFAState) string {
- var a, b string
-
- if s.isAcceptState {
- a = ":"
- }
-
- if s.requiresFullContext {
- b = "^"
- }
-
- baseStateStr := a + "s" + strconv.Itoa(s.stateNumber) + b
-
- if s.isAcceptState {
- if s.predicates != nil {
- return baseStateStr + "=>" + fmt.Sprint(s.predicates)
- }
-
- return baseStateStr + "=>" + fmt.Sprint(s.prediction)
- }
-
- return baseStateStr
-}
-
-type LexerDFASerializer struct {
- *DFASerializer
-}
-
-func NewLexerDFASerializer(dfa *DFA) *LexerDFASerializer {
- return &LexerDFASerializer{DFASerializer: NewDFASerializer(dfa, nil, nil)}
-}
-
-func (l *LexerDFASerializer) getEdgeLabel(i int) string {
- var sb strings.Builder
- sb.Grow(6)
- sb.WriteByte('\'')
- sb.WriteRune(rune(i))
- sb.WriteByte('\'')
- return sb.String()
-}
-
-func (l *LexerDFASerializer) String() string {
- if l.dfa.getS0() == nil {
- return ""
- }
-
- buf := ""
- states := l.dfa.sortedStates()
-
- for i := 0; i < len(states); i++ {
- s := states[i]
-
- if s.edges != nil {
- n := len(s.edges)
-
- for j := 0; j < n; j++ {
- t := s.edges[j]
-
- if t != nil && t.stateNumber != 0x7FFFFFFF {
- buf += l.GetStateString(s)
- buf += "-"
- buf += l.getEdgeLabel(j)
- buf += "->"
- buf += l.GetStateString(t)
- buf += "\n"
- }
- }
- }
- }
-
- if len(buf) == 0 {
- return ""
- }
-
- return buf
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_state.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_state.go
deleted file mode 100644
index 65414307..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/dfa_state.go
+++ /dev/null
@@ -1,170 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
-)
-
-// PredPrediction maps a predicate to a predicted alternative.
-type PredPrediction struct {
- alt int
- pred SemanticContext
-}
-
-func NewPredPrediction(pred SemanticContext, alt int) *PredPrediction {
- return &PredPrediction{alt: alt, pred: pred}
-}
-
-func (p *PredPrediction) String() string {
- return "(" + fmt.Sprint(p.pred) + ", " + fmt.Sprint(p.alt) + ")"
-}
-
-// DFAState represents a set of possible [ATN] configurations. As Aho, Sethi,
-// Ullman p. 117 says: "The DFA uses its state to keep track of all possible
-// states the ATN can be in after reading each input symbol. That is to say,
-// after reading input a1, a2,..an, the DFA is in a state that represents the
-// subset T of the states of the ATN that are reachable from the ATN's start
-// state along some path labeled a1a2..an."
-//
-// In conventional NFA-to-DFA conversion, therefore, the subset T would be a bitset representing the set of
-// states the [ATN] could be in. We need to track the alt predicted by each state
-// as well, however. More importantly, we need to maintain a stack of states,
-// tracking the closure operations as they jump from rule to rule, emulating
-// rule invocations (method calls). I have to add a stack to simulate the proper
-// lookahead sequences for the underlying LL grammar from which the ATN was
-// derived.
-//
-// I use a set of [ATNConfig] objects, not simple states. An [ATNConfig] is both a
-// state (ala normal conversion) and a [RuleContext] describing the chain of rules
-// (if any) followed to arrive at that state.
-//
-// A [DFAState] may have multiple references to a particular state, but with
-// different [ATN] contexts (with same or different alts) meaning that state was
-// reached via a different set of rule invocations.
-type DFAState struct {
- stateNumber int
- configs *ATNConfigSet
-
- // edges elements point to the target of the symbol. Shift up by 1 so (-1)
- // Token.EOF maps to the first element.
- edges []*DFAState
-
- isAcceptState bool
-
- // prediction is the 'ttype' we match or alt we predict if the state is 'accept'.
- // Set to ATN.INVALID_ALT_NUMBER when predicates != nil or
- // requiresFullContext.
- prediction int
-
- lexerActionExecutor *LexerActionExecutor
-
- // requiresFullContext indicates it was created during an SLL prediction that
- // discovered a conflict between the configurations in the state. Future
- // ParserATNSimulator.execATN invocations immediately jump doing
- // full context prediction if true.
- requiresFullContext bool
-
- // predicates is the predicates associated with the ATN configurations of the
- // DFA state during SLL parsing. When we have predicates, requiresFullContext
- // is false, since full context prediction evaluates predicates on-the-fly. If
- // d is
- // not nil, then prediction is ATN.INVALID_ALT_NUMBER.
- //
- // We only use these for non-requiresFullContext but conflicting states. That
- // means we know from the context (it's $ or we don't dip into outer context)
- // that it's an ambiguity not a conflict.
- //
- // This list is computed by
- // ParserATNSimulator.predicateDFAState.
- predicates []*PredPrediction
-}
-
-func NewDFAState(stateNumber int, configs *ATNConfigSet) *DFAState {
- if configs == nil {
- configs = NewATNConfigSet(false)
- }
-
- return &DFAState{configs: configs, stateNumber: stateNumber}
-}
-
-// GetAltSet gets the set of all alts mentioned by all ATN configurations in d.
-func (d *DFAState) GetAltSet() []int {
- var alts []int
-
- if d.configs != nil {
- for _, c := range d.configs.configs {
- alts = append(alts, c.GetAlt())
- }
- }
-
- if len(alts) == 0 {
- return nil
- }
-
- return alts
-}
-
-func (d *DFAState) getEdges() []*DFAState {
- return d.edges
-}
-
-func (d *DFAState) numEdges() int {
- return len(d.edges)
-}
-
-func (d *DFAState) getIthEdge(i int) *DFAState {
- return d.edges[i]
-}
-
-func (d *DFAState) setEdges(newEdges []*DFAState) {
- d.edges = newEdges
-}
-
-func (d *DFAState) setIthEdge(i int, edge *DFAState) {
- d.edges[i] = edge
-}
-
-func (d *DFAState) setPrediction(v int) {
- d.prediction = v
-}
-
-func (d *DFAState) String() string {
- var s string
- if d.isAcceptState {
- if d.predicates != nil {
- s = "=>" + fmt.Sprint(d.predicates)
- } else {
- s = "=>" + fmt.Sprint(d.prediction)
- }
- }
-
- return fmt.Sprintf("%d:%s%s", d.stateNumber, fmt.Sprint(d.configs), s)
-}
-
-func (d *DFAState) Hash() int {
- h := murmurInit(7)
- h = murmurUpdate(h, d.configs.Hash())
- return murmurFinish(h, 1)
-}
-
-// Equals returns whether d equals other. Two DFAStates are equal if their ATN
-// configuration sets are the same. This method is used to see if a state
-// already exists.
-//
-// Because the number of alternatives and number of ATN configurations are
-// finite, there is a finite number of DFA states that can be processed. This is
-// necessary to show that the algorithm terminates.
-//
-// Cannot test the DFA state numbers here because in
-// ParserATNSimulator.addDFAState we need to know if any other state exists that
-// has d exact set of ATN configurations. The stateNumber is irrelevant.
-func (d *DFAState) Equals(o Collectable[*DFAState]) bool {
- if d == o {
- return true
- }
-
- return d.configs.Equals(o.(*DFAState).configs)
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/diagnostic_error_listener.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/diagnostic_error_listener.go
deleted file mode 100644
index bd2cd8bc..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/diagnostic_error_listener.go
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "strconv"
-)
-
-//
-// This implementation of {@link ANTLRErrorListener} can be used to identify
-// certain potential correctness and performance problems in grammars. "reports"
-// are made by calling {@link Parser//NotifyErrorListeners} with the appropriate
-// message.
-//
-//
-// - Ambiguities: These are cases where more than one path through the
-// grammar can Match the input.
-// - Weak context sensitivity: These are cases where full-context
-// prediction resolved an SLL conflict to a unique alternative which equaled the
-// minimum alternative of the SLL conflict.
-// - Strong (forced) context sensitivity: These are cases where the
-// full-context prediction resolved an SLL conflict to a unique alternative,
-// and the minimum alternative of the SLL conflict was found to not be
-// a truly viable alternative. Two-stage parsing cannot be used for inputs where
-// d situation occurs.
-//
-
-type DiagnosticErrorListener struct {
- *DefaultErrorListener
-
- exactOnly bool
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewDiagnosticErrorListener(exactOnly bool) *DiagnosticErrorListener {
-
- n := new(DiagnosticErrorListener)
-
- // whether all ambiguities or only exact ambiguities are Reported.
- n.exactOnly = exactOnly
- return n
-}
-
-func (d *DiagnosticErrorListener) ReportAmbiguity(recognizer Parser, dfa *DFA, startIndex, stopIndex int, exact bool, ambigAlts *BitSet, configs *ATNConfigSet) {
- if d.exactOnly && !exact {
- return
- }
- msg := "reportAmbiguity d=" +
- d.getDecisionDescription(recognizer, dfa) +
- ": ambigAlts=" +
- d.getConflictingAlts(ambigAlts, configs).String() +
- ", input='" +
- recognizer.GetTokenStream().GetTextFromInterval(NewInterval(startIndex, stopIndex)) + "'"
- recognizer.NotifyErrorListeners(msg, nil, nil)
-}
-
-func (d *DiagnosticErrorListener) ReportAttemptingFullContext(recognizer Parser, dfa *DFA, startIndex, stopIndex int, _ *BitSet, _ *ATNConfigSet) {
-
- msg := "reportAttemptingFullContext d=" +
- d.getDecisionDescription(recognizer, dfa) +
- ", input='" +
- recognizer.GetTokenStream().GetTextFromInterval(NewInterval(startIndex, stopIndex)) + "'"
- recognizer.NotifyErrorListeners(msg, nil, nil)
-}
-
-func (d *DiagnosticErrorListener) ReportContextSensitivity(recognizer Parser, dfa *DFA, startIndex, stopIndex, _ int, _ *ATNConfigSet) {
- msg := "reportContextSensitivity d=" +
- d.getDecisionDescription(recognizer, dfa) +
- ", input='" +
- recognizer.GetTokenStream().GetTextFromInterval(NewInterval(startIndex, stopIndex)) + "'"
- recognizer.NotifyErrorListeners(msg, nil, nil)
-}
-
-func (d *DiagnosticErrorListener) getDecisionDescription(recognizer Parser, dfa *DFA) string {
- decision := dfa.decision
- ruleIndex := dfa.atnStartState.GetRuleIndex()
-
- ruleNames := recognizer.GetRuleNames()
- if ruleIndex < 0 || ruleIndex >= len(ruleNames) {
- return strconv.Itoa(decision)
- }
- ruleName := ruleNames[ruleIndex]
- if ruleName == "" {
- return strconv.Itoa(decision)
- }
- return strconv.Itoa(decision) + " (" + ruleName + ")"
-}
-
-// Computes the set of conflicting or ambiguous alternatives from a
-// configuration set, if that information was not already provided by the
-// parser.
-//
-// @param ReportedAlts The set of conflicting or ambiguous alternatives, as
-// Reported by the parser.
-// @param configs The conflicting or ambiguous configuration set.
-// @return Returns {@code ReportedAlts} if it is not {@code nil}, otherwise
-// returns the set of alternatives represented in {@code configs}.
-func (d *DiagnosticErrorListener) getConflictingAlts(ReportedAlts *BitSet, set *ATNConfigSet) *BitSet {
- if ReportedAlts != nil {
- return ReportedAlts
- }
- result := NewBitSet()
- for _, c := range set.configs {
- result.add(c.GetAlt())
- }
-
- return result
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_listener.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_listener.go
deleted file mode 100644
index 21a02164..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_listener.go
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "os"
- "strconv"
-)
-
-// Provides an empty default implementation of {@link ANTLRErrorListener}. The
-// default implementation of each method does nothing, but can be overridden as
-// necessary.
-
-type ErrorListener interface {
- SyntaxError(recognizer Recognizer, offendingSymbol interface{}, line, column int, msg string, e RecognitionException)
- ReportAmbiguity(recognizer Parser, dfa *DFA, startIndex, stopIndex int, exact bool, ambigAlts *BitSet, configs *ATNConfigSet)
- ReportAttemptingFullContext(recognizer Parser, dfa *DFA, startIndex, stopIndex int, conflictingAlts *BitSet, configs *ATNConfigSet)
- ReportContextSensitivity(recognizer Parser, dfa *DFA, startIndex, stopIndex, prediction int, configs *ATNConfigSet)
-}
-
-type DefaultErrorListener struct {
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewDefaultErrorListener() *DefaultErrorListener {
- return new(DefaultErrorListener)
-}
-
-func (d *DefaultErrorListener) SyntaxError(_ Recognizer, _ interface{}, _, _ int, _ string, _ RecognitionException) {
-}
-
-func (d *DefaultErrorListener) ReportAmbiguity(_ Parser, _ *DFA, _, _ int, _ bool, _ *BitSet, _ *ATNConfigSet) {
-}
-
-func (d *DefaultErrorListener) ReportAttemptingFullContext(_ Parser, _ *DFA, _, _ int, _ *BitSet, _ *ATNConfigSet) {
-}
-
-func (d *DefaultErrorListener) ReportContextSensitivity(_ Parser, _ *DFA, _, _, _ int, _ *ATNConfigSet) {
-}
-
-type ConsoleErrorListener struct {
- *DefaultErrorListener
-}
-
-func NewConsoleErrorListener() *ConsoleErrorListener {
- return new(ConsoleErrorListener)
-}
-
-// ConsoleErrorListenerINSTANCE provides a default instance of {@link ConsoleErrorListener}.
-var ConsoleErrorListenerINSTANCE = NewConsoleErrorListener()
-
-// SyntaxError prints messages to System.err containing the
-// values of line, charPositionInLine, and msg using
-// the following format:
-//
-// line :
-func (c *ConsoleErrorListener) SyntaxError(_ Recognizer, _ interface{}, line, column int, msg string, _ RecognitionException) {
- _, _ = fmt.Fprintln(os.Stderr, "line "+strconv.Itoa(line)+":"+strconv.Itoa(column)+" "+msg)
-}
-
-type ProxyErrorListener struct {
- *DefaultErrorListener
- delegates []ErrorListener
-}
-
-func NewProxyErrorListener(delegates []ErrorListener) *ProxyErrorListener {
- if delegates == nil {
- panic("delegates is not provided")
- }
- l := new(ProxyErrorListener)
- l.delegates = delegates
- return l
-}
-
-func (p *ProxyErrorListener) SyntaxError(recognizer Recognizer, offendingSymbol interface{}, line, column int, msg string, e RecognitionException) {
- for _, d := range p.delegates {
- d.SyntaxError(recognizer, offendingSymbol, line, column, msg, e)
- }
-}
-
-func (p *ProxyErrorListener) ReportAmbiguity(recognizer Parser, dfa *DFA, startIndex, stopIndex int, exact bool, ambigAlts *BitSet, configs *ATNConfigSet) {
- for _, d := range p.delegates {
- d.ReportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs)
- }
-}
-
-func (p *ProxyErrorListener) ReportAttemptingFullContext(recognizer Parser, dfa *DFA, startIndex, stopIndex int, conflictingAlts *BitSet, configs *ATNConfigSet) {
- for _, d := range p.delegates {
- d.ReportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs)
- }
-}
-
-func (p *ProxyErrorListener) ReportContextSensitivity(recognizer Parser, dfa *DFA, startIndex, stopIndex, prediction int, configs *ATNConfigSet) {
- for _, d := range p.delegates {
- d.ReportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, configs)
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_strategy.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_strategy.go
deleted file mode 100644
index 9db2be1c..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/error_strategy.go
+++ /dev/null
@@ -1,702 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "reflect"
- "strconv"
- "strings"
-)
-
-type ErrorStrategy interface {
- reset(Parser)
- RecoverInline(Parser) Token
- Recover(Parser, RecognitionException)
- Sync(Parser)
- InErrorRecoveryMode(Parser) bool
- ReportError(Parser, RecognitionException)
- ReportMatch(Parser)
-}
-
-// DefaultErrorStrategy is the default implementation of ANTLRErrorStrategy used for
-// error reporting and recovery in ANTLR parsers.
-type DefaultErrorStrategy struct {
- errorRecoveryMode bool
- lastErrorIndex int
- lastErrorStates *IntervalSet
-}
-
-var _ ErrorStrategy = &DefaultErrorStrategy{}
-
-func NewDefaultErrorStrategy() *DefaultErrorStrategy {
-
- d := new(DefaultErrorStrategy)
-
- // Indicates whether the error strategy is currently "recovering from an
- // error". This is used to suppress Reporting multiple error messages while
- // attempting to recover from a detected syntax error.
- //
- // @see //InErrorRecoveryMode
- //
- d.errorRecoveryMode = false
-
- // The index into the input stream where the last error occurred.
- // This is used to prevent infinite loops where an error is found
- // but no token is consumed during recovery...another error is found,
- // ad nauseam. This is a failsafe mechanism to guarantee that at least
- // one token/tree node is consumed for two errors.
- //
- d.lastErrorIndex = -1
- d.lastErrorStates = nil
- return d
-}
-
-// The default implementation simply calls {@link //endErrorCondition} to
-// ensure that the handler is not in error recovery mode.
-func (d *DefaultErrorStrategy) reset(recognizer Parser) {
- d.endErrorCondition(recognizer)
-}
-
-// This method is called to enter error recovery mode when a recognition
-// exception is Reported.
-func (d *DefaultErrorStrategy) beginErrorCondition(_ Parser) {
- d.errorRecoveryMode = true
-}
-
-func (d *DefaultErrorStrategy) InErrorRecoveryMode(_ Parser) bool {
- return d.errorRecoveryMode
-}
-
-// This method is called to leave error recovery mode after recovering from
-// a recognition exception.
-func (d *DefaultErrorStrategy) endErrorCondition(_ Parser) {
- d.errorRecoveryMode = false
- d.lastErrorStates = nil
- d.lastErrorIndex = -1
-}
-
-// ReportMatch is the default implementation of error matching and simply calls endErrorCondition.
-func (d *DefaultErrorStrategy) ReportMatch(recognizer Parser) {
- d.endErrorCondition(recognizer)
-}
-
-// ReportError is the default implementation of error reporting.
-// It returns immediately if the handler is already
-// in error recovery mode. Otherwise, it calls [beginErrorCondition]
-// and dispatches the Reporting task based on the runtime type of e
-// according to the following table.
-//
-// [NoViableAltException] : Dispatches the call to [ReportNoViableAlternative]
-// [InputMisMatchException] : Dispatches the call to [ReportInputMisMatch]
-// [FailedPredicateException] : Dispatches the call to [ReportFailedPredicate]
-// All other types : Calls [NotifyErrorListeners] to Report the exception
-func (d *DefaultErrorStrategy) ReportError(recognizer Parser, e RecognitionException) {
- // if we've already Reported an error and have not Matched a token
- // yet successfully, don't Report any errors.
- if d.InErrorRecoveryMode(recognizer) {
- return // don't Report spurious errors
- }
- d.beginErrorCondition(recognizer)
-
- switch t := e.(type) {
- default:
- fmt.Println("unknown recognition error type: " + reflect.TypeOf(e).Name())
- // fmt.Println(e.stack)
- recognizer.NotifyErrorListeners(e.GetMessage(), e.GetOffendingToken(), e)
- case *NoViableAltException:
- d.ReportNoViableAlternative(recognizer, t)
- case *InputMisMatchException:
- d.ReportInputMisMatch(recognizer, t)
- case *FailedPredicateException:
- d.ReportFailedPredicate(recognizer, t)
- }
-}
-
-// Recover is the default recovery implementation.
-// It reSynchronizes the parser by consuming tokens until we find one in the reSynchronization set -
-// loosely the set of tokens that can follow the current rule.
-func (d *DefaultErrorStrategy) Recover(recognizer Parser, _ RecognitionException) {
-
- if d.lastErrorIndex == recognizer.GetInputStream().Index() &&
- d.lastErrorStates != nil && d.lastErrorStates.contains(recognizer.GetState()) {
- // uh oh, another error at same token index and previously-Visited
- // state in ATN must be a case where LT(1) is in the recovery
- // token set so nothing got consumed. Consume a single token
- // at least to prevent an infinite loop d is a failsafe.
- recognizer.Consume()
- }
- d.lastErrorIndex = recognizer.GetInputStream().Index()
- if d.lastErrorStates == nil {
- d.lastErrorStates = NewIntervalSet()
- }
- d.lastErrorStates.addOne(recognizer.GetState())
- followSet := d.GetErrorRecoverySet(recognizer)
- d.consumeUntil(recognizer, followSet)
-}
-
-// Sync is the default implementation of error strategy synchronization.
-//
-// This Sync makes sure that the current lookahead symbol is consistent with what were expecting
-// at this point in the [ATN]. You can call this anytime but ANTLR only
-// generates code to check before sub-rules/loops and each iteration.
-//
-// Implements [Jim Idle]'s magic Sync mechanism in closures and optional
-// sub-rules. E.g.:
-//
-// a : Sync ( stuff Sync )*
-// Sync : {consume to what can follow Sync}
-//
-// At the start of a sub-rule upon error, Sync performs single
-// token deletion, if possible. If it can't do that, it bails on the current
-// rule and uses the default error recovery, which consumes until the
-// reSynchronization set of the current rule.
-//
-// If the sub-rule is optional
-//
-// ({@code (...)?}, {@code (...)*},
-//
-// or a block with an empty alternative), then the expected set includes what follows
-// the sub-rule.
-//
-// During loop iteration, it consumes until it sees a token that can start a
-// sub-rule or what follows loop. Yes, that is pretty aggressive. We opt to
-// stay in the loop as long as possible.
-//
-// # Origins
-//
-// Previous versions of ANTLR did a poor job of their recovery within loops.
-// A single mismatch token or missing token would force the parser to bail
-// out of the entire rules surrounding the loop. So, for rule:
-//
-// classfunc : 'class' ID '{' member* '}'
-//
-// input with an extra token between members would force the parser to
-// consume until it found the next class definition rather than the next
-// member definition of the current class.
-//
-// This functionality cost a bit of effort because the parser has to
-// compare the token set at the start of the loop and at each iteration. If for
-// some reason speed is suffering for you, you can turn off this
-// functionality by simply overriding this method as empty:
-//
-// { }
-//
-// [Jim Idle]: https://github.com/jimidle
-func (d *DefaultErrorStrategy) Sync(recognizer Parser) {
- // If already recovering, don't try to Sync
- if d.InErrorRecoveryMode(recognizer) {
- return
- }
-
- s := recognizer.GetInterpreter().atn.states[recognizer.GetState()]
- la := recognizer.GetTokenStream().LA(1)
-
- // try cheaper subset first might get lucky. seems to shave a wee bit off
- nextTokens := recognizer.GetATN().NextTokens(s, nil)
- if nextTokens.contains(TokenEpsilon) || nextTokens.contains(la) {
- return
- }
-
- switch s.GetStateType() {
- case ATNStateBlockStart, ATNStateStarBlockStart, ATNStatePlusBlockStart, ATNStateStarLoopEntry:
- // Report error and recover if possible
- if d.SingleTokenDeletion(recognizer) != nil {
- return
- }
- recognizer.SetError(NewInputMisMatchException(recognizer))
- case ATNStatePlusLoopBack, ATNStateStarLoopBack:
- d.ReportUnwantedToken(recognizer)
- expecting := NewIntervalSet()
- expecting.addSet(recognizer.GetExpectedTokens())
- whatFollowsLoopIterationOrRule := expecting.addSet(d.GetErrorRecoverySet(recognizer))
- d.consumeUntil(recognizer, whatFollowsLoopIterationOrRule)
- default:
- // do nothing if we can't identify the exact kind of ATN state
- }
-}
-
-// ReportNoViableAlternative is called by [ReportError] when the exception is a [NoViableAltException].
-//
-// See also [ReportError]
-func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *NoViableAltException) {
- tokens := recognizer.GetTokenStream()
- var input string
- if tokens != nil {
- if e.startToken.GetTokenType() == TokenEOF {
- input = ""
- } else {
- input = tokens.GetTextFromTokens(e.startToken, e.offendingToken)
- }
- } else {
- input = ""
- }
- msg := "no viable alternative at input " + d.escapeWSAndQuote(input)
- recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
-}
-
-// ReportInputMisMatch is called by [ReportError] when the exception is an [InputMisMatchException]
-//
-// See also: [ReportError]
-func (d *DefaultErrorStrategy) ReportInputMisMatch(recognizer Parser, e *InputMisMatchException) {
- msg := "mismatched input " + d.GetTokenErrorDisplay(e.offendingToken) +
- " expecting " + e.getExpectedTokens().StringVerbose(recognizer.GetLiteralNames(), recognizer.GetSymbolicNames(), false)
- recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
-}
-
-// ReportFailedPredicate is called by [ReportError] when the exception is a [FailedPredicateException].
-//
-// See also: [ReportError]
-func (d *DefaultErrorStrategy) ReportFailedPredicate(recognizer Parser, e *FailedPredicateException) {
- ruleName := recognizer.GetRuleNames()[recognizer.GetParserRuleContext().GetRuleIndex()]
- msg := "rule " + ruleName + " " + e.message
- recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
-}
-
-// ReportUnwantedToken is called to report a syntax error that requires the removal
-// of a token from the input stream. At the time d method is called, the
-// erroneous symbol is the current LT(1) symbol and has not yet been
-// removed from the input stream. When this method returns,
-// recognizer is in error recovery mode.
-//
-// This method is called when singleTokenDeletion identifies
-// single-token deletion as a viable recovery strategy for a mismatched
-// input error.
-//
-// The default implementation simply returns if the handler is already in
-// error recovery mode. Otherwise, it calls beginErrorCondition to
-// enter error recovery mode, followed by calling
-// [NotifyErrorListeners]
-func (d *DefaultErrorStrategy) ReportUnwantedToken(recognizer Parser) {
- if d.InErrorRecoveryMode(recognizer) {
- return
- }
- d.beginErrorCondition(recognizer)
- t := recognizer.GetCurrentToken()
- tokenName := d.GetTokenErrorDisplay(t)
- expecting := d.GetExpectedTokens(recognizer)
- msg := "extraneous input " + tokenName + " expecting " +
- expecting.StringVerbose(recognizer.GetLiteralNames(), recognizer.GetSymbolicNames(), false)
- recognizer.NotifyErrorListeners(msg, t, nil)
-}
-
-// ReportMissingToken is called to report a syntax error which requires the
-// insertion of a missing token into the input stream. At the time this
-// method is called, the missing token has not yet been inserted. When this
-// method returns, recognizer is in error recovery mode.
-//
-// This method is called when singleTokenInsertion identifies
-// single-token insertion as a viable recovery strategy for a mismatched
-// input error.
-//
-// The default implementation simply returns if the handler is already in
-// error recovery mode. Otherwise, it calls beginErrorCondition to
-// enter error recovery mode, followed by calling [NotifyErrorListeners]
-func (d *DefaultErrorStrategy) ReportMissingToken(recognizer Parser) {
- if d.InErrorRecoveryMode(recognizer) {
- return
- }
- d.beginErrorCondition(recognizer)
- t := recognizer.GetCurrentToken()
- expecting := d.GetExpectedTokens(recognizer)
- msg := "missing " + expecting.StringVerbose(recognizer.GetLiteralNames(), recognizer.GetSymbolicNames(), false) +
- " at " + d.GetTokenErrorDisplay(t)
- recognizer.NotifyErrorListeners(msg, t, nil)
-}
-
-// The RecoverInline default implementation attempts to recover from the mismatched input
-// by using single token insertion and deletion as described below. If the
-// recovery attempt fails, this method panics with [InputMisMatchException}.
-// TODO: Not sure that panic() is the right thing to do here - JI
-//
-// # EXTRA TOKEN (single token deletion)
-//
-// LA(1) is not what we are looking for. If LA(2) has the
-// right token, however, then assume LA(1) is some extra spurious
-// token and delete it. Then consume and return the next token (which was
-// the LA(2) token) as the successful result of the Match operation.
-//
-// # This recovery strategy is implemented by singleTokenDeletion
-//
-// # MISSING TOKEN (single token insertion)
-//
-// If current token -at LA(1) - is consistent with what could come
-// after the expected LA(1) token, then assume the token is missing
-// and use the parser's [TokenFactory] to create it on the fly. The
-// “insertion” is performed by returning the created token as the successful
-// result of the Match operation.
-//
-// This recovery strategy is implemented by [SingleTokenInsertion].
-//
-// # Example
-//
-// For example, Input i=(3 is clearly missing the ')'. When
-// the parser returns from the nested call to expr, it will have
-// call the chain:
-//
-// stat → expr → atom
-//
-// and it will be trying to Match the ')' at this point in the
-// derivation:
-//
-// : ID '=' '(' INT ')' ('+' atom)* ';'
-// ^
-//
-// The attempt to [Match] ')' will fail when it sees ';' and
-// call [RecoverInline]. To recover, it sees that LA(1)==';'
-// is in the set of tokens that can follow the ')' token reference
-// in rule atom. It can assume that you forgot the ')'.
-func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
- // SINGLE TOKEN DELETION
- MatchedSymbol := d.SingleTokenDeletion(recognizer)
- if MatchedSymbol != nil {
- // we have deleted the extra token.
- // now, move past ttype token as if all were ok
- recognizer.Consume()
- return MatchedSymbol
- }
- // SINGLE TOKEN INSERTION
- if d.SingleTokenInsertion(recognizer) {
- return d.GetMissingSymbol(recognizer)
- }
- // even that didn't work must panic the exception
- recognizer.SetError(NewInputMisMatchException(recognizer))
- return nil
-}
-
-// SingleTokenInsertion implements the single-token insertion inline error recovery
-// strategy. It is called by [RecoverInline] if the single-token
-// deletion strategy fails to recover from the mismatched input. If this
-// method returns {@code true}, {@code recognizer} will be in error recovery
-// mode.
-//
-// This method determines whether single-token insertion is viable by
-// checking if the LA(1) input symbol could be successfully Matched
-// if it were instead the LA(2) symbol. If this method returns
-// {@code true}, the caller is responsible for creating and inserting a
-// token with the correct type to produce this behavior.
-//
-// This func returns true if single-token insertion is a viable recovery
-// strategy for the current mismatched input.
-func (d *DefaultErrorStrategy) SingleTokenInsertion(recognizer Parser) bool {
- currentSymbolType := recognizer.GetTokenStream().LA(1)
- // if current token is consistent with what could come after current
- // ATN state, then we know we're missing a token error recovery
- // is free to conjure up and insert the missing token
- atn := recognizer.GetInterpreter().atn
- currentState := atn.states[recognizer.GetState()]
- next := currentState.GetTransitions()[0].getTarget()
- expectingAtLL2 := atn.NextTokens(next, recognizer.GetParserRuleContext())
- if expectingAtLL2.contains(currentSymbolType) {
- d.ReportMissingToken(recognizer)
- return true
- }
-
- return false
-}
-
-// SingleTokenDeletion implements the single-token deletion inline error recovery
-// strategy. It is called by [RecoverInline] to attempt to recover
-// from mismatched input. If this method returns nil, the parser and error
-// handler state will not have changed. If this method returns non-nil,
-// recognizer will not be in error recovery mode since the
-// returned token was a successful Match.
-//
-// If the single-token deletion is successful, this method calls
-// [ReportUnwantedToken] to Report the error, followed by
-// [Consume] to actually “delete” the extraneous token. Then,
-// before returning, [ReportMatch] is called to signal a successful
-// Match.
-//
-// The func returns the successfully Matched [Token] instance if single-token
-// deletion successfully recovers from the mismatched input, otherwise nil.
-func (d *DefaultErrorStrategy) SingleTokenDeletion(recognizer Parser) Token {
- NextTokenType := recognizer.GetTokenStream().LA(2)
- expecting := d.GetExpectedTokens(recognizer)
- if expecting.contains(NextTokenType) {
- d.ReportUnwantedToken(recognizer)
- // print("recoverFromMisMatchedToken deleting " \
- // + str(recognizer.GetTokenStream().LT(1)) \
- // + " since " + str(recognizer.GetTokenStream().LT(2)) \
- // + " is what we want", file=sys.stderr)
- recognizer.Consume() // simply delete extra token
- // we want to return the token we're actually Matching
- MatchedSymbol := recognizer.GetCurrentToken()
- d.ReportMatch(recognizer) // we know current token is correct
- return MatchedSymbol
- }
-
- return nil
-}
-
-// GetMissingSymbol conjures up a missing token during error recovery.
-//
-// The recognizer attempts to recover from single missing
-// symbols. But, actions might refer to that missing symbol.
-// For example:
-//
-// x=ID {f($x)}.
-//
-// The action clearly assumes
-// that there has been an identifier Matched previously and that
-// $x points at that token. If that token is missing, but
-// the next token in the stream is what we want we assume that
-// this token is missing, and we keep going. Because we
-// have to return some token to replace the missing token,
-// we have to conjure one up. This method gives the user control
-// over the tokens returned for missing tokens. Mostly,
-// you will want to create something special for identifier
-// tokens. For literals such as '{' and ',', the default
-// action in the parser or tree parser works. It simply creates
-// a [CommonToken] of the appropriate type. The text will be the token name.
-// If you need to change which tokens must be created by the lexer,
-// override this method to create the appropriate tokens.
-func (d *DefaultErrorStrategy) GetMissingSymbol(recognizer Parser) Token {
- currentSymbol := recognizer.GetCurrentToken()
- expecting := d.GetExpectedTokens(recognizer)
- expectedTokenType := expecting.first()
- var tokenText string
-
- if expectedTokenType == TokenEOF {
- tokenText = ""
- } else {
- ln := recognizer.GetLiteralNames()
- if expectedTokenType > 0 && expectedTokenType < len(ln) {
- tokenText = ""
- } else {
- tokenText = "" // TODO: matches the JS impl
- }
- }
- current := currentSymbol
- lookback := recognizer.GetTokenStream().LT(-1)
- if current.GetTokenType() == TokenEOF && lookback != nil {
- current = lookback
- }
-
- tf := recognizer.GetTokenFactory()
-
- return tf.Create(current.GetSource(), expectedTokenType, tokenText, TokenDefaultChannel, -1, -1, current.GetLine(), current.GetColumn())
-}
-
-func (d *DefaultErrorStrategy) GetExpectedTokens(recognizer Parser) *IntervalSet {
- return recognizer.GetExpectedTokens()
-}
-
-// GetTokenErrorDisplay determines how a token should be displayed in an error message.
-// The default is to display just the text, but during development you might
-// want to have a lot of information spit out. Override this func in that case
-// to use t.String() (which, for [CommonToken], dumps everything about
-// the token). This is better than forcing you to override a method in
-// your token objects because you don't have to go modify your lexer
-// so that it creates a new type.
-func (d *DefaultErrorStrategy) GetTokenErrorDisplay(t Token) string {
- if t == nil {
- return ""
- }
- s := t.GetText()
- if s == "" {
- if t.GetTokenType() == TokenEOF {
- s = ""
- } else {
- s = "<" + strconv.Itoa(t.GetTokenType()) + ">"
- }
- }
- return d.escapeWSAndQuote(s)
-}
-
-func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
- s = strings.Replace(s, "\t", "\\t", -1)
- s = strings.Replace(s, "\n", "\\n", -1)
- s = strings.Replace(s, "\r", "\\r", -1)
- return "'" + s + "'"
-}
-
-// GetErrorRecoverySet computes the error recovery set for the current rule. During
-// rule invocation, the parser pushes the set of tokens that can
-// follow that rule reference on the stack. This amounts to
-// computing FIRST of what follows the rule reference in the
-// enclosing rule. See LinearApproximator.FIRST().
-//
-// This local follow set only includes tokens
-// from within the rule i.e., the FIRST computation done by
-// ANTLR stops at the end of a rule.
-//
-// # Example
-//
-// When you find a "no viable alt exception", the input is not
-// consistent with any of the alternatives for rule r. The best
-// thing to do is to consume tokens until you see something that
-// can legally follow a call to r or any rule that called r.
-// You don't want the exact set of viable next tokens because the
-// input might just be missing a token--you might consume the
-// rest of the input looking for one of the missing tokens.
-//
-// Consider the grammar:
-//
-// a : '[' b ']'
-// | '(' b ')'
-// ;
-//
-// b : c '^' INT
-// ;
-//
-// c : ID
-// | INT
-// ;
-//
-// At each rule invocation, the set of tokens that could follow
-// that rule is pushed on a stack. Here are the various
-// context-sensitive follow sets:
-//
-// FOLLOW(b1_in_a) = FIRST(']') = ']'
-// FOLLOW(b2_in_a) = FIRST(')') = ')'
-// FOLLOW(c_in_b) = FIRST('^') = '^'
-//
-// Upon erroneous input “[]”, the call chain is
-//
-// a → b → c
-//
-// and, hence, the follow context stack is:
-//
-// Depth Follow set Start of rule execution
-// 0 a (from main())
-// 1 ']' b
-// 2 '^' c
-//
-// Notice that ')' is not included, because b would have to have
-// been called from a different context in rule a for ')' to be
-// included.
-//
-// For error recovery, we cannot consider FOLLOW(c)
-// (context-sensitive or otherwise). We need the combined set of
-// all context-sensitive FOLLOW sets - the set of all tokens that
-// could follow any reference in the call chain. We need to
-// reSync to one of those tokens. Note that FOLLOW(c)='^' and if
-// we reSync'd to that token, we'd consume until EOF. We need to
-// Sync to context-sensitive FOLLOWs for a, b, and c:
-//
-// {']','^'}
-//
-// In this case, for input "[]", LA(1) is ']' and in the set, so we would
-// not consume anything. After printing an error, rule c would
-// return normally. Rule b would not find the required '^' though.
-// At this point, it gets a mismatched token error and panics an
-// exception (since LA(1) is not in the viable following token
-// set). The rule exception handler tries to recover, but finds
-// the same recovery set and doesn't consume anything. Rule b
-// exits normally returning to rule a. Now it finds the ']' (and
-// with the successful Match exits errorRecovery mode).
-//
-// So, you can see that the parser walks up the call chain looking
-// for the token that was a member of the recovery set.
-//
-// Errors are not generated in errorRecovery mode.
-//
-// ANTLR's error recovery mechanism is based upon original ideas:
-//
-// [Algorithms + Data Structures = Programs] by Niklaus Wirth and
-// [A note on error recovery in recursive descent parsers].
-//
-// Later, Josef Grosch had some good ideas in [Efficient and Comfortable Error Recovery in Recursive Descent
-// Parsers]
-//
-// Like Grosch I implement context-sensitive FOLLOW sets that are combined at run-time upon error to avoid overhead
-// during parsing. Later, the runtime Sync was improved for loops/sub-rules see [Sync] docs
-//
-// [A note on error recovery in recursive descent parsers]: http://portal.acm.org/citation.cfm?id=947902.947905
-// [Algorithms + Data Structures = Programs]: https://t.ly/5QzgE
-// [Efficient and Comfortable Error Recovery in Recursive Descent Parsers]: ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip
-func (d *DefaultErrorStrategy) GetErrorRecoverySet(recognizer Parser) *IntervalSet {
- atn := recognizer.GetInterpreter().atn
- ctx := recognizer.GetParserRuleContext()
- recoverSet := NewIntervalSet()
- for ctx != nil && ctx.GetInvokingState() >= 0 {
- // compute what follows who invoked us
- invokingState := atn.states[ctx.GetInvokingState()]
- rt := invokingState.GetTransitions()[0]
- follow := atn.NextTokens(rt.(*RuleTransition).followState, nil)
- recoverSet.addSet(follow)
- ctx = ctx.GetParent().(ParserRuleContext)
- }
- recoverSet.removeOne(TokenEpsilon)
- return recoverSet
-}
-
-// Consume tokens until one Matches the given token set.//
-func (d *DefaultErrorStrategy) consumeUntil(recognizer Parser, set *IntervalSet) {
- ttype := recognizer.GetTokenStream().LA(1)
- for ttype != TokenEOF && !set.contains(ttype) {
- recognizer.Consume()
- ttype = recognizer.GetTokenStream().LA(1)
- }
-}
-
-// The BailErrorStrategy implementation of ANTLRErrorStrategy responds to syntax errors
-// by immediately canceling the parse operation with a
-// [ParseCancellationException]. The implementation ensures that the
-// [ParserRuleContext//exception] field is set for all parse tree nodes
-// that were not completed prior to encountering the error.
-//
-// This error strategy is useful in the following scenarios.
-//
-// - Two-stage parsing: This error strategy allows the first
-// stage of two-stage parsing to immediately terminate if an error is
-// encountered, and immediately fall back to the second stage. In addition to
-// avoiding wasted work by attempting to recover from errors here, the empty
-// implementation of [BailErrorStrategy.Sync] improves the performance of
-// the first stage.
-//
-// - Silent validation: When syntax errors are not being
-// Reported or logged, and the parse result is simply ignored if errors occur,
-// the [BailErrorStrategy] avoids wasting work on recovering from errors
-// when the result will be ignored either way.
-//
-// myparser.SetErrorHandler(NewBailErrorStrategy())
-//
-// See also: [Parser.SetErrorHandler(ANTLRErrorStrategy)]
-type BailErrorStrategy struct {
- *DefaultErrorStrategy
-}
-
-var _ ErrorStrategy = &BailErrorStrategy{}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewBailErrorStrategy() *BailErrorStrategy {
-
- b := new(BailErrorStrategy)
-
- b.DefaultErrorStrategy = NewDefaultErrorStrategy()
-
- return b
-}
-
-// Recover Instead of recovering from exception e, re-panic it wrapped
-// in a [ParseCancellationException] so it is not caught by the
-// rule func catches. Use Exception.GetCause() to get the
-// original [RecognitionException].
-func (b *BailErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
- context := recognizer.GetParserRuleContext()
- for context != nil {
- context.SetException(e)
- if parent, ok := context.GetParent().(ParserRuleContext); ok {
- context = parent
- } else {
- context = nil
- }
- }
- recognizer.SetError(NewParseCancellationException()) // TODO: we don't emit e properly
-}
-
-// RecoverInline makes sure we don't attempt to recover inline if the parser
-// successfully recovers, it won't panic an exception.
-func (b *BailErrorStrategy) RecoverInline(recognizer Parser) Token {
- b.Recover(recognizer, NewInputMisMatchException(recognizer))
-
- return nil
-}
-
-// Sync makes sure we don't attempt to recover from problems in sub-rules.
-func (b *BailErrorStrategy) Sync(_ Parser) {
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/errors.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/errors.go
deleted file mode 100644
index 8f0f2f60..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/errors.go
+++ /dev/null
@@ -1,259 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// The root of the ANTLR exception hierarchy. In general, ANTLR tracks just
-// 3 kinds of errors: prediction errors, failed predicate errors, and
-// mismatched input errors. In each case, the parser knows where it is
-// in the input, where it is in the ATN, the rule invocation stack,
-// and what kind of problem occurred.
-
-type RecognitionException interface {
- GetOffendingToken() Token
- GetMessage() string
- GetInputStream() IntStream
-}
-
-type BaseRecognitionException struct {
- message string
- recognizer Recognizer
- offendingToken Token
- offendingState int
- ctx RuleContext
- input IntStream
-}
-
-func NewBaseRecognitionException(message string, recognizer Recognizer, input IntStream, ctx RuleContext) *BaseRecognitionException {
-
- // todo
- // Error.call(this)
- //
- // if (!!Error.captureStackTrace) {
- // Error.captureStackTrace(this, RecognitionException)
- // } else {
- // stack := NewError().stack
- // }
- // TODO: may be able to use - "runtime" func Stack(buf []byte, all bool) int
-
- t := new(BaseRecognitionException)
-
- t.message = message
- t.recognizer = recognizer
- t.input = input
- t.ctx = ctx
-
- // The current Token when an error occurred. Since not all streams
- // support accessing symbols by index, we have to track the {@link Token}
- // instance itself.
- //
- t.offendingToken = nil
-
- // Get the ATN state number the parser was in at the time the error
- // occurred. For NoViableAltException and LexerNoViableAltException exceptions, this is the
- // DecisionState number. For others, it is the state whose outgoing edge we couldn't Match.
- //
- t.offendingState = -1
- if t.recognizer != nil {
- t.offendingState = t.recognizer.GetState()
- }
-
- return t
-}
-
-func (b *BaseRecognitionException) GetMessage() string {
- return b.message
-}
-
-func (b *BaseRecognitionException) GetOffendingToken() Token {
- return b.offendingToken
-}
-
-func (b *BaseRecognitionException) GetInputStream() IntStream {
- return b.input
-}
-
-// If the state number is not known, b method returns -1.
-
-// getExpectedTokens gets the set of input symbols which could potentially follow the
-// previously Matched symbol at the time this exception was raised.
-//
-// If the set of expected tokens is not known and could not be computed,
-// this method returns nil.
-//
-// The func returns the set of token types that could potentially follow the current
-// state in the {ATN}, or nil if the information is not available.
-
-func (b *BaseRecognitionException) getExpectedTokens() *IntervalSet {
- if b.recognizer != nil {
- return b.recognizer.GetATN().getExpectedTokens(b.offendingState, b.ctx)
- }
-
- return nil
-}
-
-func (b *BaseRecognitionException) String() string {
- return b.message
-}
-
-type LexerNoViableAltException struct {
- *BaseRecognitionException
-
- startIndex int
- deadEndConfigs *ATNConfigSet
-}
-
-func NewLexerNoViableAltException(lexer Lexer, input CharStream, startIndex int, deadEndConfigs *ATNConfigSet) *LexerNoViableAltException {
-
- l := new(LexerNoViableAltException)
-
- l.BaseRecognitionException = NewBaseRecognitionException("", lexer, input, nil)
-
- l.startIndex = startIndex
- l.deadEndConfigs = deadEndConfigs
-
- return l
-}
-
-func (l *LexerNoViableAltException) String() string {
- symbol := ""
- if l.startIndex >= 0 && l.startIndex < l.input.Size() {
- symbol = l.input.(CharStream).GetTextFromInterval(NewInterval(l.startIndex, l.startIndex))
- }
- return "LexerNoViableAltException" + symbol
-}
-
-type NoViableAltException struct {
- *BaseRecognitionException
-
- startToken Token
- offendingToken Token
- ctx ParserRuleContext
- deadEndConfigs *ATNConfigSet
-}
-
-// NewNoViableAltException creates an exception indicating that the parser could not decide which of two or more paths
-// to take based upon the remaining input. It tracks the starting token
-// of the offending input and also knows where the parser was
-// in the various paths when the error.
-//
-// Reported by [ReportNoViableAlternative]
-func NewNoViableAltException(recognizer Parser, input TokenStream, startToken Token, offendingToken Token, deadEndConfigs *ATNConfigSet, ctx ParserRuleContext) *NoViableAltException {
-
- if ctx == nil {
- ctx = recognizer.GetParserRuleContext()
- }
-
- if offendingToken == nil {
- offendingToken = recognizer.GetCurrentToken()
- }
-
- if startToken == nil {
- startToken = recognizer.GetCurrentToken()
- }
-
- if input == nil {
- input = recognizer.GetInputStream().(TokenStream)
- }
-
- n := new(NoViableAltException)
- n.BaseRecognitionException = NewBaseRecognitionException("", recognizer, input, ctx)
-
- // Which configurations did we try at input.Index() that couldn't Match
- // input.LT(1)
- n.deadEndConfigs = deadEndConfigs
-
- // The token object at the start index the input stream might
- // not be buffering tokens so get a reference to it.
- //
- // At the time the error occurred, of course the stream needs to keep a
- // buffer of all the tokens, but later we might not have access to those.
- n.startToken = startToken
- n.offendingToken = offendingToken
-
- return n
-}
-
-type InputMisMatchException struct {
- *BaseRecognitionException
-}
-
-// NewInputMisMatchException creates an exception that signifies any kind of mismatched input exceptions such as
-// when the current input does not Match the expected token.
-func NewInputMisMatchException(recognizer Parser) *InputMisMatchException {
-
- i := new(InputMisMatchException)
- i.BaseRecognitionException = NewBaseRecognitionException("", recognizer, recognizer.GetInputStream(), recognizer.GetParserRuleContext())
-
- i.offendingToken = recognizer.GetCurrentToken()
-
- return i
-
-}
-
-// FailedPredicateException indicates that a semantic predicate failed during validation. Validation of predicates
-// occurs when normally parsing the alternative just like Matching a token.
-// Disambiguating predicate evaluation occurs when we test a predicate during
-// prediction.
-type FailedPredicateException struct {
- *BaseRecognitionException
-
- ruleIndex int
- predicateIndex int
- predicate string
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewFailedPredicateException(recognizer Parser, predicate string, message string) *FailedPredicateException {
-
- f := new(FailedPredicateException)
-
- f.BaseRecognitionException = NewBaseRecognitionException(f.formatMessage(predicate, message), recognizer, recognizer.GetInputStream(), recognizer.GetParserRuleContext())
-
- s := recognizer.GetInterpreter().atn.states[recognizer.GetState()]
- trans := s.GetTransitions()[0]
- if trans2, ok := trans.(*PredicateTransition); ok {
- f.ruleIndex = trans2.ruleIndex
- f.predicateIndex = trans2.predIndex
- } else {
- f.ruleIndex = 0
- f.predicateIndex = 0
- }
- f.predicate = predicate
- f.offendingToken = recognizer.GetCurrentToken()
-
- return f
-}
-
-func (f *FailedPredicateException) formatMessage(predicate, message string) string {
- if message != "" {
- return message
- }
-
- return "failed predicate: {" + predicate + "}?"
-}
-
-type ParseCancellationException struct {
-}
-
-func (p ParseCancellationException) GetOffendingToken() Token {
- //TODO implement me
- panic("implement me")
-}
-
-func (p ParseCancellationException) GetMessage() string {
- //TODO implement me
- panic("implement me")
-}
-
-func (p ParseCancellationException) GetInputStream() IntStream {
- //TODO implement me
- panic("implement me")
-}
-
-func NewParseCancellationException() *ParseCancellationException {
- // Error.call(this)
- // Error.captureStackTrace(this, ParseCancellationException)
- return new(ParseCancellationException)
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/file_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/file_stream.go
deleted file mode 100644
index 5f65f809..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/file_stream.go
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "bufio"
- "os"
-)
-
-// This is an InputStream that is loaded from a file all at once
-// when you construct the object.
-
-type FileStream struct {
- InputStream
- filename string
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewFileStream(fileName string) (*FileStream, error) {
-
- f, err := os.Open(fileName)
- if err != nil {
- return nil, err
- }
-
- defer func(f *os.File) {
- errF := f.Close()
- if errF != nil {
- }
- }(f)
-
- reader := bufio.NewReader(f)
- fInfo, err := f.Stat()
- if err != nil {
- return nil, err
- }
-
- fs := &FileStream{
- InputStream: InputStream{
- index: 0,
- name: fileName,
- },
- filename: fileName,
- }
-
- // Pre-build the buffer and read runes efficiently
- //
- fs.data = make([]rune, 0, fInfo.Size())
- for {
- r, _, err := reader.ReadRune()
- if err != nil {
- break
- }
- fs.data = append(fs.data, r)
- }
- fs.size = len(fs.data) // Size in runes
-
- // All done.
- //
- return fs, nil
-}
-
-func (f *FileStream) GetSourceName() string {
- return f.filename
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/input_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/input_stream.go
deleted file mode 100644
index b737fe85..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/input_stream.go
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "bufio"
- "io"
-)
-
-type InputStream struct {
- name string
- index int
- data []rune
- size int
-}
-
-// NewIoStream creates a new input stream from the given io.Reader reader.
-// Note that the reader is read completely into memory and so it must actually
-// have a stopping point - you cannot pass in a reader on an open-ended source such
-// as a socket for instance.
-func NewIoStream(reader io.Reader) *InputStream {
-
- rReader := bufio.NewReader(reader)
-
- is := &InputStream{
- name: "",
- index: 0,
- }
-
- // Pre-build the buffer and read runes reasonably efficiently given that
- // we don't exactly know how big the input is.
- //
- is.data = make([]rune, 0, 512)
- for {
- r, _, err := rReader.ReadRune()
- if err != nil {
- break
- }
- is.data = append(is.data, r)
- }
- is.size = len(is.data) // number of runes
- return is
-}
-
-// NewInputStream creates a new input stream from the given string
-func NewInputStream(data string) *InputStream {
-
- is := &InputStream{
- name: "",
- index: 0,
- data: []rune(data), // This is actually the most efficient way
- }
- is.size = len(is.data) // number of runes, but we could also use len(data), which is efficient too
- return is
-}
-
-func (is *InputStream) reset() {
- is.index = 0
-}
-
-// Consume moves the input pointer to the next character in the input stream
-func (is *InputStream) Consume() {
- if is.index >= is.size {
- // assert is.LA(1) == TokenEOF
- panic("cannot consume EOF")
- }
- is.index++
-}
-
-// LA returns the character at the given offset from the start of the input stream
-func (is *InputStream) LA(offset int) int {
-
- if offset == 0 {
- return 0 // nil
- }
- if offset < 0 {
- offset++ // e.g., translate LA(-1) to use offset=0
- }
- pos := is.index + offset - 1
-
- if pos < 0 || pos >= is.size { // invalid
- return TokenEOF
- }
-
- return int(is.data[pos])
-}
-
-// LT returns the character at the given offset from the start of the input stream
-func (is *InputStream) LT(offset int) int {
- return is.LA(offset)
-}
-
-// Index returns the current offset in to the input stream
-func (is *InputStream) Index() int {
- return is.index
-}
-
-// Size returns the total number of characters in the input stream
-func (is *InputStream) Size() int {
- return is.size
-}
-
-// Mark does nothing here as we have entire buffer
-func (is *InputStream) Mark() int {
- return -1
-}
-
-// Release does nothing here as we have entire buffer
-func (is *InputStream) Release(_ int) {
-}
-
-// Seek the input point to the provided index offset
-func (is *InputStream) Seek(index int) {
- if index <= is.index {
- is.index = index // just jump don't update stream state (line,...)
- return
- }
- // seek forward
- is.index = intMin(index, is.size)
-}
-
-// GetText returns the text from the input stream from the start to the stop index
-func (is *InputStream) GetText(start int, stop int) string {
- if stop >= is.size {
- stop = is.size - 1
- }
- if start >= is.size {
- return ""
- }
-
- return string(is.data[start : stop+1])
-}
-
-// GetTextFromTokens returns the text from the input stream from the first character of the start token to the last
-// character of the stop token
-func (is *InputStream) GetTextFromTokens(start, stop Token) string {
- if start != nil && stop != nil {
- return is.GetTextFromInterval(NewInterval(start.GetTokenIndex(), stop.GetTokenIndex()))
- }
-
- return ""
-}
-
-func (is *InputStream) GetTextFromInterval(i Interval) string {
- return is.GetText(i.Start, i.Stop)
-}
-
-func (*InputStream) GetSourceName() string {
- return ""
-}
-
-// String returns the entire input stream as a string
-func (is *InputStream) String() string {
- return string(is.data)
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/int_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/int_stream.go
deleted file mode 100644
index 4778878b..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/int_stream.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-type IntStream interface {
- Consume()
- LA(int) int
- Mark() int
- Release(marker int)
- Index() int
- Seek(index int)
- Size() int
- GetSourceName() string
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/interval_set.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/interval_set.go
deleted file mode 100644
index cc506606..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/interval_set.go
+++ /dev/null
@@ -1,330 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "strconv"
- "strings"
-)
-
-type Interval struct {
- Start int
- Stop int
-}
-
-// NewInterval creates a new interval with the given start and stop values.
-func NewInterval(start, stop int) Interval {
- return Interval{
- Start: start,
- Stop: stop,
- }
-}
-
-// Contains returns true if the given item is contained within the interval.
-func (i Interval) Contains(item int) bool {
- return item >= i.Start && item < i.Stop
-}
-
-// String generates a string representation of the interval.
-func (i Interval) String() string {
- if i.Start == i.Stop-1 {
- return strconv.Itoa(i.Start)
- }
-
- return strconv.Itoa(i.Start) + ".." + strconv.Itoa(i.Stop-1)
-}
-
-// Length returns the length of the interval.
-func (i Interval) Length() int {
- return i.Stop - i.Start
-}
-
-// IntervalSet represents a collection of [Intervals], which may be read-only.
-type IntervalSet struct {
- intervals []Interval
- readOnly bool
-}
-
-// NewIntervalSet creates a new empty, writable, interval set.
-func NewIntervalSet() *IntervalSet {
-
- i := new(IntervalSet)
-
- i.intervals = nil
- i.readOnly = false
-
- return i
-}
-
-func (i *IntervalSet) Equals(other *IntervalSet) bool {
- if len(i.intervals) != len(other.intervals) {
- return false
- }
-
- for k, v := range i.intervals {
- if v.Start != other.intervals[k].Start || v.Stop != other.intervals[k].Stop {
- return false
- }
- }
-
- return true
-}
-
-func (i *IntervalSet) first() int {
- if len(i.intervals) == 0 {
- return TokenInvalidType
- }
-
- return i.intervals[0].Start
-}
-
-func (i *IntervalSet) addOne(v int) {
- i.addInterval(NewInterval(v, v+1))
-}
-
-func (i *IntervalSet) addRange(l, h int) {
- i.addInterval(NewInterval(l, h+1))
-}
-
-func (i *IntervalSet) addInterval(v Interval) {
- if i.intervals == nil {
- i.intervals = make([]Interval, 0)
- i.intervals = append(i.intervals, v)
- } else {
- // find insert pos
- for k, interval := range i.intervals {
- // distinct range -> insert
- if v.Stop < interval.Start {
- i.intervals = append(i.intervals[0:k], append([]Interval{v}, i.intervals[k:]...)...)
- return
- } else if v.Stop == interval.Start {
- i.intervals[k].Start = v.Start
- return
- } else if v.Start <= interval.Stop {
- i.intervals[k] = NewInterval(intMin(interval.Start, v.Start), intMax(interval.Stop, v.Stop))
-
- // if not applying to end, merge potential overlaps
- if k < len(i.intervals)-1 {
- l := i.intervals[k]
- r := i.intervals[k+1]
- // if r contained in l
- if l.Stop >= r.Stop {
- i.intervals = append(i.intervals[0:k+1], i.intervals[k+2:]...)
- } else if l.Stop >= r.Start { // partial overlap
- i.intervals[k] = NewInterval(l.Start, r.Stop)
- i.intervals = append(i.intervals[0:k+1], i.intervals[k+2:]...)
- }
- }
- return
- }
- }
- // greater than any exiting
- i.intervals = append(i.intervals, v)
- }
-}
-
-func (i *IntervalSet) addSet(other *IntervalSet) *IntervalSet {
- if other.intervals != nil {
- for k := 0; k < len(other.intervals); k++ {
- i2 := other.intervals[k]
- i.addInterval(NewInterval(i2.Start, i2.Stop))
- }
- }
- return i
-}
-
-func (i *IntervalSet) complement(start int, stop int) *IntervalSet {
- result := NewIntervalSet()
- result.addInterval(NewInterval(start, stop+1))
- for j := 0; j < len(i.intervals); j++ {
- result.removeRange(i.intervals[j])
- }
- return result
-}
-
-func (i *IntervalSet) contains(item int) bool {
- if i.intervals == nil {
- return false
- }
- for k := 0; k < len(i.intervals); k++ {
- if i.intervals[k].Contains(item) {
- return true
- }
- }
- return false
-}
-
-func (i *IntervalSet) length() int {
- iLen := 0
-
- for _, v := range i.intervals {
- iLen += v.Length()
- }
-
- return iLen
-}
-
-func (i *IntervalSet) removeRange(v Interval) {
- if v.Start == v.Stop-1 {
- i.removeOne(v.Start)
- } else if i.intervals != nil {
- k := 0
- for n := 0; n < len(i.intervals); n++ {
- ni := i.intervals[k]
- // intervals are ordered
- if v.Stop <= ni.Start {
- return
- } else if v.Start > ni.Start && v.Stop < ni.Stop {
- i.intervals[k] = NewInterval(ni.Start, v.Start)
- x := NewInterval(v.Stop, ni.Stop)
- // i.intervals.splice(k, 0, x)
- i.intervals = append(i.intervals[0:k], append([]Interval{x}, i.intervals[k:]...)...)
- return
- } else if v.Start <= ni.Start && v.Stop >= ni.Stop {
- // i.intervals.splice(k, 1)
- i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...)
- k = k - 1 // need another pass
- } else if v.Start < ni.Stop {
- i.intervals[k] = NewInterval(ni.Start, v.Start)
- } else if v.Stop < ni.Stop {
- i.intervals[k] = NewInterval(v.Stop, ni.Stop)
- }
- k++
- }
- }
-}
-
-func (i *IntervalSet) removeOne(v int) {
- if i.intervals != nil {
- for k := 0; k < len(i.intervals); k++ {
- ki := i.intervals[k]
- // intervals i ordered
- if v < ki.Start {
- return
- } else if v == ki.Start && v == ki.Stop-1 {
- // i.intervals.splice(k, 1)
- i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...)
- return
- } else if v == ki.Start {
- i.intervals[k] = NewInterval(ki.Start+1, ki.Stop)
- return
- } else if v == ki.Stop-1 {
- i.intervals[k] = NewInterval(ki.Start, ki.Stop-1)
- return
- } else if v < ki.Stop-1 {
- x := NewInterval(ki.Start, v)
- ki.Start = v + 1
- // i.intervals.splice(k, 0, x)
- i.intervals = append(i.intervals[0:k], append([]Interval{x}, i.intervals[k:]...)...)
- return
- }
- }
- }
-}
-
-func (i *IntervalSet) String() string {
- return i.StringVerbose(nil, nil, false)
-}
-
-func (i *IntervalSet) StringVerbose(literalNames []string, symbolicNames []string, elemsAreChar bool) string {
-
- if i.intervals == nil {
- return "{}"
- } else if literalNames != nil || symbolicNames != nil {
- return i.toTokenString(literalNames, symbolicNames)
- } else if elemsAreChar {
- return i.toCharString()
- }
-
- return i.toIndexString()
-}
-
-func (i *IntervalSet) GetIntervals() []Interval {
- return i.intervals
-}
-
-func (i *IntervalSet) toCharString() string {
- names := make([]string, len(i.intervals))
-
- var sb strings.Builder
-
- for j := 0; j < len(i.intervals); j++ {
- v := i.intervals[j]
- if v.Stop == v.Start+1 {
- if v.Start == TokenEOF {
- names = append(names, "")
- } else {
- sb.WriteByte('\'')
- sb.WriteRune(rune(v.Start))
- sb.WriteByte('\'')
- names = append(names, sb.String())
- sb.Reset()
- }
- } else {
- sb.WriteByte('\'')
- sb.WriteRune(rune(v.Start))
- sb.WriteString("'..'")
- sb.WriteRune(rune(v.Stop - 1))
- sb.WriteByte('\'')
- names = append(names, sb.String())
- sb.Reset()
- }
- }
- if len(names) > 1 {
- return "{" + strings.Join(names, ", ") + "}"
- }
-
- return names[0]
-}
-
-func (i *IntervalSet) toIndexString() string {
-
- names := make([]string, 0)
- for j := 0; j < len(i.intervals); j++ {
- v := i.intervals[j]
- if v.Stop == v.Start+1 {
- if v.Start == TokenEOF {
- names = append(names, "")
- } else {
- names = append(names, strconv.Itoa(v.Start))
- }
- } else {
- names = append(names, strconv.Itoa(v.Start)+".."+strconv.Itoa(v.Stop-1))
- }
- }
- if len(names) > 1 {
- return "{" + strings.Join(names, ", ") + "}"
- }
-
- return names[0]
-}
-
-func (i *IntervalSet) toTokenString(literalNames []string, symbolicNames []string) string {
- names := make([]string, 0)
- for _, v := range i.intervals {
- for j := v.Start; j < v.Stop; j++ {
- names = append(names, i.elementName(literalNames, symbolicNames, j))
- }
- }
- if len(names) > 1 {
- return "{" + strings.Join(names, ", ") + "}"
- }
-
- return names[0]
-}
-
-func (i *IntervalSet) elementName(literalNames []string, symbolicNames []string, a int) string {
- if a == TokenEOF {
- return ""
- } else if a == TokenEpsilon {
- return ""
- } else {
- if a < len(literalNames) && literalNames[a] != "" {
- return literalNames[a]
- }
-
- return symbolicNames[a]
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/jcollect.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/jcollect.go
deleted file mode 100644
index ceccd96d..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/jcollect.go
+++ /dev/null
@@ -1,685 +0,0 @@
-package antlr
-
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-import (
- "container/list"
- "runtime/debug"
- "sort"
- "sync"
-)
-
-// Collectable is an interface that a struct should implement if it is to be
-// usable as a key in these collections.
-type Collectable[T any] interface {
- Hash() int
- Equals(other Collectable[T]) bool
-}
-
-type Comparator[T any] interface {
- Hash1(o T) int
- Equals2(T, T) bool
-}
-
-type CollectionSource int
-type CollectionDescriptor struct {
- SybolicName string
- Description string
-}
-
-const (
- UnknownCollection CollectionSource = iota
- ATNConfigLookupCollection
- ATNStateCollection
- DFAStateCollection
- ATNConfigCollection
- PredictionContextCollection
- SemanticContextCollection
- ClosureBusyCollection
- PredictionVisitedCollection
- MergeCacheCollection
- PredictionContextCacheCollection
- AltSetCollection
- ReachSetCollection
-)
-
-var CollectionDescriptors = map[CollectionSource]CollectionDescriptor{
- UnknownCollection: {
- SybolicName: "UnknownCollection",
- Description: "Unknown collection type. Only used if the target author thought it was an unimportant collection.",
- },
- ATNConfigCollection: {
- SybolicName: "ATNConfigCollection",
- Description: "ATNConfig collection. Used to store the ATNConfigs for a particular state in the ATN." +
- "For instance, it is used to store the results of the closure() operation in the ATN.",
- },
- ATNConfigLookupCollection: {
- SybolicName: "ATNConfigLookupCollection",
- Description: "ATNConfigLookup collection. Used to store the ATNConfigs for a particular state in the ATN." +
- "This is used to prevent duplicating equivalent states in an ATNConfigurationSet.",
- },
- ATNStateCollection: {
- SybolicName: "ATNStateCollection",
- Description: "ATNState collection. This is used to store the states of the ATN.",
- },
- DFAStateCollection: {
- SybolicName: "DFAStateCollection",
- Description: "DFAState collection. This is used to store the states of the DFA.",
- },
- PredictionContextCollection: {
- SybolicName: "PredictionContextCollection",
- Description: "PredictionContext collection. This is used to store the prediction contexts of the ATN and cache computes.",
- },
- SemanticContextCollection: {
- SybolicName: "SemanticContextCollection",
- Description: "SemanticContext collection. This is used to store the semantic contexts of the ATN.",
- },
- ClosureBusyCollection: {
- SybolicName: "ClosureBusyCollection",
- Description: "ClosureBusy collection. This is used to check and prevent infinite recursion right recursive rules." +
- "It stores ATNConfigs that are currently being processed in the closure() operation.",
- },
- PredictionVisitedCollection: {
- SybolicName: "PredictionVisitedCollection",
- Description: "A map that records whether we have visited a particular context when searching through cached entries.",
- },
- MergeCacheCollection: {
- SybolicName: "MergeCacheCollection",
- Description: "A map that records whether we have already merged two particular contexts and can save effort by not repeating it.",
- },
- PredictionContextCacheCollection: {
- SybolicName: "PredictionContextCacheCollection",
- Description: "A map that records whether we have already created a particular context and can save effort by not computing it again.",
- },
- AltSetCollection: {
- SybolicName: "AltSetCollection",
- Description: "Used to eliminate duplicate alternatives in an ATN config set.",
- },
- ReachSetCollection: {
- SybolicName: "ReachSetCollection",
- Description: "Used as merge cache to prevent us needing to compute the merge of two states if we have already done it.",
- },
-}
-
-// JStore implements a container that allows the use of a struct to calculate the key
-// for a collection of values akin to map. This is not meant to be a full-blown HashMap but just
-// serve the needs of the ANTLR Go runtime.
-//
-// For ease of porting the logic of the runtime from the master target (Java), this collection
-// operates in a similar way to Java, in that it can use any struct that supplies a Hash() and Equals()
-// function as the key. The values are stored in a standard go map which internally is a form of hashmap
-// itself, the key for the go map is the hash supplied by the key object. The collection is able to deal with
-// hash conflicts by using a simple slice of values associated with the hash code indexed bucket. That isn't
-// particularly efficient, but it is simple, and it works. As this is specifically for the ANTLR runtime, and
-// we understand the requirements, then this is fine - this is not a general purpose collection.
-type JStore[T any, C Comparator[T]] struct {
- store map[int][]T
- len int
- comparator Comparator[T]
- stats *JStatRec
-}
-
-func NewJStore[T any, C Comparator[T]](comparator Comparator[T], cType CollectionSource, desc string) *JStore[T, C] {
-
- if comparator == nil {
- panic("comparator cannot be nil")
- }
-
- s := &JStore[T, C]{
- store: make(map[int][]T, 1),
- comparator: comparator,
- }
- if collectStats {
- s.stats = &JStatRec{
- Source: cType,
- Description: desc,
- }
-
- // Track where we created it from if we are being asked to do so
- if runtimeConfig.statsTraceStacks {
- s.stats.CreateStack = debug.Stack()
- }
- Statistics.AddJStatRec(s.stats)
- }
- return s
-}
-
-// Put will store given value in the collection. Note that the key for storage is generated from
-// the value itself - this is specifically because that is what ANTLR needs - this would not be useful
-// as any kind of general collection.
-//
-// If the key has a hash conflict, then the value will be added to the slice of values associated with the
-// hash, unless the value is already in the slice, in which case the existing value is returned. Value equivalence is
-// tested by calling the equals() method on the key.
-//
-// # If the given value is already present in the store, then the existing value is returned as v and exists is set to true
-//
-// If the given value is not present in the store, then the value is added to the store and returned as v and exists is set to false.
-func (s *JStore[T, C]) Put(value T) (v T, exists bool) {
-
- if collectStats {
- s.stats.Puts++
- }
- kh := s.comparator.Hash1(value)
-
- var hClash bool
- for _, v1 := range s.store[kh] {
- hClash = true
- if s.comparator.Equals2(value, v1) {
- if collectStats {
- s.stats.PutHits++
- s.stats.PutHashConflicts++
- }
- return v1, true
- }
- if collectStats {
- s.stats.PutMisses++
- }
- }
- if collectStats && hClash {
- s.stats.PutHashConflicts++
- }
- s.store[kh] = append(s.store[kh], value)
-
- if collectStats {
- if len(s.store[kh]) > s.stats.MaxSlotSize {
- s.stats.MaxSlotSize = len(s.store[kh])
- }
- }
- s.len++
- if collectStats {
- s.stats.CurSize = s.len
- if s.len > s.stats.MaxSize {
- s.stats.MaxSize = s.len
- }
- }
- return value, false
-}
-
-// Get will return the value associated with the key - the type of the key is the same type as the value
-// which would not generally be useful, but this is a specific thing for ANTLR where the key is
-// generated using the object we are going to store.
-func (s *JStore[T, C]) Get(key T) (T, bool) {
- if collectStats {
- s.stats.Gets++
- }
- kh := s.comparator.Hash1(key)
- var hClash bool
- for _, v := range s.store[kh] {
- hClash = true
- if s.comparator.Equals2(key, v) {
- if collectStats {
- s.stats.GetHits++
- s.stats.GetHashConflicts++
- }
- return v, true
- }
- if collectStats {
- s.stats.GetMisses++
- }
- }
- if collectStats {
- if hClash {
- s.stats.GetHashConflicts++
- }
- s.stats.GetNoEnt++
- }
- return key, false
-}
-
-// Contains returns true if the given key is present in the store
-func (s *JStore[T, C]) Contains(key T) bool {
- _, present := s.Get(key)
- return present
-}
-
-func (s *JStore[T, C]) SortedSlice(less func(i, j T) bool) []T {
- vs := make([]T, 0, len(s.store))
- for _, v := range s.store {
- vs = append(vs, v...)
- }
- sort.Slice(vs, func(i, j int) bool {
- return less(vs[i], vs[j])
- })
-
- return vs
-}
-
-func (s *JStore[T, C]) Each(f func(T) bool) {
- for _, e := range s.store {
- for _, v := range e {
- f(v)
- }
- }
-}
-
-func (s *JStore[T, C]) Len() int {
- return s.len
-}
-
-func (s *JStore[T, C]) Values() []T {
- vs := make([]T, 0, len(s.store))
- for _, e := range s.store {
- vs = append(vs, e...)
- }
- return vs
-}
-
-type entry[K, V any] struct {
- key K
- val V
-}
-
-type JMap[K, V any, C Comparator[K]] struct {
- store map[int][]*entry[K, V]
- len int
- comparator Comparator[K]
- stats *JStatRec
-}
-
-func NewJMap[K, V any, C Comparator[K]](comparator Comparator[K], cType CollectionSource, desc string) *JMap[K, V, C] {
- m := &JMap[K, V, C]{
- store: make(map[int][]*entry[K, V], 1),
- comparator: comparator,
- }
- if collectStats {
- m.stats = &JStatRec{
- Source: cType,
- Description: desc,
- }
- // Track where we created it from if we are being asked to do so
- if runtimeConfig.statsTraceStacks {
- m.stats.CreateStack = debug.Stack()
- }
- Statistics.AddJStatRec(m.stats)
- }
- return m
-}
-
-func (m *JMap[K, V, C]) Put(key K, val V) (V, bool) {
- if collectStats {
- m.stats.Puts++
- }
- kh := m.comparator.Hash1(key)
-
- var hClash bool
- for _, e := range m.store[kh] {
- hClash = true
- if m.comparator.Equals2(e.key, key) {
- if collectStats {
- m.stats.PutHits++
- m.stats.PutHashConflicts++
- }
- return e.val, true
- }
- if collectStats {
- m.stats.PutMisses++
- }
- }
- if collectStats {
- if hClash {
- m.stats.PutHashConflicts++
- }
- }
- m.store[kh] = append(m.store[kh], &entry[K, V]{key, val})
- if collectStats {
- if len(m.store[kh]) > m.stats.MaxSlotSize {
- m.stats.MaxSlotSize = len(m.store[kh])
- }
- }
- m.len++
- if collectStats {
- m.stats.CurSize = m.len
- if m.len > m.stats.MaxSize {
- m.stats.MaxSize = m.len
- }
- }
- return val, false
-}
-
-func (m *JMap[K, V, C]) Values() []V {
- vs := make([]V, 0, len(m.store))
- for _, e := range m.store {
- for _, v := range e {
- vs = append(vs, v.val)
- }
- }
- return vs
-}
-
-func (m *JMap[K, V, C]) Get(key K) (V, bool) {
- if collectStats {
- m.stats.Gets++
- }
- var none V
- kh := m.comparator.Hash1(key)
- var hClash bool
- for _, e := range m.store[kh] {
- hClash = true
- if m.comparator.Equals2(e.key, key) {
- if collectStats {
- m.stats.GetHits++
- m.stats.GetHashConflicts++
- }
- return e.val, true
- }
- if collectStats {
- m.stats.GetMisses++
- }
- }
- if collectStats {
- if hClash {
- m.stats.GetHashConflicts++
- }
- m.stats.GetNoEnt++
- }
- return none, false
-}
-
-func (m *JMap[K, V, C]) Len() int {
- return m.len
-}
-
-func (m *JMap[K, V, C]) Delete(key K) {
- kh := m.comparator.Hash1(key)
- for i, e := range m.store[kh] {
- if m.comparator.Equals2(e.key, key) {
- m.store[kh] = append(m.store[kh][:i], m.store[kh][i+1:]...)
- m.len--
- return
- }
- }
-}
-
-func (m *JMap[K, V, C]) Clear() {
- m.store = make(map[int][]*entry[K, V])
-}
-
-type JPCMap struct {
- store *JMap[*PredictionContext, *JMap[*PredictionContext, *PredictionContext, *ObjEqComparator[*PredictionContext]], *ObjEqComparator[*PredictionContext]]
- size int
- stats *JStatRec
-}
-
-func NewJPCMap(cType CollectionSource, desc string) *JPCMap {
- m := &JPCMap{
- store: NewJMap[*PredictionContext, *JMap[*PredictionContext, *PredictionContext, *ObjEqComparator[*PredictionContext]], *ObjEqComparator[*PredictionContext]](pContextEqInst, cType, desc),
- }
- if collectStats {
- m.stats = &JStatRec{
- Source: cType,
- Description: desc,
- }
- // Track where we created it from if we are being asked to do so
- if runtimeConfig.statsTraceStacks {
- m.stats.CreateStack = debug.Stack()
- }
- Statistics.AddJStatRec(m.stats)
- }
- return m
-}
-
-func (pcm *JPCMap) Get(k1, k2 *PredictionContext) (*PredictionContext, bool) {
- if collectStats {
- pcm.stats.Gets++
- }
- // Do we have a map stored by k1?
- //
- m2, present := pcm.store.Get(k1)
- if present {
- if collectStats {
- pcm.stats.GetHits++
- }
- // We found a map of values corresponding to k1, so now we need to look up k2 in that map
- //
- return m2.Get(k2)
- }
- if collectStats {
- pcm.stats.GetMisses++
- }
- return nil, false
-}
-
-func (pcm *JPCMap) Put(k1, k2, v *PredictionContext) {
-
- if collectStats {
- pcm.stats.Puts++
- }
- // First does a map already exist for k1?
- //
- if m2, present := pcm.store.Get(k1); present {
- if collectStats {
- pcm.stats.PutHits++
- }
- _, present = m2.Put(k2, v)
- if !present {
- pcm.size++
- if collectStats {
- pcm.stats.CurSize = pcm.size
- if pcm.size > pcm.stats.MaxSize {
- pcm.stats.MaxSize = pcm.size
- }
- }
- }
- } else {
- // No map found for k1, so we create it, add in our value, then store is
- //
- if collectStats {
- pcm.stats.PutMisses++
- m2 = NewJMap[*PredictionContext, *PredictionContext, *ObjEqComparator[*PredictionContext]](pContextEqInst, pcm.stats.Source, pcm.stats.Description+" map entry")
- } else {
- m2 = NewJMap[*PredictionContext, *PredictionContext, *ObjEqComparator[*PredictionContext]](pContextEqInst, PredictionContextCacheCollection, "map entry")
- }
-
- m2.Put(k2, v)
- pcm.store.Put(k1, m2)
- pcm.size++
- }
-}
-
-type JPCMap2 struct {
- store map[int][]JPCEntry
- size int
- stats *JStatRec
-}
-
-type JPCEntry struct {
- k1, k2, v *PredictionContext
-}
-
-func NewJPCMap2(cType CollectionSource, desc string) *JPCMap2 {
- m := &JPCMap2{
- store: make(map[int][]JPCEntry, 1000),
- }
- if collectStats {
- m.stats = &JStatRec{
- Source: cType,
- Description: desc,
- }
- // Track where we created it from if we are being asked to do so
- if runtimeConfig.statsTraceStacks {
- m.stats.CreateStack = debug.Stack()
- }
- Statistics.AddJStatRec(m.stats)
- }
- return m
-}
-
-func dHash(k1, k2 *PredictionContext) int {
- return k1.cachedHash*31 + k2.cachedHash
-}
-
-func (pcm *JPCMap2) Get(k1, k2 *PredictionContext) (*PredictionContext, bool) {
- if collectStats {
- pcm.stats.Gets++
- }
-
- h := dHash(k1, k2)
- var hClash bool
- for _, e := range pcm.store[h] {
- hClash = true
- if e.k1.Equals(k1) && e.k2.Equals(k2) {
- if collectStats {
- pcm.stats.GetHits++
- pcm.stats.GetHashConflicts++
- }
- return e.v, true
- }
- if collectStats {
- pcm.stats.GetMisses++
- }
- }
- if collectStats {
- if hClash {
- pcm.stats.GetHashConflicts++
- }
- pcm.stats.GetNoEnt++
- }
- return nil, false
-}
-
-func (pcm *JPCMap2) Put(k1, k2, v *PredictionContext) (*PredictionContext, bool) {
- if collectStats {
- pcm.stats.Puts++
- }
- h := dHash(k1, k2)
- var hClash bool
- for _, e := range pcm.store[h] {
- hClash = true
- if e.k1.Equals(k1) && e.k2.Equals(k2) {
- if collectStats {
- pcm.stats.PutHits++
- pcm.stats.PutHashConflicts++
- }
- return e.v, true
- }
- if collectStats {
- pcm.stats.PutMisses++
- }
- }
- if collectStats {
- if hClash {
- pcm.stats.PutHashConflicts++
- }
- }
- pcm.store[h] = append(pcm.store[h], JPCEntry{k1, k2, v})
- pcm.size++
- if collectStats {
- pcm.stats.CurSize = pcm.size
- if pcm.size > pcm.stats.MaxSize {
- pcm.stats.MaxSize = pcm.size
- }
- }
- return nil, false
-}
-
-type VisitEntry struct {
- k *PredictionContext
- v *PredictionContext
-}
-type VisitRecord struct {
- store map[*PredictionContext]*PredictionContext
- len int
- stats *JStatRec
-}
-
-type VisitList struct {
- cache *list.List
- lock sync.RWMutex
-}
-
-var visitListPool = VisitList{
- cache: list.New(),
- lock: sync.RWMutex{},
-}
-
-// NewVisitRecord returns a new VisitRecord instance from the pool if available.
-// Note that this "map" uses a pointer as a key because we are emulating the behavior of
-// IdentityHashMap in Java, which uses the `==` operator to compare whether the keys are equal,
-// which means is the key the same reference to an object rather than is it .equals() to another
-// object.
-func NewVisitRecord() *VisitRecord {
- visitListPool.lock.Lock()
- el := visitListPool.cache.Front()
- defer visitListPool.lock.Unlock()
- var vr *VisitRecord
- if el == nil {
- vr = &VisitRecord{
- store: make(map[*PredictionContext]*PredictionContext),
- }
- if collectStats {
- vr.stats = &JStatRec{
- Source: PredictionContextCacheCollection,
- Description: "VisitRecord",
- }
- // Track where we created it from if we are being asked to do so
- if runtimeConfig.statsTraceStacks {
- vr.stats.CreateStack = debug.Stack()
- }
- }
- } else {
- vr = el.Value.(*VisitRecord)
- visitListPool.cache.Remove(el)
- vr.store = make(map[*PredictionContext]*PredictionContext)
- }
- if collectStats {
- Statistics.AddJStatRec(vr.stats)
- }
- return vr
-}
-
-func (vr *VisitRecord) Release() {
- vr.len = 0
- vr.store = nil
- if collectStats {
- vr.stats.MaxSize = 0
- vr.stats.CurSize = 0
- vr.stats.Gets = 0
- vr.stats.GetHits = 0
- vr.stats.GetMisses = 0
- vr.stats.GetHashConflicts = 0
- vr.stats.GetNoEnt = 0
- vr.stats.Puts = 0
- vr.stats.PutHits = 0
- vr.stats.PutMisses = 0
- vr.stats.PutHashConflicts = 0
- vr.stats.MaxSlotSize = 0
- }
- visitListPool.lock.Lock()
- visitListPool.cache.PushBack(vr)
- visitListPool.lock.Unlock()
-}
-
-func (vr *VisitRecord) Get(k *PredictionContext) (*PredictionContext, bool) {
- if collectStats {
- vr.stats.Gets++
- }
- v := vr.store[k]
- if v != nil {
- if collectStats {
- vr.stats.GetHits++
- }
- return v, true
- }
- if collectStats {
- vr.stats.GetNoEnt++
- }
- return nil, false
-}
-
-func (vr *VisitRecord) Put(k, v *PredictionContext) (*PredictionContext, bool) {
- if collectStats {
- vr.stats.Puts++
- }
- vr.store[k] = v
- vr.len++
- if collectStats {
- vr.stats.CurSize = vr.len
- if vr.len > vr.stats.MaxSize {
- vr.stats.MaxSize = vr.len
- }
- }
- return v, false
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer.go
deleted file mode 100644
index 3c7896a9..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer.go
+++ /dev/null
@@ -1,426 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
-)
-
-// A lexer is recognizer that draws input symbols from a character stream.
-// lexer grammars result in a subclass of this object. A Lexer object
-// uses simplified Match() and error recovery mechanisms in the interest
-// of speed.
-///
-
-type Lexer interface {
- TokenSource
- Recognizer
-
- Emit() Token
-
- SetChannel(int)
- PushMode(int)
- PopMode() int
- SetType(int)
- SetMode(int)
-}
-
-type BaseLexer struct {
- *BaseRecognizer
-
- Interpreter ILexerATNSimulator
- TokenStartCharIndex int
- TokenStartLine int
- TokenStartColumn int
- ActionType int
- Virt Lexer // The most derived lexer implementation. Allows virtual method calls.
-
- input CharStream
- factory TokenFactory
- tokenFactorySourcePair *TokenSourceCharStreamPair
- token Token
- hitEOF bool
- channel int
- thetype int
- modeStack IntStack
- mode int
- text string
-}
-
-func NewBaseLexer(input CharStream) *BaseLexer {
-
- lexer := new(BaseLexer)
-
- lexer.BaseRecognizer = NewBaseRecognizer()
-
- lexer.input = input
- lexer.factory = CommonTokenFactoryDEFAULT
- lexer.tokenFactorySourcePair = &TokenSourceCharStreamPair{lexer, input}
-
- lexer.Virt = lexer
-
- lexer.Interpreter = nil // child classes must populate it
-
- // The goal of all lexer rules/methods is to create a token object.
- // l is an instance variable as multiple rules may collaborate to
- // create a single token. NextToken will return l object after
- // Matching lexer rule(s). If you subclass to allow multiple token
- // emissions, then set l to the last token to be Matched or
- // something non nil so that the auto token emit mechanism will not
- // emit another token.
- lexer.token = nil
-
- // What character index in the stream did the current token start at?
- // Needed, for example, to get the text for current token. Set at
- // the start of NextToken.
- lexer.TokenStartCharIndex = -1
-
- // The line on which the first character of the token resides///
- lexer.TokenStartLine = -1
-
- // The character position of first character within the line///
- lexer.TokenStartColumn = -1
-
- // Once we see EOF on char stream, next token will be EOF.
- // If you have DONE : EOF then you see DONE EOF.
- lexer.hitEOF = false
-
- // The channel number for the current token///
- lexer.channel = TokenDefaultChannel
-
- // The token type for the current token///
- lexer.thetype = TokenInvalidType
-
- lexer.modeStack = make([]int, 0)
- lexer.mode = LexerDefaultMode
-
- // You can set the text for the current token to override what is in
- // the input char buffer. Use setText() or can set l instance var.
- // /
- lexer.text = ""
-
- return lexer
-}
-
-const (
- LexerDefaultMode = 0
- LexerMore = -2
- LexerSkip = -3
-)
-
-//goland:noinspection GoUnusedConst
-const (
- LexerDefaultTokenChannel = TokenDefaultChannel
- LexerHidden = TokenHiddenChannel
- LexerMinCharValue = 0x0000
- LexerMaxCharValue = 0x10FFFF
-)
-
-func (b *BaseLexer) Reset() {
- // wack Lexer state variables
- if b.input != nil {
- b.input.Seek(0) // rewind the input
- }
- b.token = nil
- b.thetype = TokenInvalidType
- b.channel = TokenDefaultChannel
- b.TokenStartCharIndex = -1
- b.TokenStartColumn = -1
- b.TokenStartLine = -1
- b.text = ""
-
- b.hitEOF = false
- b.mode = LexerDefaultMode
- b.modeStack = make([]int, 0)
-
- b.Interpreter.reset()
-}
-
-func (b *BaseLexer) GetInterpreter() ILexerATNSimulator {
- return b.Interpreter
-}
-
-func (b *BaseLexer) GetInputStream() CharStream {
- return b.input
-}
-
-func (b *BaseLexer) GetSourceName() string {
- return b.GrammarFileName
-}
-
-func (b *BaseLexer) SetChannel(v int) {
- b.channel = v
-}
-
-func (b *BaseLexer) GetTokenFactory() TokenFactory {
- return b.factory
-}
-
-func (b *BaseLexer) setTokenFactory(f TokenFactory) {
- b.factory = f
-}
-
-func (b *BaseLexer) safeMatch() (ret int) {
- defer func() {
- if e := recover(); e != nil {
- if re, ok := e.(RecognitionException); ok {
- b.notifyListeners(re) // Report error
- b.Recover(re)
- ret = LexerSkip // default
- }
- }
- }()
-
- return b.Interpreter.Match(b.input, b.mode)
-}
-
-// NextToken returns a token from the lexer input source i.e., Match a token on the source char stream.
-func (b *BaseLexer) NextToken() Token {
- if b.input == nil {
- panic("NextToken requires a non-nil input stream.")
- }
-
- tokenStartMarker := b.input.Mark()
-
- // previously in finally block
- defer func() {
- // make sure we release marker after Match or
- // unbuffered char stream will keep buffering
- b.input.Release(tokenStartMarker)
- }()
-
- for {
- if b.hitEOF {
- b.EmitEOF()
- return b.token
- }
- b.token = nil
- b.channel = TokenDefaultChannel
- b.TokenStartCharIndex = b.input.Index()
- b.TokenStartColumn = b.Interpreter.GetCharPositionInLine()
- b.TokenStartLine = b.Interpreter.GetLine()
- b.text = ""
- continueOuter := false
- for {
- b.thetype = TokenInvalidType
-
- ttype := b.safeMatch()
-
- if b.input.LA(1) == TokenEOF {
- b.hitEOF = true
- }
- if b.thetype == TokenInvalidType {
- b.thetype = ttype
- }
- if b.thetype == LexerSkip {
- continueOuter = true
- break
- }
- if b.thetype != LexerMore {
- break
- }
- }
-
- if continueOuter {
- continue
- }
- if b.token == nil {
- b.Virt.Emit()
- }
- return b.token
- }
-}
-
-// Skip instructs the lexer to Skip creating a token for current lexer rule
-// and look for another token. [NextToken] knows to keep looking when
-// a lexer rule finishes with token set to [SKIPTOKEN]. Recall that
-// if token==nil at end of any token rule, it creates one for you
-// and emits it.
-func (b *BaseLexer) Skip() {
- b.thetype = LexerSkip
-}
-
-func (b *BaseLexer) More() {
- b.thetype = LexerMore
-}
-
-// SetMode changes the lexer to a new mode. The lexer will use this mode from hereon in and the rules for that mode
-// will be in force.
-func (b *BaseLexer) SetMode(m int) {
- b.mode = m
-}
-
-// PushMode saves the current lexer mode so that it can be restored later. See [PopMode], then sets the
-// current lexer mode to the supplied mode m.
-func (b *BaseLexer) PushMode(m int) {
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("pushMode " + strconv.Itoa(m))
- }
- b.modeStack.Push(b.mode)
- b.mode = m
-}
-
-// PopMode restores the lexer mode saved by a call to [PushMode]. It is a panic error if there is no saved mode to
-// return to.
-func (b *BaseLexer) PopMode() int {
- if len(b.modeStack) == 0 {
- panic("Empty Stack")
- }
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("popMode back to " + fmt.Sprint(b.modeStack[0:len(b.modeStack)-1]))
- }
- i, _ := b.modeStack.Pop()
- b.mode = i
- return b.mode
-}
-
-func (b *BaseLexer) inputStream() CharStream {
- return b.input
-}
-
-// SetInputStream resets the lexer input stream and associated lexer state.
-func (b *BaseLexer) SetInputStream(input CharStream) {
- b.input = nil
- b.tokenFactorySourcePair = &TokenSourceCharStreamPair{b, b.input}
- b.Reset()
- b.input = input
- b.tokenFactorySourcePair = &TokenSourceCharStreamPair{b, b.input}
-}
-
-func (b *BaseLexer) GetTokenSourceCharStreamPair() *TokenSourceCharStreamPair {
- return b.tokenFactorySourcePair
-}
-
-// EmitToken by default does not support multiple emits per [NextToken] invocation
-// for efficiency reasons. Subclass and override this func, [NextToken],
-// and [GetToken] (to push tokens into a list and pull from that list
-// rather than a single variable as this implementation does).
-func (b *BaseLexer) EmitToken(token Token) {
- b.token = token
-}
-
-// Emit is the standard method called to automatically emit a token at the
-// outermost lexical rule. The token object should point into the
-// char buffer start..stop. If there is a text override in 'text',
-// use that to set the token's text. Override this method to emit
-// custom [Token] objects or provide a new factory.
-// /
-func (b *BaseLexer) Emit() Token {
- t := b.factory.Create(b.tokenFactorySourcePair, b.thetype, b.text, b.channel, b.TokenStartCharIndex, b.GetCharIndex()-1, b.TokenStartLine, b.TokenStartColumn)
- b.EmitToken(t)
- return t
-}
-
-// EmitEOF emits an EOF token. By default, this is the last token emitted
-func (b *BaseLexer) EmitEOF() Token {
- cpos := b.GetCharPositionInLine()
- lpos := b.GetLine()
- eof := b.factory.Create(b.tokenFactorySourcePair, TokenEOF, "", TokenDefaultChannel, b.input.Index(), b.input.Index()-1, lpos, cpos)
- b.EmitToken(eof)
- return eof
-}
-
-// GetCharPositionInLine returns the current position in the current line as far as the lexer is concerned.
-func (b *BaseLexer) GetCharPositionInLine() int {
- return b.Interpreter.GetCharPositionInLine()
-}
-
-func (b *BaseLexer) GetLine() int {
- return b.Interpreter.GetLine()
-}
-
-func (b *BaseLexer) GetType() int {
- return b.thetype
-}
-
-func (b *BaseLexer) SetType(t int) {
- b.thetype = t
-}
-
-// GetCharIndex returns the index of the current character of lookahead
-func (b *BaseLexer) GetCharIndex() int {
- return b.input.Index()
-}
-
-// GetText returns the text Matched so far for the current token or any text override.
-func (b *BaseLexer) GetText() string {
- if b.text != "" {
- return b.text
- }
-
- return b.Interpreter.GetText(b.input)
-}
-
-// SetText sets the complete text of this token; it wipes any previous changes to the text.
-func (b *BaseLexer) SetText(text string) {
- b.text = text
-}
-
-// GetATN returns the ATN used by the lexer.
-func (b *BaseLexer) GetATN() *ATN {
- return b.Interpreter.ATN()
-}
-
-// GetAllTokens returns a list of all [Token] objects in input char stream.
-// Forces a load of all tokens that can be made from the input char stream.
-//
-// Does not include EOF token.
-func (b *BaseLexer) GetAllTokens() []Token {
- vl := b.Virt
- tokens := make([]Token, 0)
- t := vl.NextToken()
- for t.GetTokenType() != TokenEOF {
- tokens = append(tokens, t)
- t = vl.NextToken()
- }
- return tokens
-}
-
-func (b *BaseLexer) notifyListeners(e RecognitionException) {
- start := b.TokenStartCharIndex
- stop := b.input.Index()
- text := b.input.GetTextFromInterval(NewInterval(start, stop))
- msg := "token recognition error at: '" + text + "'"
- listener := b.GetErrorListenerDispatch()
- listener.SyntaxError(b, nil, b.TokenStartLine, b.TokenStartColumn, msg, e)
-}
-
-func (b *BaseLexer) getErrorDisplayForChar(c rune) string {
- if c == TokenEOF {
- return ""
- } else if c == '\n' {
- return "\\n"
- } else if c == '\t' {
- return "\\t"
- } else if c == '\r' {
- return "\\r"
- } else {
- return string(c)
- }
-}
-
-func (b *BaseLexer) getCharErrorDisplay(c rune) string {
- return "'" + b.getErrorDisplayForChar(c) + "'"
-}
-
-// Recover can normally Match any char in its vocabulary after Matching
-// a token, so here we do the easy thing and just kill a character and hope
-// it all works out. You can instead use the rule invocation stack
-// to do sophisticated error recovery if you are in a fragment rule.
-//
-// In general, lexers should not need to recover and should have rules that cover any eventuality, such as
-// a character that makes no sense to the recognizer.
-func (b *BaseLexer) Recover(re RecognitionException) {
- if b.input.LA(1) != TokenEOF {
- if _, ok := re.(*LexerNoViableAltException); ok {
- // Skip a char and try again
- b.Interpreter.Consume(b.input)
- } else {
- // TODO: Do we lose character or line position information?
- b.input.Consume()
- }
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action.go
deleted file mode 100644
index eaa7393e..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action.go
+++ /dev/null
@@ -1,452 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "strconv"
-
-const (
- // LexerActionTypeChannel represents a [LexerChannelAction] action.
- LexerActionTypeChannel = 0
-
- // LexerActionTypeCustom represents a [LexerCustomAction] action.
- LexerActionTypeCustom = 1
-
- // LexerActionTypeMode represents a [LexerModeAction] action.
- LexerActionTypeMode = 2
-
- // LexerActionTypeMore represents a [LexerMoreAction] action.
- LexerActionTypeMore = 3
-
- // LexerActionTypePopMode represents a [LexerPopModeAction] action.
- LexerActionTypePopMode = 4
-
- // LexerActionTypePushMode represents a [LexerPushModeAction] action.
- LexerActionTypePushMode = 5
-
- // LexerActionTypeSkip represents a [LexerSkipAction] action.
- LexerActionTypeSkip = 6
-
- // LexerActionTypeType represents a [LexerTypeAction] action.
- LexerActionTypeType = 7
-)
-
-type LexerAction interface {
- getActionType() int
- getIsPositionDependent() bool
- execute(lexer Lexer)
- Hash() int
- Equals(other LexerAction) bool
-}
-
-type BaseLexerAction struct {
- actionType int
- isPositionDependent bool
-}
-
-func NewBaseLexerAction(action int) *BaseLexerAction {
- la := new(BaseLexerAction)
-
- la.actionType = action
- la.isPositionDependent = false
-
- return la
-}
-
-func (b *BaseLexerAction) execute(_ Lexer) {
- panic("Not implemented")
-}
-
-func (b *BaseLexerAction) getActionType() int {
- return b.actionType
-}
-
-func (b *BaseLexerAction) getIsPositionDependent() bool {
- return b.isPositionDependent
-}
-
-func (b *BaseLexerAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, b.actionType)
- return murmurFinish(h, 1)
-}
-
-func (b *BaseLexerAction) Equals(other LexerAction) bool {
- return b.actionType == other.getActionType()
-}
-
-// LexerSkipAction implements the [BaseLexerAction.Skip] lexer action by calling [Lexer.Skip].
-//
-// The Skip command does not have any parameters, so this action is
-// implemented as a singleton instance exposed by the [LexerSkipActionINSTANCE].
-type LexerSkipAction struct {
- *BaseLexerAction
-}
-
-func NewLexerSkipAction() *LexerSkipAction {
- la := new(LexerSkipAction)
- la.BaseLexerAction = NewBaseLexerAction(LexerActionTypeSkip)
- return la
-}
-
-// LexerSkipActionINSTANCE provides a singleton instance of this parameterless lexer action.
-var LexerSkipActionINSTANCE = NewLexerSkipAction()
-
-func (l *LexerSkipAction) execute(lexer Lexer) {
- lexer.Skip()
-}
-
-// String returns a string representation of the current [LexerSkipAction].
-func (l *LexerSkipAction) String() string {
- return "skip"
-}
-
-func (b *LexerSkipAction) Equals(other LexerAction) bool {
- return other.getActionType() == LexerActionTypeSkip
-}
-
-// Implements the {@code type} lexer action by calling {@link Lexer//setType}
-//
-// with the assigned type.
-type LexerTypeAction struct {
- *BaseLexerAction
-
- thetype int
-}
-
-func NewLexerTypeAction(thetype int) *LexerTypeAction {
- l := new(LexerTypeAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypeType)
- l.thetype = thetype
- return l
-}
-
-func (l *LexerTypeAction) execute(lexer Lexer) {
- lexer.SetType(l.thetype)
-}
-
-func (l *LexerTypeAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.actionType)
- h = murmurUpdate(h, l.thetype)
- return murmurFinish(h, 2)
-}
-
-func (l *LexerTypeAction) Equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerTypeAction); !ok {
- return false
- } else {
- return l.thetype == other.(*LexerTypeAction).thetype
- }
-}
-
-func (l *LexerTypeAction) String() string {
- return "actionType(" + strconv.Itoa(l.thetype) + ")"
-}
-
-// LexerPushModeAction implements the pushMode lexer action by calling
-// [Lexer.pushMode] with the assigned mode.
-type LexerPushModeAction struct {
- *BaseLexerAction
- mode int
-}
-
-func NewLexerPushModeAction(mode int) *LexerPushModeAction {
-
- l := new(LexerPushModeAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypePushMode)
-
- l.mode = mode
- return l
-}
-
-// This action is implemented by calling {@link Lexer//pushMode} with the
-// value provided by {@link //getMode}.
-func (l *LexerPushModeAction) execute(lexer Lexer) {
- lexer.PushMode(l.mode)
-}
-
-func (l *LexerPushModeAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.actionType)
- h = murmurUpdate(h, l.mode)
- return murmurFinish(h, 2)
-}
-
-func (l *LexerPushModeAction) Equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerPushModeAction); !ok {
- return false
- } else {
- return l.mode == other.(*LexerPushModeAction).mode
- }
-}
-
-func (l *LexerPushModeAction) String() string {
- return "pushMode(" + strconv.Itoa(l.mode) + ")"
-}
-
-// LexerPopModeAction implements the popMode lexer action by calling [Lexer.popMode].
-//
-// The popMode command does not have any parameters, so this action is
-// implemented as a singleton instance exposed by [LexerPopModeActionINSTANCE]
-type LexerPopModeAction struct {
- *BaseLexerAction
-}
-
-func NewLexerPopModeAction() *LexerPopModeAction {
-
- l := new(LexerPopModeAction)
-
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypePopMode)
-
- return l
-}
-
-var LexerPopModeActionINSTANCE = NewLexerPopModeAction()
-
-// This action is implemented by calling {@link Lexer//popMode}.
-func (l *LexerPopModeAction) execute(lexer Lexer) {
- lexer.PopMode()
-}
-
-func (l *LexerPopModeAction) String() string {
- return "popMode"
-}
-
-// Implements the {@code more} lexer action by calling {@link Lexer//more}.
-//
-// The {@code more} command does not have any parameters, so l action is
-// implemented as a singleton instance exposed by {@link //INSTANCE}.
-
-type LexerMoreAction struct {
- *BaseLexerAction
-}
-
-func NewLexerMoreAction() *LexerMoreAction {
- l := new(LexerMoreAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypeMore)
-
- return l
-}
-
-var LexerMoreActionINSTANCE = NewLexerMoreAction()
-
-// This action is implemented by calling {@link Lexer//popMode}.
-func (l *LexerMoreAction) execute(lexer Lexer) {
- lexer.More()
-}
-
-func (l *LexerMoreAction) String() string {
- return "more"
-}
-
-// LexerModeAction implements the mode lexer action by calling [Lexer.mode] with
-// the assigned mode.
-type LexerModeAction struct {
- *BaseLexerAction
- mode int
-}
-
-func NewLexerModeAction(mode int) *LexerModeAction {
- l := new(LexerModeAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypeMode)
- l.mode = mode
- return l
-}
-
-// This action is implemented by calling {@link Lexer//mode} with the
-// value provided by {@link //getMode}.
-func (l *LexerModeAction) execute(lexer Lexer) {
- lexer.SetMode(l.mode)
-}
-
-func (l *LexerModeAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.actionType)
- h = murmurUpdate(h, l.mode)
- return murmurFinish(h, 2)
-}
-
-func (l *LexerModeAction) Equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerModeAction); !ok {
- return false
- } else {
- return l.mode == other.(*LexerModeAction).mode
- }
-}
-
-func (l *LexerModeAction) String() string {
- return "mode(" + strconv.Itoa(l.mode) + ")"
-}
-
-// Executes a custom lexer action by calling {@link Recognizer//action} with the
-// rule and action indexes assigned to the custom action. The implementation of
-// a custom action is added to the generated code for the lexer in an override
-// of {@link Recognizer//action} when the grammar is compiled.
-//
-// This class may represent embedded actions created with the {...}
-// syntax in ANTLR 4, as well as actions created for lexer commands where the
-// command argument could not be evaluated when the grammar was compiled.
-
-// Constructs a custom lexer action with the specified rule and action
-// indexes.
-//
-// @param ruleIndex The rule index to use for calls to
-// {@link Recognizer//action}.
-// @param actionIndex The action index to use for calls to
-// {@link Recognizer//action}.
-
-type LexerCustomAction struct {
- *BaseLexerAction
- ruleIndex, actionIndex int
-}
-
-func NewLexerCustomAction(ruleIndex, actionIndex int) *LexerCustomAction {
- l := new(LexerCustomAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypeCustom)
- l.ruleIndex = ruleIndex
- l.actionIndex = actionIndex
- l.isPositionDependent = true
- return l
-}
-
-// Custom actions are implemented by calling {@link Lexer//action} with the
-// appropriate rule and action indexes.
-func (l *LexerCustomAction) execute(lexer Lexer) {
- lexer.Action(nil, l.ruleIndex, l.actionIndex)
-}
-
-func (l *LexerCustomAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.actionType)
- h = murmurUpdate(h, l.ruleIndex)
- h = murmurUpdate(h, l.actionIndex)
- return murmurFinish(h, 3)
-}
-
-func (l *LexerCustomAction) Equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerCustomAction); !ok {
- return false
- } else {
- return l.ruleIndex == other.(*LexerCustomAction).ruleIndex &&
- l.actionIndex == other.(*LexerCustomAction).actionIndex
- }
-}
-
-// LexerChannelAction implements the channel lexer action by calling
-// [Lexer.setChannel] with the assigned channel.
-//
-// Constructs a new channel action with the specified channel value.
-type LexerChannelAction struct {
- *BaseLexerAction
- channel int
-}
-
-// NewLexerChannelAction creates a channel lexer action by calling
-// [Lexer.setChannel] with the assigned channel.
-//
-// Constructs a new channel action with the specified channel value.
-func NewLexerChannelAction(channel int) *LexerChannelAction {
- l := new(LexerChannelAction)
- l.BaseLexerAction = NewBaseLexerAction(LexerActionTypeChannel)
- l.channel = channel
- return l
-}
-
-// This action is implemented by calling {@link Lexer//setChannel} with the
-// value provided by {@link //getChannel}.
-func (l *LexerChannelAction) execute(lexer Lexer) {
- lexer.SetChannel(l.channel)
-}
-
-func (l *LexerChannelAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.actionType)
- h = murmurUpdate(h, l.channel)
- return murmurFinish(h, 2)
-}
-
-func (l *LexerChannelAction) Equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerChannelAction); !ok {
- return false
- } else {
- return l.channel == other.(*LexerChannelAction).channel
- }
-}
-
-func (l *LexerChannelAction) String() string {
- return "channel(" + strconv.Itoa(l.channel) + ")"
-}
-
-// This implementation of {@link LexerAction} is used for tracking input offsets
-// for position-dependent actions within a {@link LexerActionExecutor}.
-//
-// This action is not serialized as part of the ATN, and is only required for
-// position-dependent lexer actions which appear at a location other than the
-// end of a rule. For more information about DFA optimizations employed for
-// lexer actions, see {@link LexerActionExecutor//append} and
-// {@link LexerActionExecutor//fixOffsetBeforeMatch}.
-
-type LexerIndexedCustomAction struct {
- *BaseLexerAction
- offset int
- lexerAction LexerAction
- isPositionDependent bool
-}
-
-// NewLexerIndexedCustomAction constructs a new indexed custom action by associating a character offset
-// with a [LexerAction].
-//
-// Note: This class is only required for lexer actions for which
-// [LexerAction.isPositionDependent] returns true.
-//
-// The offset points into the input [CharStream], relative to
-// the token start index, at which the specified lexerAction should be
-// executed.
-func NewLexerIndexedCustomAction(offset int, lexerAction LexerAction) *LexerIndexedCustomAction {
-
- l := new(LexerIndexedCustomAction)
- l.BaseLexerAction = NewBaseLexerAction(lexerAction.getActionType())
-
- l.offset = offset
- l.lexerAction = lexerAction
- l.isPositionDependent = true
-
- return l
-}
-
-// This method calls {@link //execute} on the result of {@link //getAction}
-// using the provided {@code lexer}.
-func (l *LexerIndexedCustomAction) execute(lexer Lexer) {
- // assume the input stream position was properly set by the calling code
- l.lexerAction.execute(lexer)
-}
-
-func (l *LexerIndexedCustomAction) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, l.offset)
- h = murmurUpdate(h, l.lexerAction.Hash())
- return murmurFinish(h, 2)
-}
-
-func (l *LexerIndexedCustomAction) equals(other LexerAction) bool {
- if l == other {
- return true
- } else if _, ok := other.(*LexerIndexedCustomAction); !ok {
- return false
- } else {
- return l.offset == other.(*LexerIndexedCustomAction).offset &&
- l.lexerAction.Equals(other.(*LexerIndexedCustomAction).lexerAction)
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action_executor.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action_executor.go
deleted file mode 100644
index dfc28c32..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_action_executor.go
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "golang.org/x/exp/slices"
-
-// Represents an executor for a sequence of lexer actions which traversed during
-// the Matching operation of a lexer rule (token).
-//
-// The executor tracks position information for position-dependent lexer actions
-// efficiently, ensuring that actions appearing only at the end of the rule do
-// not cause bloating of the {@link DFA} created for the lexer.
-
-type LexerActionExecutor struct {
- lexerActions []LexerAction
- cachedHash int
-}
-
-func NewLexerActionExecutor(lexerActions []LexerAction) *LexerActionExecutor {
-
- if lexerActions == nil {
- lexerActions = make([]LexerAction, 0)
- }
-
- l := new(LexerActionExecutor)
-
- l.lexerActions = lexerActions
-
- // Caches the result of {@link //hashCode} since the hash code is an element
- // of the performance-critical {@link ATNConfig//hashCode} operation.
- l.cachedHash = murmurInit(0)
- for _, a := range lexerActions {
- l.cachedHash = murmurUpdate(l.cachedHash, a.Hash())
- }
- l.cachedHash = murmurFinish(l.cachedHash, len(lexerActions))
-
- return l
-}
-
-// LexerActionExecutorappend creates a [LexerActionExecutor] which executes the actions for
-// the input [LexerActionExecutor] followed by a specified
-// [LexerAction].
-// TODO: This does not match the Java code
-func LexerActionExecutorappend(lexerActionExecutor *LexerActionExecutor, lexerAction LexerAction) *LexerActionExecutor {
- if lexerActionExecutor == nil {
- return NewLexerActionExecutor([]LexerAction{lexerAction})
- }
-
- return NewLexerActionExecutor(append(lexerActionExecutor.lexerActions, lexerAction))
-}
-
-// fixOffsetBeforeMatch creates a [LexerActionExecutor] which encodes the current offset
-// for position-dependent lexer actions.
-//
-// Normally, when the executor encounters lexer actions where
-// [LexerAction.isPositionDependent] returns true, it calls
-// [IntStream.Seek] on the input [CharStream] to set the input
-// position to the end of the current token. This behavior provides
-// for efficient [DFA] representation of lexer actions which appear at the end
-// of a lexer rule, even when the lexer rule Matches a variable number of
-// characters.
-//
-// Prior to traversing a Match transition in the [ATN], the current offset
-// from the token start index is assigned to all position-dependent lexer
-// actions which have not already been assigned a fixed offset. By storing
-// the offsets relative to the token start index, the [DFA] representation of
-// lexer actions which appear in the middle of tokens remains efficient due
-// to sharing among tokens of the same Length, regardless of their absolute
-// position in the input stream.
-//
-// If the current executor already has offsets assigned to all
-// position-dependent lexer actions, the method returns this instance.
-//
-// The offset is assigned to all position-dependent
-// lexer actions which do not already have offsets assigned.
-//
-// The func returns a [LexerActionExecutor] that stores input stream offsets
-// for all position-dependent lexer actions.
-func (l *LexerActionExecutor) fixOffsetBeforeMatch(offset int) *LexerActionExecutor {
- var updatedLexerActions []LexerAction
- for i := 0; i < len(l.lexerActions); i++ {
- _, ok := l.lexerActions[i].(*LexerIndexedCustomAction)
- if l.lexerActions[i].getIsPositionDependent() && !ok {
- if updatedLexerActions == nil {
- updatedLexerActions = make([]LexerAction, 0, len(l.lexerActions))
- updatedLexerActions = append(updatedLexerActions, l.lexerActions...)
- }
- updatedLexerActions[i] = NewLexerIndexedCustomAction(offset, l.lexerActions[i])
- }
- }
- if updatedLexerActions == nil {
- return l
- }
-
- return NewLexerActionExecutor(updatedLexerActions)
-}
-
-// Execute the actions encapsulated by l executor within the context of a
-// particular {@link Lexer}.
-//
-// This method calls {@link IntStream//seek} to set the position of the
-// {@code input} {@link CharStream} prior to calling
-// {@link LexerAction//execute} on a position-dependent action. Before the
-// method returns, the input position will be restored to the same position
-// it was in when the method was invoked.
-//
-// @param lexer The lexer instance.
-// @param input The input stream which is the source for the current token.
-// When l method is called, the current {@link IntStream//index} for
-// {@code input} should be the start of the following token, i.e. 1
-// character past the end of the current token.
-// @param startIndex The token start index. This value may be passed to
-// {@link IntStream//seek} to set the {@code input} position to the beginning
-// of the token.
-// /
-func (l *LexerActionExecutor) execute(lexer Lexer, input CharStream, startIndex int) {
- requiresSeek := false
- stopIndex := input.Index()
-
- defer func() {
- if requiresSeek {
- input.Seek(stopIndex)
- }
- }()
-
- for i := 0; i < len(l.lexerActions); i++ {
- lexerAction := l.lexerActions[i]
- if la, ok := lexerAction.(*LexerIndexedCustomAction); ok {
- offset := la.offset
- input.Seek(startIndex + offset)
- lexerAction = la.lexerAction
- requiresSeek = (startIndex + offset) != stopIndex
- } else if lexerAction.getIsPositionDependent() {
- input.Seek(stopIndex)
- requiresSeek = false
- }
- lexerAction.execute(lexer)
- }
-}
-
-func (l *LexerActionExecutor) Hash() int {
- if l == nil {
- // TODO: Why is this here? l should not be nil
- return 61
- }
-
- // TODO: This is created from the action itself when the struct is created - will this be an issue at some point? Java uses the runtime assign hashcode
- return l.cachedHash
-}
-
-func (l *LexerActionExecutor) Equals(other interface{}) bool {
- if l == other {
- return true
- }
- othert, ok := other.(*LexerActionExecutor)
- if !ok {
- return false
- }
- if othert == nil {
- return false
- }
- if l.cachedHash != othert.cachedHash {
- return false
- }
- if len(l.lexerActions) != len(othert.lexerActions) {
- return false
- }
- return slices.EqualFunc(l.lexerActions, othert.lexerActions, func(i, j LexerAction) bool {
- return i.Equals(j)
- })
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_atn_simulator.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_atn_simulator.go
deleted file mode 100644
index fe938b02..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/lexer_atn_simulator.go
+++ /dev/null
@@ -1,677 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
- "strings"
-)
-
-//goland:noinspection GoUnusedGlobalVariable
-var (
- LexerATNSimulatorMinDFAEdge = 0
- LexerATNSimulatorMaxDFAEdge = 127 // forces unicode to stay in ATN
-
- LexerATNSimulatorMatchCalls = 0
-)
-
-type ILexerATNSimulator interface {
- IATNSimulator
-
- reset()
- Match(input CharStream, mode int) int
- GetCharPositionInLine() int
- GetLine() int
- GetText(input CharStream) string
- Consume(input CharStream)
-}
-
-type LexerATNSimulator struct {
- BaseATNSimulator
-
- recog Lexer
- predictionMode int
- mergeCache *JPCMap2
- startIndex int
- Line int
- CharPositionInLine int
- mode int
- prevAccept *SimState
- MatchCalls int
-}
-
-func NewLexerATNSimulator(recog Lexer, atn *ATN, decisionToDFA []*DFA, sharedContextCache *PredictionContextCache) *LexerATNSimulator {
- l := &LexerATNSimulator{
- BaseATNSimulator: BaseATNSimulator{
- atn: atn,
- sharedContextCache: sharedContextCache,
- },
- }
-
- l.decisionToDFA = decisionToDFA
- l.recog = recog
-
- // The current token's starting index into the character stream.
- // Shared across DFA to ATN simulation in case the ATN fails and the
- // DFA did not have a previous accept state. In l case, we use the
- // ATN-generated exception object.
- l.startIndex = -1
-
- // line number 1..n within the input
- l.Line = 1
-
- // The index of the character relative to the beginning of the line
- // 0..n-1
- l.CharPositionInLine = 0
-
- l.mode = LexerDefaultMode
-
- // Used during DFA/ATN exec to record the most recent accept configuration
- // info
- l.prevAccept = NewSimState()
-
- return l
-}
-
-func (l *LexerATNSimulator) copyState(simulator *LexerATNSimulator) {
- l.CharPositionInLine = simulator.CharPositionInLine
- l.Line = simulator.Line
- l.mode = simulator.mode
- l.startIndex = simulator.startIndex
-}
-
-func (l *LexerATNSimulator) Match(input CharStream, mode int) int {
- l.MatchCalls++
- l.mode = mode
- mark := input.Mark()
-
- defer func() {
- input.Release(mark)
- }()
-
- l.startIndex = input.Index()
- l.prevAccept.reset()
-
- dfa := l.decisionToDFA[mode]
-
- var s0 *DFAState
- l.atn.stateMu.RLock()
- s0 = dfa.getS0()
- l.atn.stateMu.RUnlock()
-
- if s0 == nil {
- return l.MatchATN(input)
- }
-
- return l.execATN(input, s0)
-}
-
-func (l *LexerATNSimulator) reset() {
- l.prevAccept.reset()
- l.startIndex = -1
- l.Line = 1
- l.CharPositionInLine = 0
- l.mode = LexerDefaultMode
-}
-
-func (l *LexerATNSimulator) MatchATN(input CharStream) int {
- startState := l.atn.modeToStartState[l.mode]
-
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("MatchATN mode " + strconv.Itoa(l.mode) + " start: " + startState.String())
- }
- oldMode := l.mode
- s0Closure := l.computeStartState(input, startState)
- suppressEdge := s0Closure.hasSemanticContext
- s0Closure.hasSemanticContext = false
-
- next := l.addDFAState(s0Closure, suppressEdge)
-
- predict := l.execATN(input, next)
-
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("DFA after MatchATN: " + l.decisionToDFA[oldMode].ToLexerString())
- }
- return predict
-}
-
-func (l *LexerATNSimulator) execATN(input CharStream, ds0 *DFAState) int {
-
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("start state closure=" + ds0.configs.String())
- }
- if ds0.isAcceptState {
- // allow zero-Length tokens
- l.captureSimState(l.prevAccept, input, ds0)
- }
- t := input.LA(1)
- s := ds0 // s is current/from DFA state
-
- for { // while more work
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("execATN loop starting closure: " + s.configs.String())
- }
-
- // As we move src->trg, src->trg, we keep track of the previous trg to
- // avoid looking up the DFA state again, which is expensive.
- // If the previous target was already part of the DFA, we might
- // be able to avoid doing a reach operation upon t. If s!=nil,
- // it means that semantic predicates didn't prevent us from
- // creating a DFA state. Once we know s!=nil, we check to see if
- // the DFA state has an edge already for t. If so, we can just reuse
- // it's configuration set there's no point in re-computing it.
- // This is kind of like doing DFA simulation within the ATN
- // simulation because DFA simulation is really just a way to avoid
- // computing reach/closure sets. Technically, once we know that
- // we have a previously added DFA state, we could jump over to
- // the DFA simulator. But, that would mean popping back and forth
- // a lot and making things more complicated algorithmically.
- // This optimization makes a lot of sense for loops within DFA.
- // A character will take us back to an existing DFA state
- // that already has lots of edges out of it. e.g., .* in comments.
- target := l.getExistingTargetState(s, t)
- if target == nil {
- target = l.computeTargetState(input, s, t)
- // print("Computed:" + str(target))
- }
- if target == ATNSimulatorError {
- break
- }
- // If l is a consumable input element, make sure to consume before
- // capturing the accept state so the input index, line, and char
- // position accurately reflect the state of the interpreter at the
- // end of the token.
- if t != TokenEOF {
- l.Consume(input)
- }
- if target.isAcceptState {
- l.captureSimState(l.prevAccept, input, target)
- if t == TokenEOF {
- break
- }
- }
- t = input.LA(1)
- s = target // flip current DFA target becomes new src/from state
- }
-
- return l.failOrAccept(l.prevAccept, input, s.configs, t)
-}
-
-// Get an existing target state for an edge in the DFA. If the target state
-// for the edge has not yet been computed or is otherwise not available,
-// l method returns {@code nil}.
-//
-// @param s The current DFA state
-// @param t The next input symbol
-// @return The existing target DFA state for the given input symbol
-// {@code t}, or {@code nil} if the target state for l edge is not
-// already cached
-func (l *LexerATNSimulator) getExistingTargetState(s *DFAState, t int) *DFAState {
- if t < LexerATNSimulatorMinDFAEdge || t > LexerATNSimulatorMaxDFAEdge {
- return nil
- }
-
- l.atn.edgeMu.RLock()
- defer l.atn.edgeMu.RUnlock()
- if s.getEdges() == nil {
- return nil
- }
- target := s.getIthEdge(t - LexerATNSimulatorMinDFAEdge)
- if runtimeConfig.lexerATNSimulatorDebug && target != nil {
- fmt.Println("reuse state " + strconv.Itoa(s.stateNumber) + " edge to " + strconv.Itoa(target.stateNumber))
- }
- return target
-}
-
-// computeTargetState computes a target state for an edge in the [DFA], and attempt to add the
-// computed state and corresponding edge to the [DFA].
-//
-// The func returns the computed target [DFA] state for the given input symbol t.
-// If this does not lead to a valid [DFA] state, this method
-// returns ATNSimulatorError.
-func (l *LexerATNSimulator) computeTargetState(input CharStream, s *DFAState, t int) *DFAState {
- reach := NewOrderedATNConfigSet()
-
- // if we don't find an existing DFA state
- // Fill reach starting from closure, following t transitions
- l.getReachableConfigSet(input, s.configs, reach, t)
-
- if len(reach.configs) == 0 { // we got nowhere on t from s
- if !reach.hasSemanticContext {
- // we got nowhere on t, don't panic out l knowledge it'd
- // cause a fail-over from DFA later.
- l.addDFAEdge(s, t, ATNSimulatorError, nil)
- }
- // stop when we can't Match any more char
- return ATNSimulatorError
- }
- // Add an edge from s to target DFA found/created for reach
- return l.addDFAEdge(s, t, nil, reach)
-}
-
-func (l *LexerATNSimulator) failOrAccept(prevAccept *SimState, input CharStream, reach *ATNConfigSet, t int) int {
- if l.prevAccept.dfaState != nil {
- lexerActionExecutor := prevAccept.dfaState.lexerActionExecutor
- l.accept(input, lexerActionExecutor, l.startIndex, prevAccept.index, prevAccept.line, prevAccept.column)
- return prevAccept.dfaState.prediction
- }
-
- // if no accept and EOF is first char, return EOF
- if t == TokenEOF && input.Index() == l.startIndex {
- return TokenEOF
- }
-
- panic(NewLexerNoViableAltException(l.recog, input, l.startIndex, reach))
-}
-
-// getReachableConfigSet when given a starting configuration set, figures out all [ATN] configurations
-// we can reach upon input t.
-//
-// Parameter reach is a return parameter.
-func (l *LexerATNSimulator) getReachableConfigSet(input CharStream, closure *ATNConfigSet, reach *ATNConfigSet, t int) {
- // l is used to Skip processing for configs which have a lower priority
- // than a runtimeConfig that already reached an accept state for the same rule
- SkipAlt := ATNInvalidAltNumber
-
- for _, cfg := range closure.configs {
- currentAltReachedAcceptState := cfg.GetAlt() == SkipAlt
- if currentAltReachedAcceptState && cfg.passedThroughNonGreedyDecision {
- continue
- }
-
- if runtimeConfig.lexerATNSimulatorDebug {
-
- fmt.Printf("testing %s at %s\n", l.GetTokenName(t), cfg.String())
- }
-
- for _, trans := range cfg.GetState().GetTransitions() {
- target := l.getReachableTarget(trans, t)
- if target != nil {
- lexerActionExecutor := cfg.lexerActionExecutor
- if lexerActionExecutor != nil {
- lexerActionExecutor = lexerActionExecutor.fixOffsetBeforeMatch(input.Index() - l.startIndex)
- }
- treatEOFAsEpsilon := t == TokenEOF
- config := NewLexerATNConfig3(cfg, target, lexerActionExecutor)
- if l.closure(input, config, reach,
- currentAltReachedAcceptState, true, treatEOFAsEpsilon) {
- // any remaining configs for l alt have a lower priority
- // than the one that just reached an accept state.
- SkipAlt = cfg.GetAlt()
- }
- }
- }
- }
-}
-
-func (l *LexerATNSimulator) accept(input CharStream, lexerActionExecutor *LexerActionExecutor, startIndex, index, line, charPos int) {
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Printf("ACTION %v\n", lexerActionExecutor)
- }
- // seek to after last char in token
- input.Seek(index)
- l.Line = line
- l.CharPositionInLine = charPos
- if lexerActionExecutor != nil && l.recog != nil {
- lexerActionExecutor.execute(l.recog, input, startIndex)
- }
-}
-
-func (l *LexerATNSimulator) getReachableTarget(trans Transition, t int) ATNState {
- if trans.Matches(t, 0, LexerMaxCharValue) {
- return trans.getTarget()
- }
-
- return nil
-}
-
-func (l *LexerATNSimulator) computeStartState(input CharStream, p ATNState) *ATNConfigSet {
- configs := NewOrderedATNConfigSet()
- for i := 0; i < len(p.GetTransitions()); i++ {
- target := p.GetTransitions()[i].getTarget()
- cfg := NewLexerATNConfig6(target, i+1, BasePredictionContextEMPTY)
- l.closure(input, cfg, configs, false, false, false)
- }
-
- return configs
-}
-
-// closure since the alternatives within any lexer decision are ordered by
-// preference, this method stops pursuing the closure as soon as an accept
-// state is reached. After the first accept state is reached by depth-first
-// search from runtimeConfig, all other (potentially reachable) states for
-// this rule would have a lower priority.
-//
-// The func returns true if an accept state is reached.
-func (l *LexerATNSimulator) closure(input CharStream, config *ATNConfig, configs *ATNConfigSet,
- currentAltReachedAcceptState, speculative, treatEOFAsEpsilon bool) bool {
-
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("closure(" + config.String() + ")")
- }
-
- _, ok := config.state.(*RuleStopState)
- if ok {
-
- if runtimeConfig.lexerATNSimulatorDebug {
- if l.recog != nil {
- fmt.Printf("closure at %s rule stop %s\n", l.recog.GetRuleNames()[config.state.GetRuleIndex()], config)
- } else {
- fmt.Printf("closure at rule stop %s\n", config)
- }
- }
-
- if config.context == nil || config.context.hasEmptyPath() {
- if config.context == nil || config.context.isEmpty() {
- configs.Add(config, nil)
- return true
- }
-
- configs.Add(NewLexerATNConfig2(config, config.state, BasePredictionContextEMPTY), nil)
- currentAltReachedAcceptState = true
- }
- if config.context != nil && !config.context.isEmpty() {
- for i := 0; i < config.context.length(); i++ {
- if config.context.getReturnState(i) != BasePredictionContextEmptyReturnState {
- newContext := config.context.GetParent(i) // "pop" return state
- returnState := l.atn.states[config.context.getReturnState(i)]
- cfg := NewLexerATNConfig2(config, returnState, newContext)
- currentAltReachedAcceptState = l.closure(input, cfg, configs, currentAltReachedAcceptState, speculative, treatEOFAsEpsilon)
- }
- }
- }
- return currentAltReachedAcceptState
- }
- // optimization
- if !config.state.GetEpsilonOnlyTransitions() {
- if !currentAltReachedAcceptState || !config.passedThroughNonGreedyDecision {
- configs.Add(config, nil)
- }
- }
- for j := 0; j < len(config.state.GetTransitions()); j++ {
- trans := config.state.GetTransitions()[j]
- cfg := l.getEpsilonTarget(input, config, trans, configs, speculative, treatEOFAsEpsilon)
- if cfg != nil {
- currentAltReachedAcceptState = l.closure(input, cfg, configs,
- currentAltReachedAcceptState, speculative, treatEOFAsEpsilon)
- }
- }
- return currentAltReachedAcceptState
-}
-
-// side-effect: can alter configs.hasSemanticContext
-func (l *LexerATNSimulator) getEpsilonTarget(input CharStream, config *ATNConfig, trans Transition,
- configs *ATNConfigSet, speculative, treatEOFAsEpsilon bool) *ATNConfig {
-
- var cfg *ATNConfig
-
- if trans.getSerializationType() == TransitionRULE {
-
- rt := trans.(*RuleTransition)
- newContext := SingletonBasePredictionContextCreate(config.context, rt.followState.GetStateNumber())
- cfg = NewLexerATNConfig2(config, trans.getTarget(), newContext)
-
- } else if trans.getSerializationType() == TransitionPRECEDENCE {
- panic("Precedence predicates are not supported in lexers.")
- } else if trans.getSerializationType() == TransitionPREDICATE {
- // Track traversing semantic predicates. If we traverse,
- // we cannot add a DFA state for l "reach" computation
- // because the DFA would not test the predicate again in the
- // future. Rather than creating collections of semantic predicates
- // like v3 and testing them on prediction, v4 will test them on the
- // fly all the time using the ATN not the DFA. This is slower but
- // semantically it's not used that often. One of the key elements to
- // l predicate mechanism is not adding DFA states that see
- // predicates immediately afterwards in the ATN. For example,
-
- // a : ID {p1}? | ID {p2}?
-
- // should create the start state for rule 'a' (to save start state
- // competition), but should not create target of ID state. The
- // collection of ATN states the following ID references includes
- // states reached by traversing predicates. Since l is when we
- // test them, we cannot cash the DFA state target of ID.
-
- pt := trans.(*PredicateTransition)
-
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("EVAL rule " + strconv.Itoa(trans.(*PredicateTransition).ruleIndex) + ":" + strconv.Itoa(pt.predIndex))
- }
- configs.hasSemanticContext = true
- if l.evaluatePredicate(input, pt.ruleIndex, pt.predIndex, speculative) {
- cfg = NewLexerATNConfig4(config, trans.getTarget())
- }
- } else if trans.getSerializationType() == TransitionACTION {
- if config.context == nil || config.context.hasEmptyPath() {
- // execute actions anywhere in the start rule for a token.
- //
- // TODO: if the entry rule is invoked recursively, some
- // actions may be executed during the recursive call. The
- // problem can appear when hasEmptyPath() is true but
- // isEmpty() is false. In this case, the config needs to be
- // split into two contexts - one with just the empty path
- // and another with everything but the empty path.
- // Unfortunately, the current algorithm does not allow
- // getEpsilonTarget to return two configurations, so
- // additional modifications are needed before we can support
- // the split operation.
- lexerActionExecutor := LexerActionExecutorappend(config.lexerActionExecutor, l.atn.lexerActions[trans.(*ActionTransition).actionIndex])
- cfg = NewLexerATNConfig3(config, trans.getTarget(), lexerActionExecutor)
- } else {
- // ignore actions in referenced rules
- cfg = NewLexerATNConfig4(config, trans.getTarget())
- }
- } else if trans.getSerializationType() == TransitionEPSILON {
- cfg = NewLexerATNConfig4(config, trans.getTarget())
- } else if trans.getSerializationType() == TransitionATOM ||
- trans.getSerializationType() == TransitionRANGE ||
- trans.getSerializationType() == TransitionSET {
- if treatEOFAsEpsilon {
- if trans.Matches(TokenEOF, 0, LexerMaxCharValue) {
- cfg = NewLexerATNConfig4(config, trans.getTarget())
- }
- }
- }
- return cfg
-}
-
-// evaluatePredicate eEvaluates a predicate specified in the lexer.
-//
-// If speculative is true, this method was called before
-// [consume] for the Matched character. This method should call
-// [consume] before evaluating the predicate to ensure position
-// sensitive values, including [GetText], [GetLine],
-// and [GetColumn], properly reflect the current
-// lexer state. This method should restore input and the simulator
-// to the original state before returning, i.e. undo the actions made by the
-// call to [Consume].
-//
-// The func returns true if the specified predicate evaluates to true.
-func (l *LexerATNSimulator) evaluatePredicate(input CharStream, ruleIndex, predIndex int, speculative bool) bool {
- // assume true if no recognizer was provided
- if l.recog == nil {
- return true
- }
- if !speculative {
- return l.recog.Sempred(nil, ruleIndex, predIndex)
- }
- savedcolumn := l.CharPositionInLine
- savedLine := l.Line
- index := input.Index()
- marker := input.Mark()
-
- defer func() {
- l.CharPositionInLine = savedcolumn
- l.Line = savedLine
- input.Seek(index)
- input.Release(marker)
- }()
-
- l.Consume(input)
- return l.recog.Sempred(nil, ruleIndex, predIndex)
-}
-
-func (l *LexerATNSimulator) captureSimState(settings *SimState, input CharStream, dfaState *DFAState) {
- settings.index = input.Index()
- settings.line = l.Line
- settings.column = l.CharPositionInLine
- settings.dfaState = dfaState
-}
-
-func (l *LexerATNSimulator) addDFAEdge(from *DFAState, tk int, to *DFAState, cfgs *ATNConfigSet) *DFAState {
- if to == nil && cfgs != nil {
- // leading to l call, ATNConfigSet.hasSemanticContext is used as a
- // marker indicating dynamic predicate evaluation makes l edge
- // dependent on the specific input sequence, so the static edge in the
- // DFA should be omitted. The target DFAState is still created since
- // execATN has the ability to reSynchronize with the DFA state cache
- // following the predicate evaluation step.
- //
- // TJP notes: next time through the DFA, we see a pred again and eval.
- // If that gets us to a previously created (but dangling) DFA
- // state, we can continue in pure DFA mode from there.
- //
- suppressEdge := cfgs.hasSemanticContext
- cfgs.hasSemanticContext = false
- to = l.addDFAState(cfgs, true)
-
- if suppressEdge {
- return to
- }
- }
- // add the edge
- if tk < LexerATNSimulatorMinDFAEdge || tk > LexerATNSimulatorMaxDFAEdge {
- // Only track edges within the DFA bounds
- return to
- }
- if runtimeConfig.lexerATNSimulatorDebug {
- fmt.Println("EDGE " + from.String() + " -> " + to.String() + " upon " + strconv.Itoa(tk))
- }
- l.atn.edgeMu.Lock()
- defer l.atn.edgeMu.Unlock()
- if from.getEdges() == nil {
- // make room for tokens 1..n and -1 masquerading as index 0
- from.setEdges(make([]*DFAState, LexerATNSimulatorMaxDFAEdge-LexerATNSimulatorMinDFAEdge+1))
- }
- from.setIthEdge(tk-LexerATNSimulatorMinDFAEdge, to) // connect
-
- return to
-}
-
-// Add a NewDFA state if there isn't one with l set of
-// configurations already. This method also detects the first
-// configuration containing an ATN rule stop state. Later, when
-// traversing the DFA, we will know which rule to accept.
-func (l *LexerATNSimulator) addDFAState(configs *ATNConfigSet, suppressEdge bool) *DFAState {
-
- proposed := NewDFAState(-1, configs)
- var firstConfigWithRuleStopState *ATNConfig
-
- for _, cfg := range configs.configs {
- _, ok := cfg.GetState().(*RuleStopState)
-
- if ok {
- firstConfigWithRuleStopState = cfg
- break
- }
- }
- if firstConfigWithRuleStopState != nil {
- proposed.isAcceptState = true
- proposed.lexerActionExecutor = firstConfigWithRuleStopState.lexerActionExecutor
- proposed.setPrediction(l.atn.ruleToTokenType[firstConfigWithRuleStopState.GetState().GetRuleIndex()])
- }
- dfa := l.decisionToDFA[l.mode]
-
- l.atn.stateMu.Lock()
- defer l.atn.stateMu.Unlock()
- existing, present := dfa.Get(proposed)
- if present {
-
- // This state was already present, so just return it.
- //
- proposed = existing
- } else {
-
- // We need to add the new state
- //
- proposed.stateNumber = dfa.Len()
- configs.readOnly = true
- configs.configLookup = nil // Not needed now
- proposed.configs = configs
- dfa.Put(proposed)
- }
- if !suppressEdge {
- dfa.setS0(proposed)
- }
- return proposed
-}
-
-func (l *LexerATNSimulator) getDFA(mode int) *DFA {
- return l.decisionToDFA[mode]
-}
-
-// GetText returns the text [Match]ed so far for the current token.
-func (l *LexerATNSimulator) GetText(input CharStream) string {
- // index is first lookahead char, don't include.
- return input.GetTextFromInterval(NewInterval(l.startIndex, input.Index()-1))
-}
-
-func (l *LexerATNSimulator) Consume(input CharStream) {
- curChar := input.LA(1)
- if curChar == int('\n') {
- l.Line++
- l.CharPositionInLine = 0
- } else {
- l.CharPositionInLine++
- }
- input.Consume()
-}
-
-func (l *LexerATNSimulator) GetCharPositionInLine() int {
- return l.CharPositionInLine
-}
-
-func (l *LexerATNSimulator) GetLine() int {
- return l.Line
-}
-
-func (l *LexerATNSimulator) GetTokenName(tt int) string {
- if tt == -1 {
- return "EOF"
- }
-
- var sb strings.Builder
- sb.Grow(6)
- sb.WriteByte('\'')
- sb.WriteRune(rune(tt))
- sb.WriteByte('\'')
-
- return sb.String()
-}
-
-func resetSimState(sim *SimState) {
- sim.index = -1
- sim.line = 0
- sim.column = -1
- sim.dfaState = nil
-}
-
-type SimState struct {
- index int
- line int
- column int
- dfaState *DFAState
-}
-
-func NewSimState() *SimState {
- s := new(SimState)
- resetSimState(s)
- return s
-}
-
-func (s *SimState) reset() {
- resetSimState(s)
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/ll1_analyzer.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/ll1_analyzer.go
deleted file mode 100644
index 4955ac87..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/ll1_analyzer.go
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-type LL1Analyzer struct {
- atn *ATN
-}
-
-func NewLL1Analyzer(atn *ATN) *LL1Analyzer {
- la := new(LL1Analyzer)
- la.atn = atn
- return la
-}
-
-const (
- // LL1AnalyzerHitPred is a special value added to the lookahead sets to indicate that we hit
- // a predicate during analysis if
- //
- // seeThruPreds==false
- LL1AnalyzerHitPred = TokenInvalidType
-)
-
-// *
-// Calculates the SLL(1) expected lookahead set for each outgoing transition
-// of an {@link ATNState}. The returned array has one element for each
-// outgoing transition in {@code s}. If the closure from transition
-// i leads to a semantic predicate before Matching a symbol, the
-// element at index i of the result will be {@code nil}.
-//
-// @param s the ATN state
-// @return the expected symbols for each outgoing transition of {@code s}.
-func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
- if s == nil {
- return nil
- }
- count := len(s.GetTransitions())
- look := make([]*IntervalSet, count)
- for alt := 0; alt < count; alt++ {
-
- look[alt] = NewIntervalSet()
- lookBusy := NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfEqInst, ClosureBusyCollection, "LL1Analyzer.getDecisionLookahead for lookBusy")
- la.look1(s.GetTransitions()[alt].getTarget(), nil, BasePredictionContextEMPTY, look[alt], lookBusy, NewBitSet(), false, false)
-
- // Wipe out lookahead for la alternative if we found nothing,
- // or we had a predicate when we !seeThruPreds
- if look[alt].length() == 0 || look[alt].contains(LL1AnalyzerHitPred) {
- look[alt] = nil
- }
- }
- return look
-}
-
-// Look computes the set of tokens that can follow s in the [ATN] in the
-// specified ctx.
-//
-// If ctx is nil and the end of the rule containing
-// s is reached, [EPSILON] is added to the result set.
-//
-// If ctx is not nil and the end of the outermost rule is
-// reached, [EOF] is added to the result set.
-//
-// Parameter s the ATN state, and stopState is the ATN state to stop at. This can be a
-// [BlockEndState] to detect epsilon paths through a closure.
-//
-// Parameter ctx is the complete parser context, or nil if the context
-// should be ignored
-//
-// The func returns the set of tokens that can follow s in the [ATN] in the
-// specified ctx.
-func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet {
- r := NewIntervalSet()
- var lookContext *PredictionContext
- if ctx != nil {
- lookContext = predictionContextFromRuleContext(s.GetATN(), ctx)
- }
- la.look1(s, stopState, lookContext, r, NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfEqInst, ClosureBusyCollection, "LL1Analyzer.Look for la.look1()"),
- NewBitSet(), true, true)
- return r
-}
-
-//*
-// Compute set of tokens that can follow {@code s} in the ATN in the
-// specified {@code ctx}.
-//
-// If {@code ctx} is {@code nil} and {@code stopState} or the end of the
-// rule containing {@code s} is reached, {@link Token//EPSILON} is added to
-// the result set. If {@code ctx} is not {@code nil} and {@code addEOF} is
-// {@code true} and {@code stopState} or the end of the outermost rule is
-// reached, {@link Token//EOF} is added to the result set.
-//
-// @param s the ATN state.
-// @param stopState the ATN state to stop at. This can be a
-// {@link BlockEndState} to detect epsilon paths through a closure.
-// @param ctx The outer context, or {@code nil} if the outer context should
-// not be used.
-// @param look The result lookahead set.
-// @param lookBusy A set used for preventing epsilon closures in the ATN
-// from causing a stack overflow. Outside code should pass
-// {@code NewSet} for la argument.
-// @param calledRuleStack A set used for preventing left recursion in the
-// ATN from causing a stack overflow. Outside code should pass
-// {@code NewBitSet()} for la argument.
-// @param seeThruPreds {@code true} to true semantic predicates as
-// implicitly {@code true} and "see through them", otherwise {@code false}
-// to treat semantic predicates as opaque and add {@link //HitPred} to the
-// result if one is encountered.
-// @param addEOF Add {@link Token//EOF} to the result if the end of the
-// outermost context is reached. This parameter has no effect if {@code ctx}
-// is {@code nil}.
-
-func (la *LL1Analyzer) look2(_, stopState ATNState, ctx *PredictionContext, look *IntervalSet, lookBusy *JStore[*ATNConfig, Comparator[*ATNConfig]],
- calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
-
- returnState := la.atn.states[ctx.getReturnState(i)]
- la.look1(returnState, stopState, ctx.GetParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
-
-}
-
-func (la *LL1Analyzer) look1(s, stopState ATNState, ctx *PredictionContext, look *IntervalSet, lookBusy *JStore[*ATNConfig, Comparator[*ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
-
- c := NewATNConfig6(s, 0, ctx)
-
- if lookBusy.Contains(c) {
- return
- }
-
- _, present := lookBusy.Put(c)
- if present {
- return
-
- }
- if s == stopState {
- if ctx == nil {
- look.addOne(TokenEpsilon)
- return
- } else if ctx.isEmpty() && addEOF {
- look.addOne(TokenEOF)
- return
- }
- }
-
- _, ok := s.(*RuleStopState)
-
- if ok {
- if ctx == nil {
- look.addOne(TokenEpsilon)
- return
- } else if ctx.isEmpty() && addEOF {
- look.addOne(TokenEOF)
- return
- }
-
- if ctx.pcType != PredictionContextEmpty {
- removed := calledRuleStack.contains(s.GetRuleIndex())
- defer func() {
- if removed {
- calledRuleStack.add(s.GetRuleIndex())
- }
- }()
- calledRuleStack.remove(s.GetRuleIndex())
- // run thru all possible stack tops in ctx
- for i := 0; i < ctx.length(); i++ {
- returnState := la.atn.states[ctx.getReturnState(i)]
- la.look2(returnState, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF, i)
- }
- return
- }
- }
-
- n := len(s.GetTransitions())
-
- for i := 0; i < n; i++ {
- t := s.GetTransitions()[i]
-
- if t1, ok := t.(*RuleTransition); ok {
- if calledRuleStack.contains(t1.getTarget().GetRuleIndex()) {
- continue
- }
-
- newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
- la.look3(stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF, t1)
- } else if t2, ok := t.(AbstractPredicateTransition); ok {
- if seeThruPreds {
- la.look1(t2.getTarget(), stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
- } else {
- look.addOne(LL1AnalyzerHitPred)
- }
- } else if t.getIsEpsilon() {
- la.look1(t.getTarget(), stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
- } else if _, ok := t.(*WildcardTransition); ok {
- look.addRange(TokenMinUserTokenType, la.atn.maxTokenType)
- } else {
- set := t.getLabel()
- if set != nil {
- if _, ok := t.(*NotSetTransition); ok {
- set = set.complement(TokenMinUserTokenType, la.atn.maxTokenType)
- }
- look.addSet(set)
- }
- }
- }
-}
-
-func (la *LL1Analyzer) look3(stopState ATNState, ctx *PredictionContext, look *IntervalSet, lookBusy *JStore[*ATNConfig, Comparator[*ATNConfig]],
- calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
-
- newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
-
- defer func() {
- calledRuleStack.remove(t1.getTarget().GetRuleIndex())
- }()
-
- calledRuleStack.add(t1.getTarget().GetRuleIndex())
- la.look1(t1.getTarget(), stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
-
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/nostatistics.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/nostatistics.go
deleted file mode 100644
index 923c7b52..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/nostatistics.go
+++ /dev/null
@@ -1,47 +0,0 @@
-//go:build !antlr.stats
-
-package antlr
-
-// This file is compiled when the build configuration antlr.stats is not enabled.
-// which then allows the compiler to optimize out all the code that is not used.
-const collectStats = false
-
-// goRunStats is a dummy struct used when build configuration antlr.stats is not enabled.
-type goRunStats struct {
-}
-
-var Statistics = &goRunStats{}
-
-func (s *goRunStats) AddJStatRec(_ *JStatRec) {
- // Do nothing - compiler will optimize this out (hopefully)
-}
-
-func (s *goRunStats) CollectionAnomalies() {
- // Do nothing - compiler will optimize this out (hopefully)
-}
-
-func (s *goRunStats) Reset() {
- // Do nothing - compiler will optimize this out (hopefully)
-}
-
-func (s *goRunStats) Report(dir string, prefix string) error {
- // Do nothing - compiler will optimize this out (hopefully)
- return nil
-}
-
-func (s *goRunStats) Analyze() {
- // Do nothing - compiler will optimize this out (hopefully)
-}
-
-type statsOption func(*goRunStats) error
-
-func (s *goRunStats) Configure(options ...statsOption) error {
- // Do nothing - compiler will optimize this out (hopefully)
- return nil
-}
-
-func WithTopN(topN int) statsOption {
- return func(s *goRunStats) error {
- return nil
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser.go
deleted file mode 100644
index fb57ac15..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser.go
+++ /dev/null
@@ -1,700 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
-)
-
-type Parser interface {
- Recognizer
-
- GetInterpreter() *ParserATNSimulator
-
- GetTokenStream() TokenStream
- GetTokenFactory() TokenFactory
- GetParserRuleContext() ParserRuleContext
- SetParserRuleContext(ParserRuleContext)
- Consume() Token
- GetParseListeners() []ParseTreeListener
-
- GetErrorHandler() ErrorStrategy
- SetErrorHandler(ErrorStrategy)
- GetInputStream() IntStream
- GetCurrentToken() Token
- GetExpectedTokens() *IntervalSet
- NotifyErrorListeners(string, Token, RecognitionException)
- IsExpectedToken(int) bool
- GetPrecedence() int
- GetRuleInvocationStack(ParserRuleContext) []string
-}
-
-type BaseParser struct {
- *BaseRecognizer
-
- Interpreter *ParserATNSimulator
- BuildParseTrees bool
-
- input TokenStream
- errHandler ErrorStrategy
- precedenceStack IntStack
- ctx ParserRuleContext
-
- tracer *TraceListener
- parseListeners []ParseTreeListener
- _SyntaxErrors int
-}
-
-// NewBaseParser contains all the parsing support code to embed in parsers. Essentially most of it is error
-// recovery stuff.
-//
-//goland:noinspection GoUnusedExportedFunction
-func NewBaseParser(input TokenStream) *BaseParser {
-
- p := new(BaseParser)
-
- p.BaseRecognizer = NewBaseRecognizer()
-
- // The input stream.
- p.input = nil
-
- // The error handling strategy for the parser. The default value is a new
- // instance of {@link DefaultErrorStrategy}.
- p.errHandler = NewDefaultErrorStrategy()
- p.precedenceStack = make([]int, 0)
- p.precedenceStack.Push(0)
-
- // The ParserRuleContext object for the currently executing rule.
- // p.is always non-nil during the parsing process.
- p.ctx = nil
-
- // Specifies whether the parser should construct a parse tree during
- // the parsing process. The default value is {@code true}.
- p.BuildParseTrees = true
-
- // When setTrace(true) is called, a reference to the
- // TraceListener is stored here, so it can be easily removed in a
- // later call to setTrace(false). The listener itself is
- // implemented as a parser listener so p.field is not directly used by
- // other parser methods.
- p.tracer = nil
-
- // The list of ParseTreeListener listeners registered to receive
- // events during the parse.
- p.parseListeners = nil
-
- // The number of syntax errors Reported during parsing. p.value is
- // incremented each time NotifyErrorListeners is called.
- p._SyntaxErrors = 0
- p.SetInputStream(input)
-
- return p
-}
-
-// This field maps from the serialized ATN string to the deserialized [ATN] with
-// bypass alternatives.
-//
-// [ATNDeserializationOptions.isGenerateRuleBypassTransitions]
-//
-//goland:noinspection GoUnusedGlobalVariable
-var bypassAltsAtnCache = make(map[string]int)
-
-// reset the parser's state//
-func (p *BaseParser) reset() {
- if p.input != nil {
- p.input.Seek(0)
- }
- p.errHandler.reset(p)
- p.ctx = nil
- p._SyntaxErrors = 0
- p.SetTrace(nil)
- p.precedenceStack = make([]int, 0)
- p.precedenceStack.Push(0)
- if p.Interpreter != nil {
- p.Interpreter.reset()
- }
-}
-
-func (p *BaseParser) GetErrorHandler() ErrorStrategy {
- return p.errHandler
-}
-
-func (p *BaseParser) SetErrorHandler(e ErrorStrategy) {
- p.errHandler = e
-}
-
-// Match current input symbol against {@code ttype}. If the symbol type
-// Matches, {@link ANTLRErrorStrategy//ReportMatch} and {@link //consume} are
-// called to complete the Match process.
-//
-// If the symbol type does not Match,
-// {@link ANTLRErrorStrategy//recoverInline} is called on the current error
-// strategy to attempt recovery. If {@link //getBuildParseTree} is
-// {@code true} and the token index of the symbol returned by
-// {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to
-// the parse tree by calling {@link ParserRuleContext//addErrorNode}.
-//
-// @param ttype the token type to Match
-// @return the Matched symbol
-// @panics RecognitionException if the current input symbol did not Match
-// {@code ttype} and the error strategy could not recover from the
-// mismatched symbol
-
-func (p *BaseParser) Match(ttype int) Token {
-
- t := p.GetCurrentToken()
-
- if t.GetTokenType() == ttype {
- p.errHandler.ReportMatch(p)
- p.Consume()
- } else {
- t = p.errHandler.RecoverInline(p)
- if p.HasError() {
- return nil
- }
- if p.BuildParseTrees && t.GetTokenIndex() == -1 {
-
- // we must have conjured up a new token during single token
- // insertion if it's not the current symbol
- p.ctx.AddErrorNode(t)
- }
- }
-
- return t
-}
-
-// Match current input symbol as a wildcard. If the symbol type Matches
-// (i.e. has a value greater than 0), {@link ANTLRErrorStrategy//ReportMatch}
-// and {@link //consume} are called to complete the Match process.
-//
-// If the symbol type does not Match,
-// {@link ANTLRErrorStrategy//recoverInline} is called on the current error
-// strategy to attempt recovery. If {@link //getBuildParseTree} is
-// {@code true} and the token index of the symbol returned by
-// {@link ANTLRErrorStrategy//recoverInline} is -1, the symbol is added to
-// the parse tree by calling {@link ParserRuleContext//addErrorNode}.
-//
-// @return the Matched symbol
-// @panics RecognitionException if the current input symbol did not Match
-// a wildcard and the error strategy could not recover from the mismatched
-// symbol
-
-func (p *BaseParser) MatchWildcard() Token {
- t := p.GetCurrentToken()
- if t.GetTokenType() > 0 {
- p.errHandler.ReportMatch(p)
- p.Consume()
- } else {
- t = p.errHandler.RecoverInline(p)
- if p.BuildParseTrees && t.GetTokenIndex() == -1 {
- // we must have conjured up a new token during single token
- // insertion if it's not the current symbol
- p.ctx.AddErrorNode(t)
- }
- }
- return t
-}
-
-func (p *BaseParser) GetParserRuleContext() ParserRuleContext {
- return p.ctx
-}
-
-func (p *BaseParser) SetParserRuleContext(v ParserRuleContext) {
- p.ctx = v
-}
-
-func (p *BaseParser) GetParseListeners() []ParseTreeListener {
- if p.parseListeners == nil {
- return make([]ParseTreeListener, 0)
- }
- return p.parseListeners
-}
-
-// AddParseListener registers listener to receive events during the parsing process.
-//
-// To support output-preserving grammar transformations (including but not
-// limited to left-recursion removal, automated left-factoring, and
-// optimized code generation), calls to listener methods during the parse
-// may differ substantially from calls made by
-// [ParseTreeWalker.DEFAULT] used after the parse is complete. In
-// particular, rule entry and exit events may occur in a different order
-// during the parse than after the parser. In addition, calls to certain
-// rule entry methods may be omitted.
-//
-// With the following specific exceptions, calls to listener events are
-// deterministic, i.e. for identical input the calls to listener
-// methods will be the same.
-//
-// - Alterations to the grammar used to generate code may change the
-// behavior of the listener calls.
-// - Alterations to the command line options passed to ANTLR 4 when
-// generating the parser may change the behavior of the listener calls.
-// - Changing the version of the ANTLR Tool used to generate the parser
-// may change the behavior of the listener calls.
-func (p *BaseParser) AddParseListener(listener ParseTreeListener) {
- if listener == nil {
- panic("listener")
- }
- if p.parseListeners == nil {
- p.parseListeners = make([]ParseTreeListener, 0)
- }
- p.parseListeners = append(p.parseListeners, listener)
-}
-
-// RemoveParseListener removes listener from the list of parse listeners.
-//
-// If listener is nil or has not been added as a parse
-// listener, this func does nothing.
-func (p *BaseParser) RemoveParseListener(listener ParseTreeListener) {
-
- if p.parseListeners != nil {
-
- idx := -1
- for i, v := range p.parseListeners {
- if v == listener {
- idx = i
- break
- }
- }
-
- if idx == -1 {
- return
- }
-
- // remove the listener from the slice
- p.parseListeners = append(p.parseListeners[0:idx], p.parseListeners[idx+1:]...)
-
- if len(p.parseListeners) == 0 {
- p.parseListeners = nil
- }
- }
-}
-
-// Remove all parse listeners.
-func (p *BaseParser) removeParseListeners() {
- p.parseListeners = nil
-}
-
-// TriggerEnterRuleEvent notifies all parse listeners of an enter rule event.
-func (p *BaseParser) TriggerEnterRuleEvent() {
- if p.parseListeners != nil {
- ctx := p.ctx
- for _, listener := range p.parseListeners {
- listener.EnterEveryRule(ctx)
- ctx.EnterRule(listener)
- }
- }
-}
-
-// TriggerExitRuleEvent notifies any parse listeners of an exit rule event.
-func (p *BaseParser) TriggerExitRuleEvent() {
- if p.parseListeners != nil {
- // reverse order walk of listeners
- ctx := p.ctx
- l := len(p.parseListeners) - 1
-
- for i := range p.parseListeners {
- listener := p.parseListeners[l-i]
- ctx.ExitRule(listener)
- listener.ExitEveryRule(ctx)
- }
- }
-}
-
-func (p *BaseParser) GetInterpreter() *ParserATNSimulator {
- return p.Interpreter
-}
-
-func (p *BaseParser) GetATN() *ATN {
- return p.Interpreter.atn
-}
-
-func (p *BaseParser) GetTokenFactory() TokenFactory {
- return p.input.GetTokenSource().GetTokenFactory()
-}
-
-// setTokenFactory is used to tell our token source and error strategy about a new way to create tokens.
-func (p *BaseParser) setTokenFactory(factory TokenFactory) {
- p.input.GetTokenSource().setTokenFactory(factory)
-}
-
-// GetATNWithBypassAlts - the ATN with bypass alternatives is expensive to create, so we create it
-// lazily.
-func (p *BaseParser) GetATNWithBypassAlts() {
-
- // TODO - Implement this?
- panic("Not implemented!")
-
- // serializedAtn := p.getSerializedATN()
- // if (serializedAtn == nil) {
- // panic("The current parser does not support an ATN with bypass alternatives.")
- // }
- // result := p.bypassAltsAtnCache[serializedAtn]
- // if (result == nil) {
- // deserializationOptions := NewATNDeserializationOptions(nil)
- // deserializationOptions.generateRuleBypassTransitions = true
- // result = NewATNDeserializer(deserializationOptions).deserialize(serializedAtn)
- // p.bypassAltsAtnCache[serializedAtn] = result
- // }
- // return result
-}
-
-// The preferred method of getting a tree pattern. For example, here's a
-// sample use:
-//
-//
-// ParseTree t = parser.expr()
-// ParseTreePattern p = parser.compileParseTreePattern("<ID>+0",
-// MyParser.RULE_expr)
-// ParseTreeMatch m = p.Match(t)
-// String id = m.Get("ID")
-//
-
-//goland:noinspection GoUnusedParameter
-func (p *BaseParser) compileParseTreePattern(pattern, patternRuleIndex, lexer Lexer) {
-
- panic("NewParseTreePatternMatcher not implemented!")
- //
- // if (lexer == nil) {
- // if (p.GetTokenStream() != nil) {
- // tokenSource := p.GetTokenStream().GetTokenSource()
- // if _, ok := tokenSource.(ILexer); ok {
- // lexer = tokenSource
- // }
- // }
- // }
- // if (lexer == nil) {
- // panic("Parser can't discover a lexer to use")
- // }
-
- // m := NewParseTreePatternMatcher(lexer, p)
- // return m.compile(pattern, patternRuleIndex)
-}
-
-func (p *BaseParser) GetInputStream() IntStream {
- return p.GetTokenStream()
-}
-
-func (p *BaseParser) SetInputStream(input TokenStream) {
- p.SetTokenStream(input)
-}
-
-func (p *BaseParser) GetTokenStream() TokenStream {
- return p.input
-}
-
-// SetTokenStream installs input as the token stream and resets the parser.
-func (p *BaseParser) SetTokenStream(input TokenStream) {
- p.input = nil
- p.reset()
- p.input = input
-}
-
-// GetCurrentToken returns the current token at LT(1).
-//
-// [Match] needs to return the current input symbol, which gets put
-// into the label for the associated token ref e.g., x=ID.
-func (p *BaseParser) GetCurrentToken() Token {
- return p.input.LT(1)
-}
-
-func (p *BaseParser) NotifyErrorListeners(msg string, offendingToken Token, err RecognitionException) {
- if offendingToken == nil {
- offendingToken = p.GetCurrentToken()
- }
- p._SyntaxErrors++
- line := offendingToken.GetLine()
- column := offendingToken.GetColumn()
- listener := p.GetErrorListenerDispatch()
- listener.SyntaxError(p, offendingToken, line, column, msg, err)
-}
-
-func (p *BaseParser) Consume() Token {
- o := p.GetCurrentToken()
- if o.GetTokenType() != TokenEOF {
- p.GetInputStream().Consume()
- }
- hasListener := p.parseListeners != nil && len(p.parseListeners) > 0
- if p.BuildParseTrees || hasListener {
- if p.errHandler.InErrorRecoveryMode(p) {
- node := p.ctx.AddErrorNode(o)
- if p.parseListeners != nil {
- for _, l := range p.parseListeners {
- l.VisitErrorNode(node)
- }
- }
-
- } else {
- node := p.ctx.AddTokenNode(o)
- if p.parseListeners != nil {
- for _, l := range p.parseListeners {
- l.VisitTerminal(node)
- }
- }
- }
- // node.invokingState = p.state
- }
-
- return o
-}
-
-func (p *BaseParser) addContextToParseTree() {
- // add current context to parent if we have a parent
- if p.ctx.GetParent() != nil {
- p.ctx.GetParent().(ParserRuleContext).AddChild(p.ctx)
- }
-}
-
-func (p *BaseParser) EnterRule(localctx ParserRuleContext, state, _ int) {
- p.SetState(state)
- p.ctx = localctx
- p.ctx.SetStart(p.input.LT(1))
- if p.BuildParseTrees {
- p.addContextToParseTree()
- }
- if p.parseListeners != nil {
- p.TriggerEnterRuleEvent()
- }
-}
-
-func (p *BaseParser) ExitRule() {
- p.ctx.SetStop(p.input.LT(-1))
- // trigger event on ctx, before it reverts to parent
- if p.parseListeners != nil {
- p.TriggerExitRuleEvent()
- }
- p.SetState(p.ctx.GetInvokingState())
- if p.ctx.GetParent() != nil {
- p.ctx = p.ctx.GetParent().(ParserRuleContext)
- } else {
- p.ctx = nil
- }
-}
-
-func (p *BaseParser) EnterOuterAlt(localctx ParserRuleContext, altNum int) {
- localctx.SetAltNumber(altNum)
- // if we have a new localctx, make sure we replace existing ctx
- // that is previous child of parse tree
- if p.BuildParseTrees && p.ctx != localctx {
- if p.ctx.GetParent() != nil {
- p.ctx.GetParent().(ParserRuleContext).RemoveLastChild()
- p.ctx.GetParent().(ParserRuleContext).AddChild(localctx)
- }
- }
- p.ctx = localctx
-}
-
-// Get the precedence level for the top-most precedence rule.
-//
-// @return The precedence level for the top-most precedence rule, or -1 if
-// the parser context is not nested within a precedence rule.
-
-func (p *BaseParser) GetPrecedence() int {
- if len(p.precedenceStack) == 0 {
- return -1
- }
-
- return p.precedenceStack[len(p.precedenceStack)-1]
-}
-
-func (p *BaseParser) EnterRecursionRule(localctx ParserRuleContext, state, _, precedence int) {
- p.SetState(state)
- p.precedenceStack.Push(precedence)
- p.ctx = localctx
- p.ctx.SetStart(p.input.LT(1))
- if p.parseListeners != nil {
- p.TriggerEnterRuleEvent() // simulates rule entry for
- // left-recursive rules
- }
-}
-
-//
-// Like {@link //EnterRule} but for recursive rules.
-
-func (p *BaseParser) PushNewRecursionContext(localctx ParserRuleContext, state, _ int) {
- previous := p.ctx
- previous.SetParent(localctx)
- previous.SetInvokingState(state)
- previous.SetStop(p.input.LT(-1))
-
- p.ctx = localctx
- p.ctx.SetStart(previous.GetStart())
- if p.BuildParseTrees {
- p.ctx.AddChild(previous)
- }
- if p.parseListeners != nil {
- p.TriggerEnterRuleEvent() // simulates rule entry for
- // left-recursive rules
- }
-}
-
-func (p *BaseParser) UnrollRecursionContexts(parentCtx ParserRuleContext) {
- _, _ = p.precedenceStack.Pop()
- p.ctx.SetStop(p.input.LT(-1))
- retCtx := p.ctx // save current ctx (return value)
- // unroll so ctx is as it was before call to recursive method
- if p.parseListeners != nil {
- for p.ctx != parentCtx {
- p.TriggerExitRuleEvent()
- p.ctx = p.ctx.GetParent().(ParserRuleContext)
- }
- } else {
- p.ctx = parentCtx
- }
- // hook into tree
- retCtx.SetParent(parentCtx)
- if p.BuildParseTrees && parentCtx != nil {
- // add return ctx into invoking rule's tree
- parentCtx.AddChild(retCtx)
- }
-}
-
-func (p *BaseParser) GetInvokingContext(ruleIndex int) ParserRuleContext {
- ctx := p.ctx
- for ctx != nil {
- if ctx.GetRuleIndex() == ruleIndex {
- return ctx
- }
- ctx = ctx.GetParent().(ParserRuleContext)
- }
- return nil
-}
-
-func (p *BaseParser) Precpred(_ RuleContext, precedence int) bool {
- return precedence >= p.precedenceStack[len(p.precedenceStack)-1]
-}
-
-//goland:noinspection GoUnusedParameter
-func (p *BaseParser) inContext(context ParserRuleContext) bool {
- // TODO: useful in parser?
- return false
-}
-
-// IsExpectedToken checks whether symbol can follow the current state in the
-// {ATN}. The behavior of p.method is equivalent to the following, but is
-// implemented such that the complete context-sensitive follow set does not
-// need to be explicitly constructed.
-//
-// return getExpectedTokens().contains(symbol)
-func (p *BaseParser) IsExpectedToken(symbol int) bool {
- atn := p.Interpreter.atn
- ctx := p.ctx
- s := atn.states[p.state]
- following := atn.NextTokens(s, nil)
- if following.contains(symbol) {
- return true
- }
- if !following.contains(TokenEpsilon) {
- return false
- }
- for ctx != nil && ctx.GetInvokingState() >= 0 && following.contains(TokenEpsilon) {
- invokingState := atn.states[ctx.GetInvokingState()]
- rt := invokingState.GetTransitions()[0]
- following = atn.NextTokens(rt.(*RuleTransition).followState, nil)
- if following.contains(symbol) {
- return true
- }
- ctx = ctx.GetParent().(ParserRuleContext)
- }
- if following.contains(TokenEpsilon) && symbol == TokenEOF {
- return true
- }
-
- return false
-}
-
-// GetExpectedTokens and returns the set of input symbols which could follow the current parser
-// state and context, as given by [GetState] and [GetContext],
-// respectively.
-func (p *BaseParser) GetExpectedTokens() *IntervalSet {
- return p.Interpreter.atn.getExpectedTokens(p.state, p.ctx)
-}
-
-func (p *BaseParser) GetExpectedTokensWithinCurrentRule() *IntervalSet {
- atn := p.Interpreter.atn
- s := atn.states[p.state]
- return atn.NextTokens(s, nil)
-}
-
-// GetRuleIndex get a rule's index (i.e., RULE_ruleName field) or -1 if not found.
-func (p *BaseParser) GetRuleIndex(ruleName string) int {
- var ruleIndex, ok = p.GetRuleIndexMap()[ruleName]
- if ok {
- return ruleIndex
- }
-
- return -1
-}
-
-// GetRuleInvocationStack returns a list of the rule names in your parser instance
-// leading up to a call to the current rule. You could override if
-// you want more details such as the file/line info of where
-// in the ATN a rule is invoked.
-func (p *BaseParser) GetRuleInvocationStack(c ParserRuleContext) []string {
- if c == nil {
- c = p.ctx
- }
- stack := make([]string, 0)
- for c != nil {
- // compute what follows who invoked us
- ruleIndex := c.GetRuleIndex()
- if ruleIndex < 0 {
- stack = append(stack, "n/a")
- } else {
- stack = append(stack, p.GetRuleNames()[ruleIndex])
- }
-
- vp := c.GetParent()
-
- if vp == nil {
- break
- }
-
- c = vp.(ParserRuleContext)
- }
- return stack
-}
-
-// GetDFAStrings returns a list of all DFA states used for debugging purposes
-func (p *BaseParser) GetDFAStrings() string {
- return fmt.Sprint(p.Interpreter.decisionToDFA)
-}
-
-// DumpDFA prints the whole of the DFA for debugging
-func (p *BaseParser) DumpDFA() {
- seenOne := false
- for _, dfa := range p.Interpreter.decisionToDFA {
- if dfa.Len() > 0 {
- if seenOne {
- fmt.Println()
- }
- fmt.Println("Decision " + strconv.Itoa(dfa.decision) + ":")
- fmt.Print(dfa.String(p.LiteralNames, p.SymbolicNames))
- seenOne = true
- }
- }
-}
-
-func (p *BaseParser) GetSourceName() string {
- return p.GrammarFileName
-}
-
-// SetTrace installs a trace listener for the parse.
-//
-// During a parse it is sometimes useful to listen in on the rule entry and exit
-// events as well as token Matches. This is for quick and dirty debugging.
-func (p *BaseParser) SetTrace(trace *TraceListener) {
- if trace == nil {
- p.RemoveParseListener(p.tracer)
- p.tracer = nil
- } else {
- if p.tracer != nil {
- p.RemoveParseListener(p.tracer)
- }
- p.tracer = NewTraceListener(p)
- p.AddParseListener(p.tracer)
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_atn_simulator.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_atn_simulator.go
deleted file mode 100644
index ae286969..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_atn_simulator.go
+++ /dev/null
@@ -1,1668 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
- "strings"
-)
-
-var ()
-
-// ClosureBusy is a store of ATNConfigs and is a tiny abstraction layer over
-// a standard JStore so that we can use Lazy instantiation of the JStore, mostly
-// to avoid polluting the stats module with a ton of JStore instances with nothing in them.
-type ClosureBusy struct {
- bMap *JStore[*ATNConfig, Comparator[*ATNConfig]]
- desc string
-}
-
-// NewClosureBusy creates a new ClosureBusy instance used to avoid infinite recursion for right-recursive rules
-func NewClosureBusy(desc string) *ClosureBusy {
- return &ClosureBusy{
- desc: desc,
- }
-}
-
-func (c *ClosureBusy) Put(config *ATNConfig) (*ATNConfig, bool) {
- if c.bMap == nil {
- c.bMap = NewJStore[*ATNConfig, Comparator[*ATNConfig]](aConfEqInst, ClosureBusyCollection, c.desc)
- }
- return c.bMap.Put(config)
-}
-
-type ParserATNSimulator struct {
- BaseATNSimulator
-
- parser Parser
- predictionMode int
- input TokenStream
- startIndex int
- dfa *DFA
- mergeCache *JPCMap
- outerContext ParserRuleContext
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewParserATNSimulator(parser Parser, atn *ATN, decisionToDFA []*DFA, sharedContextCache *PredictionContextCache) *ParserATNSimulator {
-
- p := &ParserATNSimulator{
- BaseATNSimulator: BaseATNSimulator{
- atn: atn,
- sharedContextCache: sharedContextCache,
- },
- }
-
- p.parser = parser
- p.decisionToDFA = decisionToDFA
- // SLL, LL, or LL + exact ambig detection?//
- p.predictionMode = PredictionModeLL
- // LAME globals to avoid parameters!!!!! I need these down deep in predTransition
- p.input = nil
- p.startIndex = 0
- p.outerContext = nil
- p.dfa = nil
- // Each prediction operation uses a cache for merge of prediction contexts.
- // Don't keep around as it wastes huge amounts of memory. [JPCMap]
- // isn't Synchronized, but we're ok since two threads shouldn't reuse same
- // parser/atn-simulator object because it can only handle one input at a time.
- // This maps graphs a and b to merged result c. (a,b) -> c. We can avoid
- // the merge if we ever see a and b again. Note that (b,a) -> c should
- // also be examined during cache lookup.
- //
- p.mergeCache = nil
-
- return p
-}
-
-func (p *ParserATNSimulator) GetPredictionMode() int {
- return p.predictionMode
-}
-
-func (p *ParserATNSimulator) SetPredictionMode(v int) {
- p.predictionMode = v
-}
-
-func (p *ParserATNSimulator) reset() {
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) AdaptivePredict(parser *BaseParser, input TokenStream, decision int, outerContext ParserRuleContext) int {
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("adaptivePredict decision " + strconv.Itoa(decision) +
- " exec LA(1)==" + p.getLookaheadName(input) +
- " line " + strconv.Itoa(input.LT(1).GetLine()) + ":" +
- strconv.Itoa(input.LT(1).GetColumn()))
- }
- p.input = input
- p.startIndex = input.Index()
- p.outerContext = outerContext
-
- dfa := p.decisionToDFA[decision]
- p.dfa = dfa
- m := input.Mark()
- index := input.Index()
-
- defer func() {
- p.dfa = nil
- p.mergeCache = nil // whack cache after each prediction
- // Do not attempt to run a GC now that we're done with the cache as makes the
- // GC overhead terrible for badly formed grammars and has little effect on well formed
- // grammars.
- // I have made some extra effort to try and reduce memory pressure by reusing allocations when
- // possible. However, it can only have a limited effect. The real solution is to encourage grammar
- // authors to think more carefully about their grammar and to use the new antlr.stats tag to inspect
- // what is happening at runtime, along with using the error listener to report ambiguities.
-
- input.Seek(index)
- input.Release(m)
- }()
-
- // Now we are certain to have a specific decision's DFA
- // But, do we still need an initial state?
- var s0 *DFAState
- p.atn.stateMu.RLock()
- if dfa.getPrecedenceDfa() {
- p.atn.edgeMu.RLock()
- // the start state for a precedence DFA depends on the current
- // parser precedence, and is provided by a DFA method.
- s0 = dfa.getPrecedenceStartState(p.parser.GetPrecedence())
- p.atn.edgeMu.RUnlock()
- } else {
- // the start state for a "regular" DFA is just s0
- s0 = dfa.getS0()
- }
- p.atn.stateMu.RUnlock()
-
- if s0 == nil {
- if outerContext == nil {
- outerContext = ParserRuleContextEmpty
- }
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("predictATN decision " + strconv.Itoa(dfa.decision) +
- " exec LA(1)==" + p.getLookaheadName(input) +
- ", outerContext=" + outerContext.String(p.parser.GetRuleNames(), nil))
- }
- fullCtx := false
- s0Closure := p.computeStartState(dfa.atnStartState, ParserRuleContextEmpty, fullCtx)
-
- p.atn.stateMu.Lock()
- if dfa.getPrecedenceDfa() {
- // If p is a precedence DFA, we use applyPrecedenceFilter
- // to convert the computed start state to a precedence start
- // state. We then use DFA.setPrecedenceStartState to set the
- // appropriate start state for the precedence level rather
- // than simply setting DFA.s0.
- //
- dfa.s0.configs = s0Closure
- s0Closure = p.applyPrecedenceFilter(s0Closure)
- s0 = p.addDFAState(dfa, NewDFAState(-1, s0Closure))
- p.atn.edgeMu.Lock()
- dfa.setPrecedenceStartState(p.parser.GetPrecedence(), s0)
- p.atn.edgeMu.Unlock()
- } else {
- s0 = p.addDFAState(dfa, NewDFAState(-1, s0Closure))
- dfa.setS0(s0)
- }
- p.atn.stateMu.Unlock()
- }
-
- alt, re := p.execATN(dfa, s0, input, index, outerContext)
- parser.SetError(re)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("DFA after predictATN: " + dfa.String(p.parser.GetLiteralNames(), nil))
- }
- return alt
-
-}
-
-// execATN performs ATN simulation to compute a predicted alternative based
-// upon the remaining input, but also updates the DFA cache to avoid
-// having to traverse the ATN again for the same input sequence.
-//
-// There are some key conditions we're looking for after computing a new
-// set of ATN configs (proposed DFA state):
-//
-// - If the set is empty, there is no viable alternative for current symbol
-// - Does the state uniquely predict an alternative?
-// - Does the state have a conflict that would prevent us from
-// putting it on the work list?
-//
-// We also have some key operations to do:
-//
-// - Add an edge from previous DFA state to potentially NewDFA state, D,
-// - Upon current symbol but only if adding to work list, which means in all
-// cases except no viable alternative (and possibly non-greedy decisions?)
-// - Collecting predicates and adding semantic context to DFA accept states
-// - adding rule context to context-sensitive DFA accept states
-// - Consuming an input symbol
-// - Reporting a conflict
-// - Reporting an ambiguity
-// - Reporting a context sensitivity
-// - Reporting insufficient predicates
-//
-// Cover these cases:
-//
-// - dead end
-// - single alt
-// - single alt + predicates
-// - conflict
-// - conflict + predicates
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream, startIndex int, outerContext ParserRuleContext) (int, RecognitionException) {
-
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("execATN decision " + strconv.Itoa(dfa.decision) +
- ", DFA state " + s0.String() +
- ", LA(1)==" + p.getLookaheadName(input) +
- " line " + strconv.Itoa(input.LT(1).GetLine()) + ":" + strconv.Itoa(input.LT(1).GetColumn()))
- }
-
- previousD := s0
-
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("s0 = " + s0.String())
- }
- t := input.LA(1)
- for { // for more work
- D := p.getExistingTargetState(previousD, t)
- if D == nil {
- D = p.computeTargetState(dfa, previousD, t)
- }
- if D == ATNSimulatorError {
- // if any configs in previous dipped into outer context, that
- // means that input up to t actually finished entry rule
- // at least for SLL decision. Full LL doesn't dip into outer
- // so don't need special case.
- // We will get an error no matter what so delay until after
- // decision better error message. Also, no reachable target
- // ATN states in SLL implies LL will also get nowhere.
- // If conflict in states that dip out, choose min since we
- // will get error no matter what.
- e := p.noViableAlt(input, outerContext, previousD.configs, startIndex)
- input.Seek(startIndex)
- alt := p.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previousD.configs, outerContext)
- if alt != ATNInvalidAltNumber {
- return alt, nil
- }
- p.parser.SetError(e)
- return ATNInvalidAltNumber, e
- }
- if D.requiresFullContext && p.predictionMode != PredictionModeSLL {
- // IF PREDS, MIGHT RESOLVE TO SINGLE ALT => SLL (or syntax error)
- conflictingAlts := D.configs.conflictingAlts
- if D.predicates != nil {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("DFA state has preds in DFA sim LL fail-over")
- }
- conflictIndex := input.Index()
- if conflictIndex != startIndex {
- input.Seek(startIndex)
- }
- conflictingAlts = p.evalSemanticContext(D.predicates, outerContext, true)
- if conflictingAlts.length() == 1 {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("Full LL avoided")
- }
- return conflictingAlts.minValue(), nil
- }
- if conflictIndex != startIndex {
- // restore the index so Reporting the fallback to full
- // context occurs with the index at the correct spot
- input.Seek(conflictIndex)
- }
- }
- if runtimeConfig.parserATNSimulatorDFADebug {
- fmt.Println("ctx sensitive state " + outerContext.String(nil, nil) + " in " + D.String())
- }
- fullCtx := true
- s0Closure := p.computeStartState(dfa.atnStartState, outerContext, fullCtx)
- p.ReportAttemptingFullContext(dfa, conflictingAlts, D.configs, startIndex, input.Index())
- alt, re := p.execATNWithFullContext(dfa, D, s0Closure, input, startIndex, outerContext)
- return alt, re
- }
- if D.isAcceptState {
- if D.predicates == nil {
- return D.prediction, nil
- }
- stopIndex := input.Index()
- input.Seek(startIndex)
- alts := p.evalSemanticContext(D.predicates, outerContext, true)
-
- switch alts.length() {
- case 0:
- return ATNInvalidAltNumber, p.noViableAlt(input, outerContext, D.configs, startIndex)
- case 1:
- return alts.minValue(), nil
- default:
- // Report ambiguity after predicate evaluation to make sure the correct set of ambig alts is Reported.
- p.ReportAmbiguity(dfa, D, startIndex, stopIndex, false, alts, D.configs)
- return alts.minValue(), nil
- }
- }
- previousD = D
-
- if t != TokenEOF {
- input.Consume()
- t = input.LA(1)
- }
- }
-}
-
-// Get an existing target state for an edge in the DFA. If the target state
-// for the edge has not yet been computed or is otherwise not available,
-// p method returns {@code nil}.
-//
-// @param previousD The current DFA state
-// @param t The next input symbol
-// @return The existing target DFA state for the given input symbol
-// {@code t}, or {@code nil} if the target state for p edge is not
-// already cached
-
-func (p *ParserATNSimulator) getExistingTargetState(previousD *DFAState, t int) *DFAState {
- if t+1 < 0 {
- return nil
- }
-
- p.atn.edgeMu.RLock()
- defer p.atn.edgeMu.RUnlock()
- edges := previousD.getEdges()
- if edges == nil || t+1 >= len(edges) {
- return nil
- }
- return previousD.getIthEdge(t + 1)
-}
-
-// Compute a target state for an edge in the DFA, and attempt to add the
-// computed state and corresponding edge to the DFA.
-//
-// @param dfa The DFA
-// @param previousD The current DFA state
-// @param t The next input symbol
-//
-// @return The computed target DFA state for the given input symbol
-// {@code t}. If {@code t} does not lead to a valid DFA state, p method
-// returns {@link //ERROR}.
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) computeTargetState(dfa *DFA, previousD *DFAState, t int) *DFAState {
- reach := p.computeReachSet(previousD.configs, t, false)
-
- if reach == nil {
- p.addDFAEdge(dfa, previousD, t, ATNSimulatorError)
- return ATNSimulatorError
- }
- // create new target state we'll add to DFA after it's complete
- D := NewDFAState(-1, reach)
-
- predictedAlt := p.getUniqueAlt(reach)
-
- if runtimeConfig.parserATNSimulatorDebug {
- altSubSets := PredictionModegetConflictingAltSubsets(reach)
- fmt.Println("SLL altSubSets=" + fmt.Sprint(altSubSets) +
- ", previous=" + previousD.configs.String() +
- ", configs=" + reach.String() +
- ", predict=" + strconv.Itoa(predictedAlt) +
- ", allSubsetsConflict=" +
- fmt.Sprint(PredictionModeallSubsetsConflict(altSubSets)) +
- ", conflictingAlts=" + p.getConflictingAlts(reach).String())
- }
- if predictedAlt != ATNInvalidAltNumber {
- // NO CONFLICT, UNIQUELY PREDICTED ALT
- D.isAcceptState = true
- D.configs.uniqueAlt = predictedAlt
- D.setPrediction(predictedAlt)
- } else if PredictionModehasSLLConflictTerminatingPrediction(p.predictionMode, reach) {
- // MORE THAN ONE VIABLE ALTERNATIVE
- D.configs.conflictingAlts = p.getConflictingAlts(reach)
- D.requiresFullContext = true
- // in SLL-only mode, we will stop at p state and return the minimum alt
- D.isAcceptState = true
- D.setPrediction(D.configs.conflictingAlts.minValue())
- }
- if D.isAcceptState && D.configs.hasSemanticContext {
- p.predicateDFAState(D, p.atn.getDecisionState(dfa.decision))
- if D.predicates != nil {
- D.setPrediction(ATNInvalidAltNumber)
- }
- }
- // all adds to dfa are done after we've created full D state
- D = p.addDFAEdge(dfa, previousD, t, D)
- return D
-}
-
-func (p *ParserATNSimulator) predicateDFAState(dfaState *DFAState, decisionState DecisionState) {
- // We need to test all predicates, even in DFA states that
- // uniquely predict alternative.
- nalts := len(decisionState.GetTransitions())
- // Update DFA so reach becomes accept state with (predicate,alt)
- // pairs if preds found for conflicting alts
- altsToCollectPredsFrom := p.getConflictingAltsOrUniqueAlt(dfaState.configs)
- altToPred := p.getPredsForAmbigAlts(altsToCollectPredsFrom, dfaState.configs, nalts)
- if altToPred != nil {
- dfaState.predicates = p.getPredicatePredictions(altsToCollectPredsFrom, altToPred)
- dfaState.setPrediction(ATNInvalidAltNumber) // make sure we use preds
- } else {
- // There are preds in configs but they might go away
- // when OR'd together like {p}? || NONE == NONE. If neither
- // alt has preds, resolve to min alt
- dfaState.setPrediction(altsToCollectPredsFrom.minValue())
- }
-}
-
-// comes back with reach.uniqueAlt set to a valid alt
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 *ATNConfigSet, input TokenStream, startIndex int, outerContext ParserRuleContext) (int, RecognitionException) {
-
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("execATNWithFullContext " + s0.String())
- }
-
- fullCtx := true
- foundExactAmbig := false
- var reach *ATNConfigSet
- previous := s0
- input.Seek(startIndex)
- t := input.LA(1)
- predictedAlt := -1
-
- for { // for more work
- reach = p.computeReachSet(previous, t, fullCtx)
- if reach == nil {
- // if any configs in previous dipped into outer context, that
- // means that input up to t actually finished entry rule
- // at least for LL decision. Full LL doesn't dip into outer
- // so don't need special case.
- // We will get an error no matter what so delay until after
- // decision better error message. Also, no reachable target
- // ATN states in SLL implies LL will also get nowhere.
- // If conflict in states that dip out, choose min since we
- // will get error no matter what.
- input.Seek(startIndex)
- alt := p.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previous, outerContext)
- if alt != ATNInvalidAltNumber {
- return alt, nil
- }
- return alt, p.noViableAlt(input, outerContext, previous, startIndex)
- }
- altSubSets := PredictionModegetConflictingAltSubsets(reach)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("LL altSubSets=" + fmt.Sprint(altSubSets) + ", predict=" +
- strconv.Itoa(PredictionModegetUniqueAlt(altSubSets)) + ", resolvesToJustOneViableAlt=" +
- fmt.Sprint(PredictionModeresolvesToJustOneViableAlt(altSubSets)))
- }
- reach.uniqueAlt = p.getUniqueAlt(reach)
- // unique prediction?
- if reach.uniqueAlt != ATNInvalidAltNumber {
- predictedAlt = reach.uniqueAlt
- break
- }
- if p.predictionMode != PredictionModeLLExactAmbigDetection {
- predictedAlt = PredictionModeresolvesToJustOneViableAlt(altSubSets)
- if predictedAlt != ATNInvalidAltNumber {
- break
- }
- } else {
- // In exact ambiguity mode, we never try to terminate early.
- // Just keeps scarfing until we know what the conflict is
- if PredictionModeallSubsetsConflict(altSubSets) && PredictionModeallSubsetsEqual(altSubSets) {
- foundExactAmbig = true
- predictedAlt = PredictionModegetSingleViableAlt(altSubSets)
- break
- }
- // else there are multiple non-conflicting subsets or
- // we're not sure what the ambiguity is yet.
- // So, keep going.
- }
- previous = reach
- if t != TokenEOF {
- input.Consume()
- t = input.LA(1)
- }
- }
- // If the configuration set uniquely predicts an alternative,
- // without conflict, then we know that it's a full LL decision
- // not SLL.
- if reach.uniqueAlt != ATNInvalidAltNumber {
- p.ReportContextSensitivity(dfa, predictedAlt, reach, startIndex, input.Index())
- return predictedAlt, nil
- }
- // We do not check predicates here because we have checked them
- // on-the-fly when doing full context prediction.
-
- //
- // In non-exact ambiguity detection mode, we might actually be able to
- // detect an exact ambiguity, but I'm not going to spend the cycles
- // needed to check. We only emit ambiguity warnings in exact ambiguity
- // mode.
- //
- // For example, we might know that we have conflicting configurations.
- // But, that does not mean that there is no way forward without a
- // conflict. It's possible to have non-conflicting alt subsets as in:
- //
- // altSubSets=[{1, 2}, {1, 2}, {1}, {1, 2}]
- //
- // from
- //
- // [(17,1,[5 $]), (13,1,[5 10 $]), (21,1,[5 10 $]), (11,1,[$]),
- // (13,2,[5 10 $]), (21,2,[5 10 $]), (11,2,[$])]
- //
- // In p case, (17,1,[5 $]) indicates there is some next sequence that
- // would resolve p without conflict to alternative 1. Any other viable
- // next sequence, however, is associated with a conflict. We stop
- // looking for input because no amount of further lookahead will alter
- // the fact that we should predict alternative 1. We just can't say for
- // sure that there is an ambiguity without looking further.
-
- p.ReportAmbiguity(dfa, D, startIndex, input.Index(), foundExactAmbig, reach.Alts(), reach)
-
- return predictedAlt, nil
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) computeReachSet(closure *ATNConfigSet, t int, fullCtx bool) *ATNConfigSet {
- if p.mergeCache == nil {
- p.mergeCache = NewJPCMap(ReachSetCollection, "Merge cache for computeReachSet()")
- }
- intermediate := NewATNConfigSet(fullCtx)
-
- // Configurations already in a rule stop state indicate reaching the end
- // of the decision rule (local context) or end of the start rule (full
- // context). Once reached, these configurations are never updated by a
- // closure operation, so they are handled separately for the performance
- // advantage of having a smaller intermediate set when calling closure.
- //
- // For full-context reach operations, separate handling is required to
- // ensure that the alternative Matching the longest overall sequence is
- // chosen when multiple such configurations can Match the input.
-
- var skippedStopStates []*ATNConfig
-
- // First figure out where we can reach on input t
- for _, c := range closure.configs {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("testing " + p.GetTokenName(t) + " at " + c.String())
- }
-
- if _, ok := c.GetState().(*RuleStopState); ok {
- if fullCtx || t == TokenEOF {
- skippedStopStates = append(skippedStopStates, c)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("added " + c.String() + " to SkippedStopStates")
- }
- }
- continue
- }
-
- for _, trans := range c.GetState().GetTransitions() {
- target := p.getReachableTarget(trans, t)
- if target != nil {
- cfg := NewATNConfig4(c, target)
- intermediate.Add(cfg, p.mergeCache)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("added " + cfg.String() + " to intermediate")
- }
- }
- }
- }
-
- // Now figure out where the reach operation can take us...
- var reach *ATNConfigSet
-
- // This block optimizes the reach operation for intermediate sets which
- // trivially indicate a termination state for the overall
- // AdaptivePredict operation.
- //
- // The conditions assume that intermediate
- // contains all configurations relevant to the reach set, but p
- // condition is not true when one or more configurations have been
- // withheld in SkippedStopStates, or when the current symbol is EOF.
- //
- if skippedStopStates == nil && t != TokenEOF {
- if len(intermediate.configs) == 1 {
- // Don't pursue the closure if there is just one state.
- // It can only have one alternative just add to result
- // Also don't pursue the closure if there is unique alternative
- // among the configurations.
- reach = intermediate
- } else if p.getUniqueAlt(intermediate) != ATNInvalidAltNumber {
- // Also don't pursue the closure if there is unique alternative
- // among the configurations.
- reach = intermediate
- }
- }
- // If the reach set could not be trivially determined, perform a closure
- // operation on the intermediate set to compute its initial value.
- //
- if reach == nil {
- reach = NewATNConfigSet(fullCtx)
- closureBusy := NewClosureBusy("ParserATNSimulator.computeReachSet() make a closureBusy")
- treatEOFAsEpsilon := t == TokenEOF
- amount := len(intermediate.configs)
- for k := 0; k < amount; k++ {
- p.closure(intermediate.configs[k], reach, closureBusy, false, fullCtx, treatEOFAsEpsilon)
- }
- }
- if t == TokenEOF {
- // After consuming EOF no additional input is possible, so we are
- // only interested in configurations which reached the end of the
- // decision rule (local context) or end of the start rule (full
- // context). Update reach to contain only these configurations. This
- // handles both explicit EOF transitions in the grammar and implicit
- // EOF transitions following the end of the decision or start rule.
- //
- // When reach==intermediate, no closure operation was performed. In
- // p case, removeAllConfigsNotInRuleStopState needs to check for
- // reachable rule stop states as well as configurations already in
- // a rule stop state.
- //
- // This is handled before the configurations in SkippedStopStates,
- // because any configurations potentially added from that list are
- // already guaranteed to meet this condition whether it's
- // required.
- //
- reach = p.removeAllConfigsNotInRuleStopState(reach, reach.Equals(intermediate))
- }
- // If SkippedStopStates!=nil, then it contains at least one
- // configuration. For full-context reach operations, these
- // configurations reached the end of the start rule, in which case we
- // only add them back to reach if no configuration during the current
- // closure operation reached such a state. This ensures AdaptivePredict
- // chooses an alternative Matching the longest overall sequence when
- // multiple alternatives are viable.
- //
- if skippedStopStates != nil && ((!fullCtx) || (!PredictionModehasConfigInRuleStopState(reach))) {
- for l := 0; l < len(skippedStopStates); l++ {
- reach.Add(skippedStopStates[l], p.mergeCache)
- }
- }
-
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("computeReachSet " + closure.String() + " -> " + reach.String())
- }
-
- if len(reach.configs) == 0 {
- return nil
- }
-
- return reach
-}
-
-// removeAllConfigsNotInRuleStopState returns a configuration set containing only the configurations from
-// configs which are in a [RuleStopState]. If all
-// configurations in configs are already in a rule stop state, this
-// method simply returns configs.
-//
-// When lookToEndOfRule is true, this method uses
-// [ATN].[NextTokens] for each configuration in configs which is
-// not already in a rule stop state to see if a rule stop state is reachable
-// from the configuration via epsilon-only transitions.
-//
-// When lookToEndOfRule is true, this method checks for rule stop states
-// reachable by epsilon-only transitions from each configuration in
-// configs.
-//
-// The func returns configs if all configurations in configs are in a
-// rule stop state, otherwise it returns a new configuration set containing only
-// the configurations from configs which are in a rule stop state
-func (p *ParserATNSimulator) removeAllConfigsNotInRuleStopState(configs *ATNConfigSet, lookToEndOfRule bool) *ATNConfigSet {
- if PredictionModeallConfigsInRuleStopStates(configs) {
- return configs
- }
- result := NewATNConfigSet(configs.fullCtx)
- for _, config := range configs.configs {
- if _, ok := config.GetState().(*RuleStopState); ok {
- result.Add(config, p.mergeCache)
- continue
- }
- if lookToEndOfRule && config.GetState().GetEpsilonOnlyTransitions() {
- NextTokens := p.atn.NextTokens(config.GetState(), nil)
- if NextTokens.contains(TokenEpsilon) {
- endOfRuleState := p.atn.ruleToStopState[config.GetState().GetRuleIndex()]
- result.Add(NewATNConfig4(config, endOfRuleState), p.mergeCache)
- }
- }
- }
- return result
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, fullCtx bool) *ATNConfigSet {
- // always at least the implicit call to start rule
- initialContext := predictionContextFromRuleContext(p.atn, ctx)
- configs := NewATNConfigSet(fullCtx)
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("computeStartState from ATN state " + a.String() +
- " initialContext=" + initialContext.String())
- }
-
- for i := 0; i < len(a.GetTransitions()); i++ {
- target := a.GetTransitions()[i].getTarget()
- c := NewATNConfig6(target, i+1, initialContext)
- closureBusy := NewClosureBusy("ParserATNSimulator.computeStartState() make a closureBusy")
- p.closure(c, configs, closureBusy, true, fullCtx, false)
- }
- return configs
-}
-
-// applyPrecedenceFilter transforms the start state computed by
-// [computeStartState] to the special start state used by a
-// precedence [DFA] for a particular precedence value. The transformation
-// process applies the following changes to the start state's configuration
-// set.
-//
-// 1. Evaluate the precedence predicates for each configuration using
-// [SemanticContext].evalPrecedence.
-// 2. Remove all configurations which predict an alternative greater than
-// 1, for which another configuration that predicts alternative 1 is in the
-// same ATN state with the same prediction context.
-//
-// Transformation 2 is valid for the following reasons:
-//
-// - The closure block cannot contain any epsilon transitions which bypass
-// the body of the closure, so all states reachable via alternative 1 are
-// part of the precedence alternatives of the transformed left-recursive
-// rule.
-// - The "primary" portion of a left recursive rule cannot contain an
-// epsilon transition, so the only way an alternative other than 1 can exist
-// in a state that is also reachable via alternative 1 is by nesting calls
-// to the left-recursive rule, with the outer calls not being at the
-// preferred precedence level.
-//
-// The prediction context must be considered by this filter to address
-// situations like the following:
-//
-// grammar TA
-// prog: statement* EOF
-// statement: letterA | statement letterA 'b'
-// letterA: 'a'
-//
-// In the above grammar, the [ATN] state immediately before the token
-// reference 'a' in letterA is reachable from the left edge
-// of both the primary and closure blocks of the left-recursive rule
-// statement. The prediction context associated with each of these
-// configurations distinguishes between them, and prevents the alternative
-// which stepped out to prog, and then back in to statement
-// from being eliminated by the filter.
-//
-// The func returns the transformed configuration set representing the start state
-// for a precedence [DFA] at a particular precedence level (determined by
-// calling [Parser].getPrecedence).
-func (p *ParserATNSimulator) applyPrecedenceFilter(configs *ATNConfigSet) *ATNConfigSet {
-
- statesFromAlt1 := make(map[int]*PredictionContext)
- configSet := NewATNConfigSet(configs.fullCtx)
-
- for _, config := range configs.configs {
- // handle alt 1 first
- if config.GetAlt() != 1 {
- continue
- }
- updatedContext := config.GetSemanticContext().evalPrecedence(p.parser, p.outerContext)
- if updatedContext == nil {
- // the configuration was eliminated
- continue
- }
- statesFromAlt1[config.GetState().GetStateNumber()] = config.GetContext()
- if updatedContext != config.GetSemanticContext() {
- configSet.Add(NewATNConfig2(config, updatedContext), p.mergeCache)
- } else {
- configSet.Add(config, p.mergeCache)
- }
- }
- for _, config := range configs.configs {
-
- if config.GetAlt() == 1 {
- // already handled
- continue
- }
- // In the future, p elimination step could be updated to also
- // filter the prediction context for alternatives predicting alt>1
- // (basically a graph subtraction algorithm).
- if !config.getPrecedenceFilterSuppressed() {
- context := statesFromAlt1[config.GetState().GetStateNumber()]
- if context != nil && context.Equals(config.GetContext()) {
- // eliminated
- continue
- }
- }
- configSet.Add(config, p.mergeCache)
- }
- return configSet
-}
-
-func (p *ParserATNSimulator) getReachableTarget(trans Transition, ttype int) ATNState {
- if trans.Matches(ttype, 0, p.atn.maxTokenType) {
- return trans.getTarget()
- }
-
- return nil
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) getPredsForAmbigAlts(ambigAlts *BitSet, configs *ATNConfigSet, nalts int) []SemanticContext {
-
- altToPred := make([]SemanticContext, nalts+1)
- for _, c := range configs.configs {
- if ambigAlts.contains(c.GetAlt()) {
- altToPred[c.GetAlt()] = SemanticContextorContext(altToPred[c.GetAlt()], c.GetSemanticContext())
- }
- }
- nPredAlts := 0
- for i := 1; i <= nalts; i++ {
- pred := altToPred[i]
- if pred == nil {
- altToPred[i] = SemanticContextNone
- } else if pred != SemanticContextNone {
- nPredAlts++
- }
- }
- // unambiguous alts are nil in altToPred
- if nPredAlts == 0 {
- altToPred = nil
- }
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("getPredsForAmbigAlts result " + fmt.Sprint(altToPred))
- }
- return altToPred
-}
-
-func (p *ParserATNSimulator) getPredicatePredictions(ambigAlts *BitSet, altToPred []SemanticContext) []*PredPrediction {
- pairs := make([]*PredPrediction, 0)
- containsPredicate := false
- for i := 1; i < len(altToPred); i++ {
- pred := altToPred[i]
- // un-predicated is indicated by SemanticContextNONE
- if ambigAlts != nil && ambigAlts.contains(i) {
- pairs = append(pairs, NewPredPrediction(pred, i))
- }
- if pred != SemanticContextNone {
- containsPredicate = true
- }
- }
- if !containsPredicate {
- return nil
- }
- return pairs
-}
-
-// getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule is used to improve the localization of error messages by
-// choosing an alternative rather than panic a NoViableAltException in particular prediction scenarios where the
-// Error state was reached during [ATN] simulation.
-//
-// The default implementation of this method uses the following
-// algorithm to identify an [ATN] configuration which successfully parsed the
-// decision entry rule. Choosing such an alternative ensures that the
-// [ParserRuleContext] returned by the calling rule will be complete
-// and valid, and the syntax error will be Reported later at a more
-// localized location.
-//
-// - If a syntactically valid path or paths reach the end of the decision rule, and
-// they are semantically valid if predicated, return the min associated alt.
-// - Else, if a semantically invalid but syntactically valid path exist
-// or paths exist, return the minimum associated alt.
-// - Otherwise, return [ATNInvalidAltNumber].
-//
-// In some scenarios, the algorithm described above could predict an
-// alternative which will result in a [FailedPredicateException] in
-// the parser. Specifically, this could occur if the only configuration
-// capable of successfully parsing to the end of the decision rule is
-// blocked by a semantic predicate. By choosing this alternative within
-// [AdaptivePredict] instead of panic a [NoViableAltException], the resulting
-// [FailedPredicateException] in the parser will identify the specific
-// predicate which is preventing the parser from successfully parsing the
-// decision rule, which helps developers identify and correct logic errors
-// in semantic predicates.
-//
-// pass in the configs holding ATN configurations which were valid immediately before
-// the ERROR state was reached, outerContext as the initial parser context from the paper
-// or the parser stack at the instant before prediction commences.
-//
-// Teh func returns the value to return from [AdaptivePredict], or
-// [ATNInvalidAltNumber] if a suitable alternative was not
-// identified and [AdaptivePredict] should report an error instead.
-func (p *ParserATNSimulator) getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(configs *ATNConfigSet, outerContext ParserRuleContext) int {
- cfgs := p.splitAccordingToSemanticValidity(configs, outerContext)
- semValidConfigs := cfgs[0]
- semInvalidConfigs := cfgs[1]
- alt := p.GetAltThatFinishedDecisionEntryRule(semValidConfigs)
- if alt != ATNInvalidAltNumber { // semantically/syntactically viable path exists
- return alt
- }
- // Is there a syntactically valid path with a failed pred?
- if len(semInvalidConfigs.configs) > 0 {
- alt = p.GetAltThatFinishedDecisionEntryRule(semInvalidConfigs)
- if alt != ATNInvalidAltNumber { // syntactically viable path exists
- return alt
- }
- }
- return ATNInvalidAltNumber
-}
-
-func (p *ParserATNSimulator) GetAltThatFinishedDecisionEntryRule(configs *ATNConfigSet) int {
- alts := NewIntervalSet()
-
- for _, c := range configs.configs {
- _, ok := c.GetState().(*RuleStopState)
-
- if c.GetReachesIntoOuterContext() > 0 || (ok && c.GetContext().hasEmptyPath()) {
- alts.addOne(c.GetAlt())
- }
- }
- if alts.length() == 0 {
- return ATNInvalidAltNumber
- }
-
- return alts.first()
-}
-
-// Walk the list of configurations and split them according to
-// those that have preds evaluating to true/false. If no pred, assume
-// true pred and include in succeeded set. Returns Pair of sets.
-//
-// Create a NewSet so as not to alter the incoming parameter.
-//
-// Assumption: the input stream has been restored to the starting point
-// prediction, which is where predicates need to evaluate.
-
-type ATNConfigSetPair struct {
- item0, item1 *ATNConfigSet
-}
-
-func (p *ParserATNSimulator) splitAccordingToSemanticValidity(configs *ATNConfigSet, outerContext ParserRuleContext) []*ATNConfigSet {
- succeeded := NewATNConfigSet(configs.fullCtx)
- failed := NewATNConfigSet(configs.fullCtx)
-
- for _, c := range configs.configs {
- if c.GetSemanticContext() != SemanticContextNone {
- predicateEvaluationResult := c.GetSemanticContext().evaluate(p.parser, outerContext)
- if predicateEvaluationResult {
- succeeded.Add(c, nil)
- } else {
- failed.Add(c, nil)
- }
- } else {
- succeeded.Add(c, nil)
- }
- }
- return []*ATNConfigSet{succeeded, failed}
-}
-
-// evalSemanticContext looks through a list of predicate/alt pairs, returning alts for the
-// pairs that win. A [SemanticContextNone] predicate indicates an alt containing an
-// un-predicated runtimeConfig which behaves as "always true." If !complete
-// then we stop at the first predicate that evaluates to true. This
-// includes pairs with nil predicates.
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPrediction, outerContext ParserRuleContext, complete bool) *BitSet {
- predictions := NewBitSet()
- for i := 0; i < len(predPredictions); i++ {
- pair := predPredictions[i]
- if pair.pred == SemanticContextNone {
- predictions.add(pair.alt)
- if !complete {
- break
- }
- continue
- }
-
- predicateEvaluationResult := pair.pred.evaluate(p.parser, outerContext)
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorDFADebug {
- fmt.Println("eval pred " + pair.String() + "=" + fmt.Sprint(predicateEvaluationResult))
- }
- if predicateEvaluationResult {
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorDFADebug {
- fmt.Println("PREDICT " + fmt.Sprint(pair.alt))
- }
- predictions.add(pair.alt)
- if !complete {
- break
- }
- }
- }
- return predictions
-}
-
-func (p *ParserATNSimulator) closure(config *ATNConfig, configs *ATNConfigSet, closureBusy *ClosureBusy, collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
- initialDepth := 0
- p.closureCheckingStopState(config, configs, closureBusy, collectPredicates,
- fullCtx, initialDepth, treatEOFAsEpsilon)
-}
-
-func (p *ParserATNSimulator) closureCheckingStopState(config *ATNConfig, configs *ATNConfigSet, closureBusy *ClosureBusy, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("closure(" + config.String() + ")")
- }
-
- var stack []*ATNConfig
- visited := make(map[*ATNConfig]bool)
-
- stack = append(stack, config)
-
- for len(stack) > 0 {
- currConfig := stack[len(stack)-1]
- stack = stack[:len(stack)-1]
-
- if _, ok := visited[currConfig]; ok {
- continue
- }
- visited[currConfig] = true
-
- if _, ok := currConfig.GetState().(*RuleStopState); ok {
- // We hit rule end. If we have context info, use it
- // run thru all possible stack tops in ctx
- if !currConfig.GetContext().isEmpty() {
- for i := 0; i < currConfig.GetContext().length(); i++ {
- if currConfig.GetContext().getReturnState(i) == BasePredictionContextEmptyReturnState {
- if fullCtx {
- nb := NewATNConfig1(currConfig, currConfig.GetState(), BasePredictionContextEMPTY)
- configs.Add(nb, p.mergeCache)
- continue
- } else {
- // we have no context info, just chase follow links (if greedy)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("FALLING off rule " + p.getRuleName(currConfig.GetState().GetRuleIndex()))
- }
- p.closureWork(currConfig, configs, closureBusy, collectPredicates, fullCtx, depth, treatEOFAsEpsilon)
- }
- continue
- }
- returnState := p.atn.states[currConfig.GetContext().getReturnState(i)]
- newContext := currConfig.GetContext().GetParent(i) // "pop" return state
-
- c := NewATNConfig5(returnState, currConfig.GetAlt(), newContext, currConfig.GetSemanticContext())
- // While we have context to pop back from, we may have
- // gotten that context AFTER having falling off a rule.
- // Make sure we track that we are now out of context.
- c.SetReachesIntoOuterContext(currConfig.GetReachesIntoOuterContext())
-
- stack = append(stack, c)
- }
- continue
- } else if fullCtx {
- // reached end of start rule
- configs.Add(currConfig, p.mergeCache)
- continue
- } else {
- // else if we have no context info, just chase follow links (if greedy)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("FALLING off rule " + p.getRuleName(currConfig.GetState().GetRuleIndex()))
- }
- }
- }
-
- p.closureWork(currConfig, configs, closureBusy, collectPredicates, fullCtx, depth, treatEOFAsEpsilon)
- }
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) closureCheckingStopStateRecursive(config *ATNConfig, configs *ATNConfigSet, closureBusy *ClosureBusy, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("closure(" + config.String() + ")")
- }
-
- if _, ok := config.GetState().(*RuleStopState); ok {
- // We hit rule end. If we have context info, use it
- // run thru all possible stack tops in ctx
- if !config.GetContext().isEmpty() {
- for i := 0; i < config.GetContext().length(); i++ {
- if config.GetContext().getReturnState(i) == BasePredictionContextEmptyReturnState {
- if fullCtx {
- nb := NewATNConfig1(config, config.GetState(), BasePredictionContextEMPTY)
- configs.Add(nb, p.mergeCache)
- continue
- } else {
- // we have no context info, just chase follow links (if greedy)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("FALLING off rule " + p.getRuleName(config.GetState().GetRuleIndex()))
- }
- p.closureWork(config, configs, closureBusy, collectPredicates, fullCtx, depth, treatEOFAsEpsilon)
- }
- continue
- }
- returnState := p.atn.states[config.GetContext().getReturnState(i)]
- newContext := config.GetContext().GetParent(i) // "pop" return state
-
- c := NewATNConfig5(returnState, config.GetAlt(), newContext, config.GetSemanticContext())
- // While we have context to pop back from, we may have
- // gotten that context AFTER having falling off a rule.
- // Make sure we track that we are now out of context.
- c.SetReachesIntoOuterContext(config.GetReachesIntoOuterContext())
- p.closureCheckingStopState(c, configs, closureBusy, collectPredicates, fullCtx, depth-1, treatEOFAsEpsilon)
- }
- return
- } else if fullCtx {
- // reached end of start rule
- configs.Add(config, p.mergeCache)
- return
- } else {
- // else if we have no context info, just chase follow links (if greedy)
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("FALLING off rule " + p.getRuleName(config.GetState().GetRuleIndex()))
- }
- }
- }
- p.closureWork(config, configs, closureBusy, collectPredicates, fullCtx, depth, treatEOFAsEpsilon)
-}
-
-// Do the actual work of walking epsilon edges
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) closureWork(config *ATNConfig, configs *ATNConfigSet, closureBusy *ClosureBusy, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
- state := config.GetState()
- // optimization
- if !state.GetEpsilonOnlyTransitions() {
- configs.Add(config, p.mergeCache)
- // make sure to not return here, because EOF transitions can act as
- // both epsilon transitions and non-epsilon transitions.
- }
- for i := 0; i < len(state.GetTransitions()); i++ {
- if i == 0 && p.canDropLoopEntryEdgeInLeftRecursiveRule(config) {
- continue
- }
-
- t := state.GetTransitions()[i]
- _, ok := t.(*ActionTransition)
- continueCollecting := collectPredicates && !ok
- c := p.getEpsilonTarget(config, t, continueCollecting, depth == 0, fullCtx, treatEOFAsEpsilon)
- if c != nil {
- newDepth := depth
-
- if _, ok := config.GetState().(*RuleStopState); ok {
- // target fell off end of rule mark resulting c as having dipped into outer context
- // We can't get here if incoming config was rule stop and we had context
- // track how far we dip into outer context. Might
- // come in handy and we avoid evaluating context dependent
- // preds if this is > 0.
-
- if p.dfa != nil && p.dfa.getPrecedenceDfa() {
- if t.(*EpsilonTransition).outermostPrecedenceReturn == p.dfa.atnStartState.GetRuleIndex() {
- c.setPrecedenceFilterSuppressed(true)
- }
- }
-
- c.SetReachesIntoOuterContext(c.GetReachesIntoOuterContext() + 1)
-
- _, present := closureBusy.Put(c)
- if present {
- // avoid infinite recursion for right-recursive rules
- continue
- }
-
- configs.dipsIntoOuterContext = true // TODO: can remove? only care when we add to set per middle of this method
- newDepth--
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("dips into outer ctx: " + c.String())
- }
- } else {
-
- if !t.getIsEpsilon() {
- _, present := closureBusy.Put(c)
- if present {
- // avoid infinite recursion for EOF* and EOF+
- continue
- }
- }
- if _, ok := t.(*RuleTransition); ok {
- // latch when newDepth goes negative - once we step out of the entry context we can't return
- if newDepth >= 0 {
- newDepth++
- }
- }
- }
- p.closureCheckingStopState(c, configs, closureBusy, continueCollecting, fullCtx, newDepth, treatEOFAsEpsilon)
- }
- }
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config *ATNConfig) bool {
- if !runtimeConfig.lRLoopEntryBranchOpt {
- return false
- }
-
- _p := config.GetState()
-
- // First check to see if we are in StarLoopEntryState generated during
- // left-recursion elimination. For efficiency, also check if
- // the context has an empty stack case. If so, it would mean
- // global FOLLOW so we can't perform optimization
- if _p.GetStateType() != ATNStateStarLoopEntry {
- return false
- }
- startLoop, ok := _p.(*StarLoopEntryState)
- if !ok {
- return false
- }
- if !startLoop.precedenceRuleDecision ||
- config.GetContext().isEmpty() ||
- config.GetContext().hasEmptyPath() {
- return false
- }
-
- // Require all return states to return back to the same rule
- // that p is in.
- numCtxs := config.GetContext().length()
- for i := 0; i < numCtxs; i++ {
- returnState := p.atn.states[config.GetContext().getReturnState(i)]
- if returnState.GetRuleIndex() != _p.GetRuleIndex() {
- return false
- }
- }
- x := _p.GetTransitions()[0].getTarget()
- decisionStartState := x.(BlockStartState)
- blockEndStateNum := decisionStartState.getEndState().stateNumber
- blockEndState := p.atn.states[blockEndStateNum].(*BlockEndState)
-
- // Verify that the top of each stack context leads to loop entry/exit
- // state through epsilon edges and w/o leaving rule.
-
- for i := 0; i < numCtxs; i++ { // for each stack context
- returnStateNumber := config.GetContext().getReturnState(i)
- returnState := p.atn.states[returnStateNumber]
-
- // all states must have single outgoing epsilon edge
- if len(returnState.GetTransitions()) != 1 || !returnState.GetTransitions()[0].getIsEpsilon() {
- return false
- }
-
- // Look for prefix op case like 'not expr', (' type ')' expr
- returnStateTarget := returnState.GetTransitions()[0].getTarget()
- if returnState.GetStateType() == ATNStateBlockEnd && returnStateTarget == _p {
- continue
- }
-
- // Look for 'expr op expr' or case where expr's return state is block end
- // of (...)* internal block; the block end points to loop back
- // which points to p but we don't need to check that
- if returnState == blockEndState {
- continue
- }
-
- // Look for ternary expr ? expr : expr. The return state points at block end,
- // which points at loop entry state
- if returnStateTarget == blockEndState {
- continue
- }
-
- // Look for complex prefix 'between expr and expr' case where 2nd expr's
- // return state points at block end state of (...)* internal block
- if returnStateTarget.GetStateType() == ATNStateBlockEnd &&
- len(returnStateTarget.GetTransitions()) == 1 &&
- returnStateTarget.GetTransitions()[0].getIsEpsilon() &&
- returnStateTarget.GetTransitions()[0].getTarget() == _p {
- continue
- }
-
- // anything else ain't conforming
- return false
- }
-
- return true
-}
-
-func (p *ParserATNSimulator) getRuleName(index int) string {
- if p.parser != nil && index >= 0 {
- return p.parser.GetRuleNames()[index]
- }
- var sb strings.Builder
- sb.Grow(32)
-
- sb.WriteString("')
- return sb.String()
-}
-
-func (p *ParserATNSimulator) getEpsilonTarget(config *ATNConfig, t Transition, collectPredicates, inContext, fullCtx, treatEOFAsEpsilon bool) *ATNConfig {
-
- switch t.getSerializationType() {
- case TransitionRULE:
- return p.ruleTransition(config, t.(*RuleTransition))
- case TransitionPRECEDENCE:
- return p.precedenceTransition(config, t.(*PrecedencePredicateTransition), collectPredicates, inContext, fullCtx)
- case TransitionPREDICATE:
- return p.predTransition(config, t.(*PredicateTransition), collectPredicates, inContext, fullCtx)
- case TransitionACTION:
- return p.actionTransition(config, t.(*ActionTransition))
- case TransitionEPSILON:
- return NewATNConfig4(config, t.getTarget())
- case TransitionATOM, TransitionRANGE, TransitionSET:
- // EOF transitions act like epsilon transitions after the first EOF
- // transition is traversed
- if treatEOFAsEpsilon {
- if t.Matches(TokenEOF, 0, 1) {
- return NewATNConfig4(config, t.getTarget())
- }
- }
- return nil
- default:
- return nil
- }
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) actionTransition(config *ATNConfig, t *ActionTransition) *ATNConfig {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("ACTION edge " + strconv.Itoa(t.ruleIndex) + ":" + strconv.Itoa(t.actionIndex))
- }
- return NewATNConfig4(config, t.getTarget())
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) precedenceTransition(config *ATNConfig,
- pt *PrecedencePredicateTransition, collectPredicates, inContext, fullCtx bool) *ATNConfig {
-
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("PRED (collectPredicates=" + fmt.Sprint(collectPredicates) + ") " +
- strconv.Itoa(pt.precedence) + ">=_p, ctx dependent=true")
- if p.parser != nil {
- fmt.Println("context surrounding pred is " + fmt.Sprint(p.parser.GetRuleInvocationStack(nil)))
- }
- }
- var c *ATNConfig
- if collectPredicates && inContext {
- if fullCtx {
- // In full context mode, we can evaluate predicates on-the-fly
- // during closure, which dramatically reduces the size of
- // the runtimeConfig sets. It also obviates the need to test predicates
- // later during conflict resolution.
- currentPosition := p.input.Index()
- p.input.Seek(p.startIndex)
- predSucceeds := pt.getPredicate().evaluate(p.parser, p.outerContext)
- p.input.Seek(currentPosition)
- if predSucceeds {
- c = NewATNConfig4(config, pt.getTarget()) // no pred context
- }
- } else {
- newSemCtx := SemanticContextandContext(config.GetSemanticContext(), pt.getPredicate())
- c = NewATNConfig3(config, pt.getTarget(), newSemCtx)
- }
- } else {
- c = NewATNConfig4(config, pt.getTarget())
- }
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("runtimeConfig from pred transition=" + c.String())
- }
- return c
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) predTransition(config *ATNConfig, pt *PredicateTransition, collectPredicates, inContext, fullCtx bool) *ATNConfig {
-
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("PRED (collectPredicates=" + fmt.Sprint(collectPredicates) + ") " + strconv.Itoa(pt.ruleIndex) +
- ":" + strconv.Itoa(pt.predIndex) + ", ctx dependent=" + fmt.Sprint(pt.isCtxDependent))
- if p.parser != nil {
- fmt.Println("context surrounding pred is " + fmt.Sprint(p.parser.GetRuleInvocationStack(nil)))
- }
- }
- var c *ATNConfig
- if collectPredicates && (!pt.isCtxDependent || inContext) {
- if fullCtx {
- // In full context mode, we can evaluate predicates on-the-fly
- // during closure, which dramatically reduces the size of
- // the config sets. It also obviates the need to test predicates
- // later during conflict resolution.
- currentPosition := p.input.Index()
- p.input.Seek(p.startIndex)
- predSucceeds := pt.getPredicate().evaluate(p.parser, p.outerContext)
- p.input.Seek(currentPosition)
- if predSucceeds {
- c = NewATNConfig4(config, pt.getTarget()) // no pred context
- }
- } else {
- newSemCtx := SemanticContextandContext(config.GetSemanticContext(), pt.getPredicate())
- c = NewATNConfig3(config, pt.getTarget(), newSemCtx)
- }
- } else {
- c = NewATNConfig4(config, pt.getTarget())
- }
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("config from pred transition=" + c.String())
- }
- return c
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) ruleTransition(config *ATNConfig, t *RuleTransition) *ATNConfig {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("CALL rule " + p.getRuleName(t.getTarget().GetRuleIndex()) + ", ctx=" + config.GetContext().String())
- }
- returnState := t.followState
- newContext := SingletonBasePredictionContextCreate(config.GetContext(), returnState.GetStateNumber())
- return NewATNConfig1(config, t.getTarget(), newContext)
-}
-
-func (p *ParserATNSimulator) getConflictingAlts(configs *ATNConfigSet) *BitSet {
- altsets := PredictionModegetConflictingAltSubsets(configs)
- return PredictionModeGetAlts(altsets)
-}
-
-// getConflictingAltsOrUniqueAlt Sam pointed out a problem with the previous definition, v3, of
-// ambiguous states. If we have another state associated with conflicting
-// alternatives, we should keep going. For example, the following grammar
-//
-// s : (ID | ID ID?) ;
-//
-// When the [ATN] simulation reaches the state before ;, it has a [DFA]
-// state that looks like:
-//
-// [12|1|[], 6|2|[], 12|2|[]].
-//
-// Naturally
-//
-// 12|1|[] and 12|2|[]
-//
-// conflict, but we cannot stop processing this node
-// because alternative to has another way to continue, via
-//
-// [6|2|[]].
-//
-// The key is that we have a single state that has config's only associated
-// with a single alternative, 2, and crucially the state transitions
-// among the configurations are all non-epsilon transitions. That means
-// we don't consider any conflicts that include alternative 2. So, we
-// ignore the conflict between alts 1 and 2. We ignore a set of
-// conflicting alts when there is an intersection with an alternative
-// associated with a single alt state in the state config-list map.
-//
-// It's also the case that we might have two conflicting configurations but
-// also a 3rd non-conflicting configuration for a different alternative:
-//
-// [1|1|[], 1|2|[], 8|3|[]].
-//
-// This can come about from grammar:
-//
-// a : A | A | A B
-//
-// After Matching input A, we reach the stop state for rule A, state 1.
-// State 8 is the state right before B. Clearly alternatives 1 and 2
-// conflict and no amount of further lookahead will separate the two.
-// However, alternative 3 will be able to continue, so we do not
-// stop working on this state.
-//
-// In the previous example, we're concerned
-// with states associated with the conflicting alternatives. Here alt
-// 3 is not associated with the conflicting configs, but since we can continue
-// looking for input reasonably, I don't declare the state done. We
-// ignore a set of conflicting alts when we have an alternative
-// that we still need to pursue.
-func (p *ParserATNSimulator) getConflictingAltsOrUniqueAlt(configs *ATNConfigSet) *BitSet {
- var conflictingAlts *BitSet
- if configs.uniqueAlt != ATNInvalidAltNumber {
- conflictingAlts = NewBitSet()
- conflictingAlts.add(configs.uniqueAlt)
- } else {
- conflictingAlts = configs.conflictingAlts
- }
- return conflictingAlts
-}
-
-func (p *ParserATNSimulator) GetTokenName(t int) string {
- if t == TokenEOF {
- return "EOF"
- }
-
- if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetLiteralNames()) {
- return p.parser.GetLiteralNames()[t] + "<" + strconv.Itoa(t) + ">"
- }
-
- if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetSymbolicNames()) {
- return p.parser.GetSymbolicNames()[t] + "<" + strconv.Itoa(t) + ">"
- }
-
- return strconv.Itoa(t)
-}
-
-func (p *ParserATNSimulator) getLookaheadName(input TokenStream) string {
- return p.GetTokenName(input.LA(1))
-}
-
-// Used for debugging in [AdaptivePredict] around [execATN], but I cut
-// it out for clarity now that alg. works well. We can leave this
-// "dead" code for a bit.
-func (p *ParserATNSimulator) dumpDeadEndConfigs(_ *NoViableAltException) {
-
- panic("Not implemented")
-
- // fmt.Println("dead end configs: ")
- // var decs = nvae.deadEndConfigs
- //
- // for i:=0; i0) {
- // var t = c.state.GetTransitions()[0]
- // if t2, ok := t.(*AtomTransition); ok {
- // trans = "Atom "+ p.GetTokenName(t2.label)
- // } else if t3, ok := t.(SetTransition); ok {
- // _, ok := t.(*NotSetTransition)
- //
- // var s string
- // if (ok){
- // s = "~"
- // }
- //
- // trans = s + "Set " + t3.set
- // }
- // }
- // fmt.Errorf(c.String(p.parser, true) + ":" + trans)
- // }
-}
-
-func (p *ParserATNSimulator) noViableAlt(input TokenStream, outerContext ParserRuleContext, configs *ATNConfigSet, startIndex int) *NoViableAltException {
- return NewNoViableAltException(p.parser, input, input.Get(startIndex), input.LT(1), configs, outerContext)
-}
-
-func (p *ParserATNSimulator) getUniqueAlt(configs *ATNConfigSet) int {
- alt := ATNInvalidAltNumber
- for _, c := range configs.configs {
- if alt == ATNInvalidAltNumber {
- alt = c.GetAlt() // found first alt
- } else if c.GetAlt() != alt {
- return ATNInvalidAltNumber
- }
- }
- return alt
-}
-
-// Add an edge to the DFA, if possible. This method calls
-// {@link //addDFAState} to ensure the {@code to} state is present in the
-// DFA. If {@code from} is {@code nil}, or if {@code t} is outside the
-// range of edges that can be represented in the DFA tables, p method
-// returns without adding the edge to the DFA.
-//
-// If {@code to} is {@code nil}, p method returns {@code nil}.
-// Otherwise, p method returns the {@link DFAState} returned by calling
-// {@link //addDFAState} for the {@code to} state.
-//
-// @param dfa The DFA
-// @param from The source state for the edge
-// @param t The input symbol
-// @param to The target state for the edge
-//
-// @return If {@code to} is {@code nil}, p method returns {@code nil}
-// otherwise p method returns the result of calling {@link //addDFAState}
-// on {@code to}
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFAState) *DFAState {
- if runtimeConfig.parserATNSimulatorDebug {
- fmt.Println("EDGE " + from.String() + " -> " + to.String() + " upon " + p.GetTokenName(t))
- }
- if to == nil {
- return nil
- }
- p.atn.stateMu.Lock()
- to = p.addDFAState(dfa, to) // used existing if possible not incoming
- p.atn.stateMu.Unlock()
- if from == nil || t < -1 || t > p.atn.maxTokenType {
- return to
- }
- p.atn.edgeMu.Lock()
- if from.getEdges() == nil {
- from.setEdges(make([]*DFAState, p.atn.maxTokenType+1+1))
- }
- from.setIthEdge(t+1, to) // connect
- p.atn.edgeMu.Unlock()
-
- if runtimeConfig.parserATNSimulatorDebug {
- var names []string
- if p.parser != nil {
- names = p.parser.GetLiteralNames()
- }
-
- fmt.Println("DFA=\n" + dfa.String(names, nil))
- }
- return to
-}
-
-// addDFAState adds state D to the [DFA] if it is not already present, and returns
-// the actual instance stored in the [DFA]. If a state equivalent to D
-// is already in the [DFA], the existing state is returned. Otherwise, this
-// method returns D after adding it to the [DFA].
-//
-// If D is [ATNSimulatorError], this method returns [ATNSimulatorError] and
-// does not change the DFA.
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) addDFAState(dfa *DFA, d *DFAState) *DFAState {
- if d == ATNSimulatorError {
- return d
- }
-
- existing, present := dfa.Get(d)
- if present {
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Print("addDFAState " + d.String() + " exists")
- }
- return existing
- }
-
- // The state will be added if not already there or we will be given back the existing state struct
- // if it is present.
- //
- d.stateNumber = dfa.Len()
- if !d.configs.readOnly {
- d.configs.OptimizeConfigs(&p.BaseATNSimulator)
- d.configs.readOnly = true
- d.configs.configLookup = nil
- }
- dfa.Put(d)
-
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("addDFAState new " + d.String())
- }
-
- return d
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) ReportAttemptingFullContext(dfa *DFA, conflictingAlts *BitSet, configs *ATNConfigSet, startIndex, stopIndex int) {
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorRetryDebug {
- interval := NewInterval(startIndex, stopIndex+1)
- fmt.Println("ReportAttemptingFullContext decision=" + strconv.Itoa(dfa.decision) + ":" + configs.String() +
- ", input=" + p.parser.GetTokenStream().GetTextFromInterval(interval))
- }
- if p.parser != nil {
- p.parser.GetErrorListenerDispatch().ReportAttemptingFullContext(p.parser, dfa, startIndex, stopIndex, conflictingAlts, configs)
- }
-}
-
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) ReportContextSensitivity(dfa *DFA, prediction int, configs *ATNConfigSet, startIndex, stopIndex int) {
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorRetryDebug {
- interval := NewInterval(startIndex, stopIndex+1)
- fmt.Println("ReportContextSensitivity decision=" + strconv.Itoa(dfa.decision) + ":" + configs.String() +
- ", input=" + p.parser.GetTokenStream().GetTextFromInterval(interval))
- }
- if p.parser != nil {
- p.parser.GetErrorListenerDispatch().ReportContextSensitivity(p.parser, dfa, startIndex, stopIndex, prediction, configs)
- }
-}
-
-// ReportAmbiguity reports and ambiguity in the parse, which shows that the parser will explore a different route.
-//
-// If context-sensitive parsing, we know it's an ambiguity not a conflict or error, but we can report it to the developer
-// so that they can see that this is happening and can take action if they want to.
-//
-//goland:noinspection GoBoolExpressions
-func (p *ParserATNSimulator) ReportAmbiguity(dfa *DFA, _ *DFAState, startIndex, stopIndex int,
- exact bool, ambigAlts *BitSet, configs *ATNConfigSet) {
- if runtimeConfig.parserATNSimulatorDebug || runtimeConfig.parserATNSimulatorRetryDebug {
- interval := NewInterval(startIndex, stopIndex+1)
- fmt.Println("ReportAmbiguity " + ambigAlts.String() + ":" + configs.String() +
- ", input=" + p.parser.GetTokenStream().GetTextFromInterval(interval))
- }
- if p.parser != nil {
- p.parser.GetErrorListenerDispatch().ReportAmbiguity(p.parser, dfa, startIndex, stopIndex, exact, ambigAlts, configs)
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_rule_context.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_rule_context.go
deleted file mode 100644
index c249bc13..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/parser_rule_context.go
+++ /dev/null
@@ -1,421 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "reflect"
- "strconv"
-)
-
-type ParserRuleContext interface {
- RuleContext
-
- SetException(RecognitionException)
-
- AddTokenNode(token Token) *TerminalNodeImpl
- AddErrorNode(badToken Token) *ErrorNodeImpl
-
- EnterRule(listener ParseTreeListener)
- ExitRule(listener ParseTreeListener)
-
- SetStart(Token)
- GetStart() Token
-
- SetStop(Token)
- GetStop() Token
-
- AddChild(child RuleContext) RuleContext
- RemoveLastChild()
-}
-
-type BaseParserRuleContext struct {
- parentCtx RuleContext
- invokingState int
- RuleIndex int
-
- start, stop Token
- exception RecognitionException
- children []Tree
-}
-
-func NewBaseParserRuleContext(parent ParserRuleContext, invokingStateNumber int) *BaseParserRuleContext {
- prc := new(BaseParserRuleContext)
- InitBaseParserRuleContext(prc, parent, invokingStateNumber)
- return prc
-}
-
-func InitBaseParserRuleContext(prc *BaseParserRuleContext, parent ParserRuleContext, invokingStateNumber int) {
- // What context invoked b rule?
- prc.parentCtx = parent
-
- // What state invoked the rule associated with b context?
- // The "return address" is the followState of invokingState
- // If parent is nil, b should be -1.
- if parent == nil {
- prc.invokingState = -1
- } else {
- prc.invokingState = invokingStateNumber
- }
-
- prc.RuleIndex = -1
- // * If we are debugging or building a parse tree for a Visitor,
- // we need to track all of the tokens and rule invocations associated
- // with prc rule's context. This is empty for parsing w/o tree constr.
- // operation because we don't the need to track the details about
- // how we parse prc rule.
- // /
- prc.children = nil
- prc.start = nil
- prc.stop = nil
- // The exception that forced prc rule to return. If the rule successfully
- // completed, prc is {@code nil}.
- prc.exception = nil
-}
-
-func (prc *BaseParserRuleContext) SetException(e RecognitionException) {
- prc.exception = e
-}
-
-func (prc *BaseParserRuleContext) GetChildren() []Tree {
- return prc.children
-}
-
-func (prc *BaseParserRuleContext) CopyFrom(ctx *BaseParserRuleContext) {
- // from RuleContext
- prc.parentCtx = ctx.parentCtx
- prc.invokingState = ctx.invokingState
- prc.children = nil
- prc.start = ctx.start
- prc.stop = ctx.stop
-}
-
-func (prc *BaseParserRuleContext) GetText() string {
- if prc.GetChildCount() == 0 {
- return ""
- }
-
- var s string
- for _, child := range prc.children {
- s += child.(ParseTree).GetText()
- }
-
- return s
-}
-
-// EnterRule is called when any rule is entered.
-func (prc *BaseParserRuleContext) EnterRule(_ ParseTreeListener) {
-}
-
-// ExitRule is called when any rule is exited.
-func (prc *BaseParserRuleContext) ExitRule(_ ParseTreeListener) {
-}
-
-// * Does not set parent link other add methods do that
-func (prc *BaseParserRuleContext) addTerminalNodeChild(child TerminalNode) TerminalNode {
- if prc.children == nil {
- prc.children = make([]Tree, 0)
- }
- if child == nil {
- panic("Child may not be null")
- }
- prc.children = append(prc.children, child)
- return child
-}
-
-func (prc *BaseParserRuleContext) AddChild(child RuleContext) RuleContext {
- if prc.children == nil {
- prc.children = make([]Tree, 0)
- }
- if child == nil {
- panic("Child may not be null")
- }
- prc.children = append(prc.children, child)
- return child
-}
-
-// RemoveLastChild is used by [EnterOuterAlt] to toss out a [RuleContext] previously added as
-// we entered a rule. If we have a label, we will need to remove
-// the generic ruleContext object.
-func (prc *BaseParserRuleContext) RemoveLastChild() {
- if prc.children != nil && len(prc.children) > 0 {
- prc.children = prc.children[0 : len(prc.children)-1]
- }
-}
-
-func (prc *BaseParserRuleContext) AddTokenNode(token Token) *TerminalNodeImpl {
-
- node := NewTerminalNodeImpl(token)
- prc.addTerminalNodeChild(node)
- node.parentCtx = prc
- return node
-
-}
-
-func (prc *BaseParserRuleContext) AddErrorNode(badToken Token) *ErrorNodeImpl {
- node := NewErrorNodeImpl(badToken)
- prc.addTerminalNodeChild(node)
- node.parentCtx = prc
- return node
-}
-
-func (prc *BaseParserRuleContext) GetChild(i int) Tree {
- if prc.children != nil && len(prc.children) >= i {
- return prc.children[i]
- }
-
- return nil
-}
-
-func (prc *BaseParserRuleContext) GetChildOfType(i int, childType reflect.Type) RuleContext {
- if childType == nil {
- return prc.GetChild(i).(RuleContext)
- }
-
- for j := 0; j < len(prc.children); j++ {
- child := prc.children[j]
- if reflect.TypeOf(child) == childType {
- if i == 0 {
- return child.(RuleContext)
- }
-
- i--
- }
- }
-
- return nil
-}
-
-func (prc *BaseParserRuleContext) ToStringTree(ruleNames []string, recog Recognizer) string {
- return TreesStringTree(prc, ruleNames, recog)
-}
-
-func (prc *BaseParserRuleContext) GetRuleContext() RuleContext {
- return prc
-}
-
-func (prc *BaseParserRuleContext) Accept(visitor ParseTreeVisitor) interface{} {
- return visitor.VisitChildren(prc)
-}
-
-func (prc *BaseParserRuleContext) SetStart(t Token) {
- prc.start = t
-}
-
-func (prc *BaseParserRuleContext) GetStart() Token {
- return prc.start
-}
-
-func (prc *BaseParserRuleContext) SetStop(t Token) {
- prc.stop = t
-}
-
-func (prc *BaseParserRuleContext) GetStop() Token {
- return prc.stop
-}
-
-func (prc *BaseParserRuleContext) GetToken(ttype int, i int) TerminalNode {
-
- for j := 0; j < len(prc.children); j++ {
- child := prc.children[j]
- if c2, ok := child.(TerminalNode); ok {
- if c2.GetSymbol().GetTokenType() == ttype {
- if i == 0 {
- return c2
- }
-
- i--
- }
- }
- }
- return nil
-}
-
-func (prc *BaseParserRuleContext) GetTokens(ttype int) []TerminalNode {
- if prc.children == nil {
- return make([]TerminalNode, 0)
- }
-
- tokens := make([]TerminalNode, 0)
-
- for j := 0; j < len(prc.children); j++ {
- child := prc.children[j]
- if tchild, ok := child.(TerminalNode); ok {
- if tchild.GetSymbol().GetTokenType() == ttype {
- tokens = append(tokens, tchild)
- }
- }
- }
-
- return tokens
-}
-
-func (prc *BaseParserRuleContext) GetPayload() interface{} {
- return prc
-}
-
-func (prc *BaseParserRuleContext) getChild(ctxType reflect.Type, i int) RuleContext {
- if prc.children == nil || i < 0 || i >= len(prc.children) {
- return nil
- }
-
- j := -1 // what element have we found with ctxType?
- for _, o := range prc.children {
-
- childType := reflect.TypeOf(o)
-
- if childType.Implements(ctxType) {
- j++
- if j == i {
- return o.(RuleContext)
- }
- }
- }
- return nil
-}
-
-// Go lacks generics, so it's not possible for us to return the child with the correct type, but we do
-// check for convertibility
-
-func (prc *BaseParserRuleContext) GetTypedRuleContext(ctxType reflect.Type, i int) RuleContext {
- return prc.getChild(ctxType, i)
-}
-
-func (prc *BaseParserRuleContext) GetTypedRuleContexts(ctxType reflect.Type) []RuleContext {
- if prc.children == nil {
- return make([]RuleContext, 0)
- }
-
- contexts := make([]RuleContext, 0)
-
- for _, child := range prc.children {
- childType := reflect.TypeOf(child)
-
- if childType.ConvertibleTo(ctxType) {
- contexts = append(contexts, child.(RuleContext))
- }
- }
- return contexts
-}
-
-func (prc *BaseParserRuleContext) GetChildCount() int {
- if prc.children == nil {
- return 0
- }
-
- return len(prc.children)
-}
-
-func (prc *BaseParserRuleContext) GetSourceInterval() Interval {
- if prc.start == nil || prc.stop == nil {
- return TreeInvalidInterval
- }
-
- return NewInterval(prc.start.GetTokenIndex(), prc.stop.GetTokenIndex())
-}
-
-//need to manage circular dependencies, so export now
-
-// Print out a whole tree, not just a node, in LISP format
-// (root child1 .. childN). Print just a node if b is a leaf.
-//
-
-func (prc *BaseParserRuleContext) String(ruleNames []string, stop RuleContext) string {
-
- var p ParserRuleContext = prc
- s := "["
- for p != nil && p != stop {
- if ruleNames == nil {
- if !p.IsEmpty() {
- s += strconv.Itoa(p.GetInvokingState())
- }
- } else {
- ri := p.GetRuleIndex()
- var ruleName string
- if ri >= 0 && ri < len(ruleNames) {
- ruleName = ruleNames[ri]
- } else {
- ruleName = strconv.Itoa(ri)
- }
- s += ruleName
- }
- if p.GetParent() != nil && (ruleNames != nil || !p.GetParent().(ParserRuleContext).IsEmpty()) {
- s += " "
- }
- pi := p.GetParent()
- if pi != nil {
- p = pi.(ParserRuleContext)
- } else {
- p = nil
- }
- }
- s += "]"
- return s
-}
-
-func (prc *BaseParserRuleContext) SetParent(v Tree) {
- if v == nil {
- prc.parentCtx = nil
- } else {
- prc.parentCtx = v.(RuleContext)
- }
-}
-
-func (prc *BaseParserRuleContext) GetInvokingState() int {
- return prc.invokingState
-}
-
-func (prc *BaseParserRuleContext) SetInvokingState(t int) {
- prc.invokingState = t
-}
-
-func (prc *BaseParserRuleContext) GetRuleIndex() int {
- return prc.RuleIndex
-}
-
-func (prc *BaseParserRuleContext) GetAltNumber() int {
- return ATNInvalidAltNumber
-}
-
-func (prc *BaseParserRuleContext) SetAltNumber(_ int) {}
-
-// IsEmpty returns true if the context of b is empty.
-//
-// A context is empty if there is no invoking state, meaning nobody calls
-// current context.
-func (prc *BaseParserRuleContext) IsEmpty() bool {
- return prc.invokingState == -1
-}
-
-// GetParent returns the combined text of all child nodes. This method only considers
-// tokens which have been added to the parse tree.
-//
-// Since tokens on hidden channels (e.g. whitespace or comments) are not
-// added to the parse trees, they will not appear in the output of this
-// method.
-func (prc *BaseParserRuleContext) GetParent() Tree {
- return prc.parentCtx
-}
-
-var ParserRuleContextEmpty = NewBaseParserRuleContext(nil, -1)
-
-type InterpreterRuleContext interface {
- ParserRuleContext
-}
-
-type BaseInterpreterRuleContext struct {
- *BaseParserRuleContext
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewBaseInterpreterRuleContext(parent BaseInterpreterRuleContext, invokingStateNumber, ruleIndex int) *BaseInterpreterRuleContext {
-
- prc := new(BaseInterpreterRuleContext)
-
- prc.BaseParserRuleContext = NewBaseParserRuleContext(parent, invokingStateNumber)
-
- prc.RuleIndex = ruleIndex
-
- return prc
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context.go
deleted file mode 100644
index c1b80cc1..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context.go
+++ /dev/null
@@ -1,727 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "golang.org/x/exp/slices"
- "strconv"
-)
-
-var _emptyPredictionContextHash int
-
-func init() {
- _emptyPredictionContextHash = murmurInit(1)
- _emptyPredictionContextHash = murmurFinish(_emptyPredictionContextHash, 0)
-}
-
-func calculateEmptyHash() int {
- return _emptyPredictionContextHash
-}
-
-const (
- // BasePredictionContextEmptyReturnState represents {@code $} in an array in full context mode, $
- // doesn't mean wildcard:
- //
- // $ + x = [$,x]
- //
- // Here,
- //
- // $ = EmptyReturnState
- BasePredictionContextEmptyReturnState = 0x7FFFFFFF
-)
-
-// TODO: JI These are meant to be atomics - this does not seem to match the Java runtime here
-//
-//goland:noinspection GoUnusedGlobalVariable
-var (
- BasePredictionContextglobalNodeCount = 1
- BasePredictionContextid = BasePredictionContextglobalNodeCount
-)
-
-const (
- PredictionContextEmpty = iota
- PredictionContextSingleton
- PredictionContextArray
-)
-
-// PredictionContext is a go idiomatic implementation of PredictionContext that does not rty to
-// emulate inheritance from Java, and can be used without an interface definition. An interface
-// is not required because no user code will ever need to implement this interface.
-type PredictionContext struct {
- cachedHash int
- pcType int
- parentCtx *PredictionContext
- returnState int
- parents []*PredictionContext
- returnStates []int
-}
-
-func NewEmptyPredictionContext() *PredictionContext {
- nep := &PredictionContext{}
- nep.cachedHash = calculateEmptyHash()
- nep.pcType = PredictionContextEmpty
- nep.returnState = BasePredictionContextEmptyReturnState
- return nep
-}
-
-func NewBaseSingletonPredictionContext(parent *PredictionContext, returnState int) *PredictionContext {
- pc := &PredictionContext{}
- pc.pcType = PredictionContextSingleton
- pc.returnState = returnState
- pc.parentCtx = parent
- if parent != nil {
- pc.cachedHash = calculateHash(parent, returnState)
- } else {
- pc.cachedHash = calculateEmptyHash()
- }
- return pc
-}
-
-func SingletonBasePredictionContextCreate(parent *PredictionContext, returnState int) *PredictionContext {
- if returnState == BasePredictionContextEmptyReturnState && parent == nil {
- // someone can pass in the bits of an array ctx that mean $
- return BasePredictionContextEMPTY
- }
- return NewBaseSingletonPredictionContext(parent, returnState)
-}
-
-func NewArrayPredictionContext(parents []*PredictionContext, returnStates []int) *PredictionContext {
- // Parent can be nil only if full ctx mode and we make an array
- // from {@link //EMPTY} and non-empty. We merge {@link //EMPTY} by using
- // nil parent and
- // returnState == {@link //EmptyReturnState}.
- hash := murmurInit(1)
- for _, parent := range parents {
- hash = murmurUpdate(hash, parent.Hash())
- }
- for _, returnState := range returnStates {
- hash = murmurUpdate(hash, returnState)
- }
- hash = murmurFinish(hash, len(parents)<<1)
-
- nec := &PredictionContext{}
- nec.cachedHash = hash
- nec.pcType = PredictionContextArray
- nec.parents = parents
- nec.returnStates = returnStates
- return nec
-}
-
-func (p *PredictionContext) Hash() int {
- return p.cachedHash
-}
-
-func (p *PredictionContext) Equals(other Collectable[*PredictionContext]) bool {
- switch p.pcType {
- case PredictionContextEmpty:
- otherP := other.(*PredictionContext)
- return other == nil || otherP == nil || otherP.isEmpty()
- case PredictionContextSingleton:
- return p.SingletonEquals(other)
- case PredictionContextArray:
- return p.ArrayEquals(other)
- }
- return false
-}
-
-func (p *PredictionContext) ArrayEquals(o Collectable[*PredictionContext]) bool {
- if o == nil {
- return false
- }
- other := o.(*PredictionContext)
- if other == nil || other.pcType != PredictionContextArray {
- return false
- }
- if p.cachedHash != other.Hash() {
- return false // can't be same if hash is different
- }
-
- // Must compare the actual array elements and not just the array address
- //
- return slices.Equal(p.returnStates, other.returnStates) &&
- slices.EqualFunc(p.parents, other.parents, func(x, y *PredictionContext) bool {
- return x.Equals(y)
- })
-}
-
-func (p *PredictionContext) SingletonEquals(other Collectable[*PredictionContext]) bool {
- if other == nil {
- return false
- }
- otherP := other.(*PredictionContext)
- if otherP == nil {
- return false
- }
-
- if p.cachedHash != otherP.Hash() {
- return false // Can't be same if hash is different
- }
-
- if p.returnState != otherP.getReturnState(0) {
- return false
- }
-
- // Both parents must be nil if one is
- if p.parentCtx == nil {
- return otherP.parentCtx == nil
- }
-
- return p.parentCtx.Equals(otherP.parentCtx)
-}
-
-func (p *PredictionContext) GetParent(i int) *PredictionContext {
- switch p.pcType {
- case PredictionContextEmpty:
- return nil
- case PredictionContextSingleton:
- return p.parentCtx
- case PredictionContextArray:
- return p.parents[i]
- }
- return nil
-}
-
-func (p *PredictionContext) getReturnState(i int) int {
- switch p.pcType {
- case PredictionContextArray:
- return p.returnStates[i]
- default:
- return p.returnState
- }
-}
-
-func (p *PredictionContext) GetReturnStates() []int {
- switch p.pcType {
- case PredictionContextArray:
- return p.returnStates
- default:
- return []int{p.returnState}
- }
-}
-
-func (p *PredictionContext) length() int {
- switch p.pcType {
- case PredictionContextArray:
- return len(p.returnStates)
- default:
- return 1
- }
-}
-
-func (p *PredictionContext) hasEmptyPath() bool {
- switch p.pcType {
- case PredictionContextSingleton:
- return p.returnState == BasePredictionContextEmptyReturnState
- }
- return p.getReturnState(p.length()-1) == BasePredictionContextEmptyReturnState
-}
-
-func (p *PredictionContext) String() string {
- switch p.pcType {
- case PredictionContextEmpty:
- return "$"
- case PredictionContextSingleton:
- var up string
-
- if p.parentCtx == nil {
- up = ""
- } else {
- up = p.parentCtx.String()
- }
-
- if len(up) == 0 {
- if p.returnState == BasePredictionContextEmptyReturnState {
- return "$"
- }
-
- return strconv.Itoa(p.returnState)
- }
-
- return strconv.Itoa(p.returnState) + " " + up
- case PredictionContextArray:
- if p.isEmpty() {
- return "[]"
- }
-
- s := "["
- for i := 0; i < len(p.returnStates); i++ {
- if i > 0 {
- s = s + ", "
- }
- if p.returnStates[i] == BasePredictionContextEmptyReturnState {
- s = s + "$"
- continue
- }
- s = s + strconv.Itoa(p.returnStates[i])
- if !p.parents[i].isEmpty() {
- s = s + " " + p.parents[i].String()
- } else {
- s = s + "nil"
- }
- }
- return s + "]"
-
- default:
- return "unknown"
- }
-}
-
-func (p *PredictionContext) isEmpty() bool {
- switch p.pcType {
- case PredictionContextEmpty:
- return true
- case PredictionContextArray:
- // since EmptyReturnState can only appear in the last position, we
- // don't need to verify that size==1
- return p.returnStates[0] == BasePredictionContextEmptyReturnState
- default:
- return false
- }
-}
-
-func (p *PredictionContext) Type() int {
- return p.pcType
-}
-
-func calculateHash(parent *PredictionContext, returnState int) int {
- h := murmurInit(1)
- h = murmurUpdate(h, parent.Hash())
- h = murmurUpdate(h, returnState)
- return murmurFinish(h, 2)
-}
-
-// Convert a {@link RuleContext} tree to a {@link BasePredictionContext} graph.
-// Return {@link //EMPTY} if {@code outerContext} is empty or nil.
-// /
-func predictionContextFromRuleContext(a *ATN, outerContext RuleContext) *PredictionContext {
- if outerContext == nil {
- outerContext = ParserRuleContextEmpty
- }
- // if we are in RuleContext of start rule, s, then BasePredictionContext
- // is EMPTY. Nobody called us. (if we are empty, return empty)
- if outerContext.GetParent() == nil || outerContext == ParserRuleContextEmpty {
- return BasePredictionContextEMPTY
- }
- // If we have a parent, convert it to a BasePredictionContext graph
- parent := predictionContextFromRuleContext(a, outerContext.GetParent().(RuleContext))
- state := a.states[outerContext.GetInvokingState()]
- transition := state.GetTransitions()[0]
-
- return SingletonBasePredictionContextCreate(parent, transition.(*RuleTransition).followState.GetStateNumber())
-}
-
-func merge(a, b *PredictionContext, rootIsWildcard bool, mergeCache *JPCMap) *PredictionContext {
-
- // Share same graph if both same
- //
- if a == b || a.Equals(b) {
- return a
- }
-
- if a.pcType == PredictionContextSingleton && b.pcType == PredictionContextSingleton {
- return mergeSingletons(a, b, rootIsWildcard, mergeCache)
- }
- // At least one of a or b is array
- // If one is $ and rootIsWildcard, return $ as wildcard
- if rootIsWildcard {
- if a.isEmpty() {
- return a
- }
- if b.isEmpty() {
- return b
- }
- }
-
- // Convert either Singleton or Empty to arrays, so that we can merge them
- //
- ara := convertToArray(a)
- arb := convertToArray(b)
- return mergeArrays(ara, arb, rootIsWildcard, mergeCache)
-}
-
-func convertToArray(pc *PredictionContext) *PredictionContext {
- switch pc.Type() {
- case PredictionContextEmpty:
- return NewArrayPredictionContext([]*PredictionContext{}, []int{})
- case PredictionContextSingleton:
- return NewArrayPredictionContext([]*PredictionContext{pc.GetParent(0)}, []int{pc.getReturnState(0)})
- default:
- // Already an array
- }
- return pc
-}
-
-// mergeSingletons merges two Singleton [PredictionContext] instances.
-//
-// Stack tops equal, parents merge is same return left graph.
-//
-//
-// Same stack top, parents differ merge parents giving array node, then
-// remainders of those graphs. A new root node is created to point to the
-// merged parents.
-//
-//
-// Different stack tops pointing to same parent. Make array node for the
-// root where both element in the root point to the same (original)
-// parent.
-//
-//
-// Different stack tops pointing to different parents. Make array node for
-// the root where each element points to the corresponding original
-// parent.
-//
-//
-// @param a the first {@link SingletonBasePredictionContext}
-// @param b the second {@link SingletonBasePredictionContext}
-// @param rootIsWildcard {@code true} if this is a local-context merge,
-// otherwise false to indicate a full-context merge
-// @param mergeCache
-// /
-func mergeSingletons(a, b *PredictionContext, rootIsWildcard bool, mergeCache *JPCMap) *PredictionContext {
- if mergeCache != nil {
- previous, present := mergeCache.Get(a, b)
- if present {
- return previous
- }
- previous, present = mergeCache.Get(b, a)
- if present {
- return previous
- }
- }
-
- rootMerge := mergeRoot(a, b, rootIsWildcard)
- if rootMerge != nil {
- if mergeCache != nil {
- mergeCache.Put(a, b, rootMerge)
- }
- return rootMerge
- }
- if a.returnState == b.returnState {
- parent := merge(a.parentCtx, b.parentCtx, rootIsWildcard, mergeCache)
- // if parent is same as existing a or b parent or reduced to a parent,
- // return it
- if parent.Equals(a.parentCtx) {
- return a // ax + bx = ax, if a=b
- }
- if parent.Equals(b.parentCtx) {
- return b // ax + bx = bx, if a=b
- }
- // else: ax + ay = a'[x,y]
- // merge parents x and y, giving array node with x,y then remainders
- // of those graphs. dup a, a' points at merged array.
- // New joined parent so create a new singleton pointing to it, a'
- spc := SingletonBasePredictionContextCreate(parent, a.returnState)
- if mergeCache != nil {
- mergeCache.Put(a, b, spc)
- }
- return spc
- }
- // a != b payloads differ
- // see if we can collapse parents due to $+x parents if local ctx
- var singleParent *PredictionContext
- if a.Equals(b) || (a.parentCtx != nil && a.parentCtx.Equals(b.parentCtx)) { // ax +
- // bx =
- // [a,b]x
- singleParent = a.parentCtx
- }
- if singleParent != nil { // parents are same
- // sort payloads and use same parent
- payloads := []int{a.returnState, b.returnState}
- if a.returnState > b.returnState {
- payloads[0] = b.returnState
- payloads[1] = a.returnState
- }
- parents := []*PredictionContext{singleParent, singleParent}
- apc := NewArrayPredictionContext(parents, payloads)
- if mergeCache != nil {
- mergeCache.Put(a, b, apc)
- }
- return apc
- }
- // parents differ and can't merge them. Just pack together
- // into array can't merge.
- // ax + by = [ax,by]
- payloads := []int{a.returnState, b.returnState}
- parents := []*PredictionContext{a.parentCtx, b.parentCtx}
- if a.returnState > b.returnState { // sort by payload
- payloads[0] = b.returnState
- payloads[1] = a.returnState
- parents = []*PredictionContext{b.parentCtx, a.parentCtx}
- }
- apc := NewArrayPredictionContext(parents, payloads)
- if mergeCache != nil {
- mergeCache.Put(a, b, apc)
- }
- return apc
-}
-
-// Handle case where at least one of {@code a} or {@code b} is
-// {@link //EMPTY}. In the following diagrams, the symbol {@code $} is used
-// to represent {@link //EMPTY}.
-//
-// Local-Context Merges
-//
-// These local-context merge operations are used when {@code rootIsWildcard}
-// is true.
-//
-// {@link //EMPTY} is superset of any graph return {@link //EMPTY}.
-//
-//
-// {@link //EMPTY} and anything is {@code //EMPTY}, so merged parent is
-// {@code //EMPTY} return left graph.
-//
-//
-// Special case of last merge if local context.
-//
-//
-// Full-Context Merges
-//
-// These full-context merge operations are used when {@code rootIsWildcard}
-// is false.
-//
-//
-//
-// Must keep all contexts {@link //EMPTY} in array is a special value (and
-// nil parent).
-//
-//
-//
-//
-// @param a the first {@link SingletonBasePredictionContext}
-// @param b the second {@link SingletonBasePredictionContext}
-// @param rootIsWildcard {@code true} if this is a local-context merge,
-// otherwise false to indicate a full-context merge
-// /
-func mergeRoot(a, b *PredictionContext, rootIsWildcard bool) *PredictionContext {
- if rootIsWildcard {
- if a.pcType == PredictionContextEmpty {
- return BasePredictionContextEMPTY // // + b =//
- }
- if b.pcType == PredictionContextEmpty {
- return BasePredictionContextEMPTY // a +// =//
- }
- } else {
- if a.isEmpty() && b.isEmpty() {
- return BasePredictionContextEMPTY // $ + $ = $
- } else if a.isEmpty() { // $ + x = [$,x]
- payloads := []int{b.getReturnState(-1), BasePredictionContextEmptyReturnState}
- parents := []*PredictionContext{b.GetParent(-1), nil}
- return NewArrayPredictionContext(parents, payloads)
- } else if b.isEmpty() { // x + $ = [$,x] ($ is always first if present)
- payloads := []int{a.getReturnState(-1), BasePredictionContextEmptyReturnState}
- parents := []*PredictionContext{a.GetParent(-1), nil}
- return NewArrayPredictionContext(parents, payloads)
- }
- }
- return nil
-}
-
-// Merge two {@link ArrayBasePredictionContext} instances.
-//
-// Different tops, different parents.
-//
-//
-// Shared top, same parents.
-//
-//
-// Shared top, different parents.
-//
-//
-// Shared top, all shared parents.
-//
-//
-// Equal tops, merge parents and reduce top to
-// {@link SingletonBasePredictionContext}.
-//
-//
-//goland:noinspection GoBoolExpressions
-func mergeArrays(a, b *PredictionContext, rootIsWildcard bool, mergeCache *JPCMap) *PredictionContext {
- if mergeCache != nil {
- previous, present := mergeCache.Get(a, b)
- if present {
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
- }
- return previous
- }
- previous, present = mergeCache.Get(b, a)
- if present {
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
- }
- return previous
- }
- }
- // merge sorted payloads a + b => M
- i := 0 // walks a
- j := 0 // walks b
- k := 0 // walks target M array
-
- mergedReturnStates := make([]int, len(a.returnStates)+len(b.returnStates))
- mergedParents := make([]*PredictionContext, len(a.returnStates)+len(b.returnStates))
- // walk and merge to yield mergedParents, mergedReturnStates
- for i < len(a.returnStates) && j < len(b.returnStates) {
- aParent := a.parents[i]
- bParent := b.parents[j]
- if a.returnStates[i] == b.returnStates[j] {
- // same payload (stack tops are equal), must yield merged singleton
- payload := a.returnStates[i]
- // $+$ = $
- bothDollars := payload == BasePredictionContextEmptyReturnState && aParent == nil && bParent == nil
- axAX := aParent != nil && bParent != nil && aParent.Equals(bParent) // ax+ax
- // ->
- // ax
- if bothDollars || axAX {
- mergedParents[k] = aParent // choose left
- mergedReturnStates[k] = payload
- } else { // ax+ay -> a'[x,y]
- mergedParent := merge(aParent, bParent, rootIsWildcard, mergeCache)
- mergedParents[k] = mergedParent
- mergedReturnStates[k] = payload
- }
- i++ // hop over left one as usual
- j++ // but also Skip one in right side since we merge
- } else if a.returnStates[i] < b.returnStates[j] { // copy a[i] to M
- mergedParents[k] = aParent
- mergedReturnStates[k] = a.returnStates[i]
- i++
- } else { // b > a, copy b[j] to M
- mergedParents[k] = bParent
- mergedReturnStates[k] = b.returnStates[j]
- j++
- }
- k++
- }
- // copy over any payloads remaining in either array
- if i < len(a.returnStates) {
- for p := i; p < len(a.returnStates); p++ {
- mergedParents[k] = a.parents[p]
- mergedReturnStates[k] = a.returnStates[p]
- k++
- }
- } else {
- for p := j; p < len(b.returnStates); p++ {
- mergedParents[k] = b.parents[p]
- mergedReturnStates[k] = b.returnStates[p]
- k++
- }
- }
- // trim merged if we combined a few that had same stack tops
- if k < len(mergedParents) { // write index < last position trim
- if k == 1 { // for just one merged element, return singleton top
- pc := SingletonBasePredictionContextCreate(mergedParents[0], mergedReturnStates[0])
- if mergeCache != nil {
- mergeCache.Put(a, b, pc)
- }
- return pc
- }
- mergedParents = mergedParents[0:k]
- mergedReturnStates = mergedReturnStates[0:k]
- }
-
- M := NewArrayPredictionContext(mergedParents, mergedReturnStates)
-
- // if we created same array as a or b, return that instead
- // TODO: JI track whether this is possible above during merge sort for speed and possibly avoid an allocation
- if M.Equals(a) {
- if mergeCache != nil {
- mergeCache.Put(a, b, a)
- }
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> a")
- }
- return a
- }
- if M.Equals(b) {
- if mergeCache != nil {
- mergeCache.Put(a, b, b)
- }
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> b")
- }
- return b
- }
- combineCommonParents(&mergedParents)
-
- if mergeCache != nil {
- mergeCache.Put(a, b, M)
- }
- if runtimeConfig.parserATNSimulatorTraceATNSim {
- fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> " + M.String())
- }
- return M
-}
-
-// Make pass over all M parents and merge any Equals() ones.
-// Note that we pass a pointer to the slice as we want to modify it in place.
-//
-//goland:noinspection GoUnusedFunction
-func combineCommonParents(parents *[]*PredictionContext) {
- uniqueParents := NewJStore[*PredictionContext, Comparator[*PredictionContext]](pContextEqInst, PredictionContextCollection, "combineCommonParents for PredictionContext")
-
- for p := 0; p < len(*parents); p++ {
- parent := (*parents)[p]
- _, _ = uniqueParents.Put(parent)
- }
- for q := 0; q < len(*parents); q++ {
- pc, _ := uniqueParents.Get((*parents)[q])
- (*parents)[q] = pc
- }
-}
-
-func getCachedBasePredictionContext(context *PredictionContext, contextCache *PredictionContextCache, visited *VisitRecord) *PredictionContext {
- if context.isEmpty() {
- return context
- }
- existing, present := visited.Get(context)
- if present {
- return existing
- }
-
- existing, present = contextCache.Get(context)
- if present {
- visited.Put(context, existing)
- return existing
- }
- changed := false
- parents := make([]*PredictionContext, context.length())
- for i := 0; i < len(parents); i++ {
- parent := getCachedBasePredictionContext(context.GetParent(i), contextCache, visited)
- if changed || !parent.Equals(context.GetParent(i)) {
- if !changed {
- parents = make([]*PredictionContext, context.length())
- for j := 0; j < context.length(); j++ {
- parents[j] = context.GetParent(j)
- }
- changed = true
- }
- parents[i] = parent
- }
- }
- if !changed {
- contextCache.add(context)
- visited.Put(context, context)
- return context
- }
- var updated *PredictionContext
- if len(parents) == 0 {
- updated = BasePredictionContextEMPTY
- } else if len(parents) == 1 {
- updated = SingletonBasePredictionContextCreate(parents[0], context.getReturnState(0))
- } else {
- updated = NewArrayPredictionContext(parents, context.GetReturnStates())
- }
- contextCache.add(updated)
- visited.Put(updated, updated)
- visited.Put(context, updated)
-
- return updated
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context_cache.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context_cache.go
deleted file mode 100644
index 25dfb11e..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_context_cache.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package antlr
-
-var BasePredictionContextEMPTY = &PredictionContext{
- cachedHash: calculateEmptyHash(),
- pcType: PredictionContextEmpty,
- returnState: BasePredictionContextEmptyReturnState,
-}
-
-// PredictionContextCache is Used to cache [PredictionContext] objects. It is used for the shared
-// context cash associated with contexts in DFA states. This cache
-// can be used for both lexers and parsers.
-type PredictionContextCache struct {
- cache *JMap[*PredictionContext, *PredictionContext, Comparator[*PredictionContext]]
-}
-
-func NewPredictionContextCache() *PredictionContextCache {
- return &PredictionContextCache{
- cache: NewJMap[*PredictionContext, *PredictionContext, Comparator[*PredictionContext]](pContextEqInst, PredictionContextCacheCollection, "NewPredictionContextCache()"),
- }
-}
-
-// Add a context to the cache and return it. If the context already exists,
-// return that one instead and do not add a new context to the cache.
-// Protect shared cache from unsafe thread access.
-func (p *PredictionContextCache) add(ctx *PredictionContext) *PredictionContext {
- if ctx.isEmpty() {
- return BasePredictionContextEMPTY
- }
-
- // Put will return the existing entry if it is present (note this is done via Equals, not whether it is
- // the same pointer), otherwise it will add the new entry and return that.
- //
- existing, present := p.cache.Get(ctx)
- if present {
- return existing
- }
- p.cache.Put(ctx, ctx)
- return ctx
-}
-
-func (p *PredictionContextCache) Get(ctx *PredictionContext) (*PredictionContext, bool) {
- pc, exists := p.cache.Get(ctx)
- return pc, exists
-}
-
-func (p *PredictionContextCache) length() int {
- return p.cache.Len()
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_mode.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_mode.go
deleted file mode 100644
index 3f85a6a5..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/prediction_mode.go
+++ /dev/null
@@ -1,536 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// This enumeration defines the prediction modes available in ANTLR 4 along with
-// utility methods for analyzing configuration sets for conflicts and/or
-// ambiguities.
-
-const (
- // PredictionModeSLL represents the SLL(*) prediction mode.
- // This prediction mode ignores the current
- // parser context when making predictions. This is the fastest prediction
- // mode, and provides correct results for many grammars. This prediction
- // mode is more powerful than the prediction mode provided by ANTLR 3, but
- // may result in syntax errors for grammar and input combinations which are
- // not SLL.
- //
- // When using this prediction mode, the parser will either return a correct
- // parse tree (i.e. the same parse tree that would be returned with the
- // [PredictionModeLL] prediction mode), or it will Report a syntax error. If a
- // syntax error is encountered when using the SLL prediction mode,
- // it may be due to either an actual syntax error in the input or indicate
- // that the particular combination of grammar and input requires the more
- // powerful LL prediction abilities to complete successfully.
- //
- // This prediction mode does not provide any guarantees for prediction
- // behavior for syntactically-incorrect inputs.
- //
- PredictionModeSLL = 0
-
- // PredictionModeLL represents the LL(*) prediction mode.
- // This prediction mode allows the current parser
- // context to be used for resolving SLL conflicts that occur during
- // prediction. This is the fastest prediction mode that guarantees correct
- // parse results for all combinations of grammars with syntactically correct
- // inputs.
- //
- // When using this prediction mode, the parser will make correct decisions
- // for all syntactically-correct grammar and input combinations. However, in
- // cases where the grammar is truly ambiguous this prediction mode might not
- // report a precise answer for exactly which alternatives are
- // ambiguous.
- //
- // This prediction mode does not provide any guarantees for prediction
- // behavior for syntactically-incorrect inputs.
- //
- PredictionModeLL = 1
-
- // PredictionModeLLExactAmbigDetection represents the LL(*) prediction mode
- // with exact ambiguity detection.
- //
- // In addition to the correctness guarantees provided by the [PredictionModeLL] prediction mode,
- // this prediction mode instructs the prediction algorithm to determine the
- // complete and exact set of ambiguous alternatives for every ambiguous
- // decision encountered while parsing.
- //
- // This prediction mode may be used for diagnosing ambiguities during
- // grammar development. Due to the performance overhead of calculating sets
- // of ambiguous alternatives, this prediction mode should be avoided when
- // the exact results are not necessary.
- //
- // This prediction mode does not provide any guarantees for prediction
- // behavior for syntactically-incorrect inputs.
- //
- PredictionModeLLExactAmbigDetection = 2
-)
-
-// PredictionModehasSLLConflictTerminatingPrediction computes the SLL prediction termination condition.
-//
-// This method computes the SLL prediction termination condition for both of
-// the following cases:
-//
-// - The usual SLL+LL fallback upon SLL conflict
-// - Pure SLL without LL fallback
-//
-// # Combined SLL+LL Parsing
-//
-// When LL-fallback is enabled upon SLL conflict, correct predictions are
-// ensured regardless of how the termination condition is computed by this
-// method. Due to the substantially higher cost of LL prediction, the
-// prediction should only fall back to LL when the additional lookahead
-// cannot lead to a unique SLL prediction.
-//
-// Assuming combined SLL+LL parsing, an SLL configuration set with only
-// conflicting subsets should fall back to full LL, even if the
-// configuration sets don't resolve to the same alternative, e.g.
-//
-// {1,2} and {3,4}
-//
-// If there is at least one non-conflicting
-// configuration, SLL could continue with the hopes that more lookahead will
-// resolve via one of those non-conflicting configurations.
-//
-// Here's the prediction termination rule them: SLL (for SLL+LL parsing)
-// stops when it sees only conflicting configuration subsets. In contrast,
-// full LL keeps going when there is uncertainty.
-//
-// # Heuristic
-//
-// As a heuristic, we stop prediction when we see any conflicting subset
-// unless we see a state that only has one alternative associated with it.
-// The single-alt-state thing lets prediction continue upon rules like
-// (otherwise, it would admit defeat too soon):
-//
-// [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) ;
-//
-// When the [ATN] simulation reaches the state before ';', it has a
-// [DFA] state that looks like:
-//
-// [12|1|[], 6|2|[], 12|2|[]]
-//
-// Naturally
-//
-// 12|1|[] and 12|2|[]
-//
-// conflict, but we cannot stop processing this node because alternative to has another way to continue,
-// via
-//
-// [6|2|[]]
-//
-// It also let's us continue for this rule:
-//
-// [1|1|[], 1|2|[], 8|3|[]] a : A | A | A B ;
-//
-// After Matching input A, we reach the stop state for rule A, state 1.
-// State 8 is the state immediately before B. Clearly alternatives 1 and 2
-// conflict and no amount of further lookahead will separate the two.
-// However, alternative 3 will be able to continue, and so we do not stop
-// working on this state. In the previous example, we're concerned with
-// states associated with the conflicting alternatives. Here alt 3 is not
-// associated with the conflicting configs, but since we can continue
-// looking for input reasonably, don't declare the state done.
-//
-// # Pure SLL Parsing
-//
-// To handle pure SLL parsing, all we have to do is make sure that we
-// combine stack contexts for configurations that differ only by semantic
-// predicate. From there, we can do the usual SLL termination heuristic.
-//
-// # Predicates in SLL+LL Parsing
-//
-// SLL decisions don't evaluate predicates until after they reach [DFA] stop
-// states because they need to create the [DFA] cache that works in all
-// semantic situations. In contrast, full LL evaluates predicates collected
-// during start state computation, so it can ignore predicates thereafter.
-// This means that SLL termination detection can totally ignore semantic
-// predicates.
-//
-// Implementation-wise, [ATNConfigSet] combines stack contexts but not
-// semantic predicate contexts, so we might see two configurations like the
-// following:
-//
-// (s, 1, x, {}), (s, 1, x', {p})
-//
-// Before testing these configurations against others, we have to merge
-// x and x' (without modifying the existing configurations).
-// For example, we test (x+x')==x” when looking for conflicts in
-// the following configurations:
-//
-// (s, 1, x, {}), (s, 1, x', {p}), (s, 2, x”, {})
-//
-// If the configuration set has predicates (as indicated by
-// [ATNConfigSet.hasSemanticContext]), this algorithm makes a copy of
-// the configurations to strip out all the predicates so that a standard
-// [ATNConfigSet] will merge everything ignoring predicates.
-func PredictionModehasSLLConflictTerminatingPrediction(mode int, configs *ATNConfigSet) bool {
-
- // Configs in rule stop states indicate reaching the end of the decision
- // rule (local context) or end of start rule (full context). If all
- // configs meet this condition, then none of the configurations is able
- // to Match additional input, so we terminate prediction.
- //
- if PredictionModeallConfigsInRuleStopStates(configs) {
- return true
- }
-
- // pure SLL mode parsing
- if mode == PredictionModeSLL {
- // Don't bother with combining configs from different semantic
- // contexts if we can fail over to full LL costs more time
- // since we'll often fail over anyway.
- if configs.hasSemanticContext {
- // dup configs, tossing out semantic predicates
- dup := NewATNConfigSet(false)
- for _, c := range configs.configs {
-
- // NewATNConfig({semanticContext:}, c)
- c = NewATNConfig2(c, SemanticContextNone)
- dup.Add(c, nil)
- }
- configs = dup
- }
- // now we have combined contexts for configs with dissimilar predicates
- }
- // pure SLL or combined SLL+LL mode parsing
- altsets := PredictionModegetConflictingAltSubsets(configs)
- return PredictionModehasConflictingAltSet(altsets) && !PredictionModehasStateAssociatedWithOneAlt(configs)
-}
-
-// PredictionModehasConfigInRuleStopState checks if any configuration in the given configs is in a
-// [RuleStopState]. Configurations meeting this condition have reached
-// the end of the decision rule (local context) or end of start rule (full
-// context).
-//
-// The func returns true if any configuration in the supplied configs is in a [RuleStopState]
-func PredictionModehasConfigInRuleStopState(configs *ATNConfigSet) bool {
- for _, c := range configs.configs {
- if _, ok := c.GetState().(*RuleStopState); ok {
- return true
- }
- }
- return false
-}
-
-// PredictionModeallConfigsInRuleStopStates checks if all configurations in configs are in a
-// [RuleStopState]. Configurations meeting this condition have reached
-// the end of the decision rule (local context) or end of start rule (full
-// context).
-//
-// the func returns true if all configurations in configs are in a
-// [RuleStopState]
-func PredictionModeallConfigsInRuleStopStates(configs *ATNConfigSet) bool {
-
- for _, c := range configs.configs {
- if _, ok := c.GetState().(*RuleStopState); !ok {
- return false
- }
- }
- return true
-}
-
-// PredictionModeresolvesToJustOneViableAlt checks full LL prediction termination.
-//
-// Can we stop looking ahead during [ATN] simulation or is there some
-// uncertainty as to which alternative we will ultimately pick, after
-// consuming more input? Even if there are partial conflicts, we might know
-// that everything is going to resolve to the same minimum alternative. That
-// means we can stop since no more lookahead will change that fact. On the
-// other hand, there might be multiple conflicts that resolve to different
-// minimums. That means we need more look ahead to decide which of those
-// alternatives we should predict.
-//
-// The basic idea is to split the set of configurations 'C', into
-// conflicting subsets (s, _, ctx, _) and singleton subsets with
-// non-conflicting configurations. Two configurations conflict if they have
-// identical [ATNConfig].state and [ATNConfig].context values
-// but a different [ATNConfig].alt value, e.g.
-//
-// (s, i, ctx, _)
-//
-// and
-//
-// (s, j, ctx, _) ; for i != j
-//
-// Reduce these configuration subsets to the set of possible alternatives.
-// You can compute the alternative subsets in one pass as follows:
-//
-// A_s,ctx = {i | (s, i, ctx, _)}
-//
-// for each configuration in C holding s and ctx fixed.
-//
-// Or in pseudo-code:
-//
-// for each configuration c in C:
-// map[c] U = c.ATNConfig.alt alt // map hash/equals uses s and x, not alt and not pred
-//
-// The values in map are the set of
-//
-// A_s,ctx
-//
-// sets.
-//
-// If
-//
-// |A_s,ctx| = 1
-//
-// then there is no conflict associated with s and ctx.
-//
-// Reduce the subsets to singletons by choosing a minimum of each subset. If
-// the union of these alternative subsets is a singleton, then no amount of
-// further lookahead will help us. We will always pick that alternative. If,
-// however, there is more than one alternative, then we are uncertain which
-// alternative to predict and must continue looking for resolution. We may
-// or may not discover an ambiguity in the future, even if there are no
-// conflicting subsets this round.
-//
-// The biggest sin is to terminate early because it means we've made a
-// decision but were uncertain as to the eventual outcome. We haven't used
-// enough lookahead. On the other hand, announcing a conflict too late is no
-// big deal; you will still have the conflict. It's just inefficient. It
-// might even look until the end of file.
-//
-// No special consideration for semantic predicates is required because
-// predicates are evaluated on-the-fly for full LL prediction, ensuring that
-// no configuration contains a semantic context during the termination
-// check.
-//
-// # Conflicting Configs
-//
-// Two configurations:
-//
-// (s, i, x) and (s, j, x')
-//
-// conflict when i != j but x = x'. Because we merge all
-// (s, i, _) configurations together, that means that there are at
-// most n configurations associated with state s for
-// n possible alternatives in the decision. The merged stacks
-// complicate the comparison of configuration contexts x and x'.
-//
-// Sam checks to see if one is a subset of the other by calling
-// merge and checking to see if the merged result is either x or x'.
-// If the x associated with lowest alternative i
-// is the superset, then i is the only possible prediction since the
-// others resolve to min(i) as well. However, if x is
-// associated with j > i then at least one stack configuration for
-// j is not in conflict with alternative i. The algorithm
-// should keep going, looking for more lookahead due to the uncertainty.
-//
-// For simplicity, I'm doing an equality check between x and
-// x', which lets the algorithm continue to consume lookahead longer
-// than necessary. The reason I like the equality is of course the
-// simplicity but also because that is the test you need to detect the
-// alternatives that are actually in conflict.
-//
-// # Continue/Stop Rule
-//
-// Continue if the union of resolved alternative sets from non-conflicting and
-// conflicting alternative subsets has more than one alternative. We are
-// uncertain about which alternative to predict.
-//
-// The complete set of alternatives,
-//
-// [i for (_, i, _)]
-//
-// tells us which alternatives are still in the running for the amount of input we've
-// consumed at this point. The conflicting sets let us to strip away
-// configurations that won't lead to more states because we resolve
-// conflicts to the configuration with a minimum alternate for the
-// conflicting set.
-//
-// Cases
-//
-// - no conflicts and more than 1 alternative in set => continue
-// - (s, 1, x), (s, 2, x), (s, 3, z), (s', 1, y), (s', 2, y) yields non-conflicting set
-// {3} ∪ conflicting sets min({1,2}) ∪ min({1,2}) = {1,3} => continue
-// - (s, 1, x), (s, 2, x), (s', 1, y), (s', 2, y), (s”, 1, z) yields non-conflicting set
-// {1} ∪ conflicting sets min({1,2}) ∪ min({1,2}) = {1} => stop and predict 1
-// - (s, 1, x), (s, 2, x), (s', 1, y), (s', 2, y) yields conflicting, reduced sets
-// {1} ∪ {1} = {1} => stop and predict 1, can announce ambiguity {1,2}
-// - (s, 1, x), (s, 2, x), (s', 2, y), (s', 3, y) yields conflicting, reduced sets
-// {1} ∪ {2} = {1,2} => continue
-// - (s, 1, x), (s, 2, x), (s', 2, y), (s', 3, y) yields conflicting, reduced sets
-// {1} ∪ {2} = {1,2} => continue
-// - (s, 1, x), (s, 2, x), (s', 3, y), (s', 4, y) yields conflicting, reduced sets
-// {1} ∪ {3} = {1,3} => continue
-//
-// # Exact Ambiguity Detection
-//
-// If all states report the same conflicting set of alternatives, then we
-// know we have the exact ambiguity set:
-//
-// |A_i| > 1
-//
-// and
-//
-// A_i = A_j ; for all i, j
-//
-// In other words, we continue examining lookahead until all A_i
-// have more than one alternative and all A_i are the same. If
-//
-// A={{1,2}, {1,3}}
-//
-// then regular LL prediction would terminate because the resolved set is {1}.
-// To determine what the real ambiguity is, we have to know whether the ambiguity is between one and
-// two or one and three so we keep going. We can only stop prediction when
-// we need exact ambiguity detection when the sets look like:
-//
-// A={{1,2}}
-//
-// or
-//
-// {{1,2},{1,2}}, etc...
-func PredictionModeresolvesToJustOneViableAlt(altsets []*BitSet) int {
- return PredictionModegetSingleViableAlt(altsets)
-}
-
-// PredictionModeallSubsetsConflict determines if every alternative subset in altsets contains more
-// than one alternative.
-//
-// The func returns true if every [BitSet] in altsets has
-// [BitSet].cardinality cardinality > 1
-func PredictionModeallSubsetsConflict(altsets []*BitSet) bool {
- return !PredictionModehasNonConflictingAltSet(altsets)
-}
-
-// PredictionModehasNonConflictingAltSet determines if any single alternative subset in altsets contains
-// exactly one alternative.
-//
-// The func returns true if altsets contains at least one [BitSet] with
-// [BitSet].cardinality cardinality 1
-func PredictionModehasNonConflictingAltSet(altsets []*BitSet) bool {
- for i := 0; i < len(altsets); i++ {
- alts := altsets[i]
- if alts.length() == 1 {
- return true
- }
- }
- return false
-}
-
-// PredictionModehasConflictingAltSet determines if any single alternative subset in altsets contains
-// more than one alternative.
-//
-// The func returns true if altsets contains a [BitSet] with
-// [BitSet].cardinality cardinality > 1, otherwise false
-func PredictionModehasConflictingAltSet(altsets []*BitSet) bool {
- for i := 0; i < len(altsets); i++ {
- alts := altsets[i]
- if alts.length() > 1 {
- return true
- }
- }
- return false
-}
-
-// PredictionModeallSubsetsEqual determines if every alternative subset in altsets is equivalent.
-//
-// The func returns true if every member of altsets is equal to the others.
-func PredictionModeallSubsetsEqual(altsets []*BitSet) bool {
- var first *BitSet
-
- for i := 0; i < len(altsets); i++ {
- alts := altsets[i]
- if first == nil {
- first = alts
- } else if alts != first {
- return false
- }
- }
-
- return true
-}
-
-// PredictionModegetUniqueAlt returns the unique alternative predicted by all alternative subsets in
-// altsets. If no such alternative exists, this method returns
-// [ATNInvalidAltNumber].
-//
-// @param altsets a collection of alternative subsets
-func PredictionModegetUniqueAlt(altsets []*BitSet) int {
- all := PredictionModeGetAlts(altsets)
- if all.length() == 1 {
- return all.minValue()
- }
-
- return ATNInvalidAltNumber
-}
-
-// PredictionModeGetAlts returns the complete set of represented alternatives for a collection of
-// alternative subsets. This method returns the union of each [BitSet]
-// in altsets, being the set of represented alternatives in altsets.
-func PredictionModeGetAlts(altsets []*BitSet) *BitSet {
- all := NewBitSet()
- for _, alts := range altsets {
- all.or(alts)
- }
- return all
-}
-
-// PredictionModegetConflictingAltSubsets gets the conflicting alt subsets from a configuration set.
-//
-// for each configuration c in configs:
-// map[c] U= c.ATNConfig.alt // map hash/equals uses s and x, not alt and not pred
-func PredictionModegetConflictingAltSubsets(configs *ATNConfigSet) []*BitSet {
- configToAlts := NewJMap[*ATNConfig, *BitSet, *ATNAltConfigComparator[*ATNConfig]](atnAltCfgEqInst, AltSetCollection, "PredictionModegetConflictingAltSubsets()")
-
- for _, c := range configs.configs {
-
- alts, ok := configToAlts.Get(c)
- if !ok {
- alts = NewBitSet()
- configToAlts.Put(c, alts)
- }
- alts.add(c.GetAlt())
- }
-
- return configToAlts.Values()
-}
-
-// PredictionModeGetStateToAltMap gets a map from state to alt subset from a configuration set.
-//
-// for each configuration c in configs:
-// map[c.ATNConfig.state] U= c.ATNConfig.alt}
-func PredictionModeGetStateToAltMap(configs *ATNConfigSet) *AltDict {
- m := NewAltDict()
-
- for _, c := range configs.configs {
- alts := m.Get(c.GetState().String())
- if alts == nil {
- alts = NewBitSet()
- m.put(c.GetState().String(), alts)
- }
- alts.(*BitSet).add(c.GetAlt())
- }
- return m
-}
-
-func PredictionModehasStateAssociatedWithOneAlt(configs *ATNConfigSet) bool {
- values := PredictionModeGetStateToAltMap(configs).values()
- for i := 0; i < len(values); i++ {
- if values[i].(*BitSet).length() == 1 {
- return true
- }
- }
- return false
-}
-
-// PredictionModegetSingleViableAlt gets the single alternative predicted by all alternative subsets in altsets
-// if there is one.
-//
-// TODO: JI - Review this code - it does not seem to do the same thing as the Java code - maybe because [BitSet] is not like the Java utils BitSet
-func PredictionModegetSingleViableAlt(altsets []*BitSet) int {
- result := ATNInvalidAltNumber
-
- for i := 0; i < len(altsets); i++ {
- alts := altsets[i]
- minAlt := alts.minValue()
- if result == ATNInvalidAltNumber {
- result = minAlt
- } else if result != minAlt { // more than 1 viable alt
- return ATNInvalidAltNumber
- }
- }
- return result
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/recognizer.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/recognizer.go
deleted file mode 100644
index 2e0b504f..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/recognizer.go
+++ /dev/null
@@ -1,241 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strings"
-
- "strconv"
-)
-
-type Recognizer interface {
- GetLiteralNames() []string
- GetSymbolicNames() []string
- GetRuleNames() []string
-
- Sempred(RuleContext, int, int) bool
- Precpred(RuleContext, int) bool
-
- GetState() int
- SetState(int)
- Action(RuleContext, int, int)
- AddErrorListener(ErrorListener)
- RemoveErrorListeners()
- GetATN() *ATN
- GetErrorListenerDispatch() ErrorListener
- HasError() bool
- GetError() RecognitionException
- SetError(RecognitionException)
-}
-
-type BaseRecognizer struct {
- listeners []ErrorListener
- state int
-
- RuleNames []string
- LiteralNames []string
- SymbolicNames []string
- GrammarFileName string
- SynErr RecognitionException
-}
-
-func NewBaseRecognizer() *BaseRecognizer {
- rec := new(BaseRecognizer)
- rec.listeners = []ErrorListener{ConsoleErrorListenerINSTANCE}
- rec.state = -1
- return rec
-}
-
-//goland:noinspection GoUnusedGlobalVariable
-var tokenTypeMapCache = make(map[string]int)
-
-//goland:noinspection GoUnusedGlobalVariable
-var ruleIndexMapCache = make(map[string]int)
-
-func (b *BaseRecognizer) checkVersion(toolVersion string) {
- runtimeVersion := "4.12.0"
- if runtimeVersion != toolVersion {
- fmt.Println("ANTLR runtime and generated code versions disagree: " + runtimeVersion + "!=" + toolVersion)
- }
-}
-
-func (b *BaseRecognizer) SetError(err RecognitionException) {
- b.SynErr = err
-}
-
-func (b *BaseRecognizer) HasError() bool {
- return b.SynErr != nil
-}
-
-func (b *BaseRecognizer) GetError() RecognitionException {
- return b.SynErr
-}
-
-func (b *BaseRecognizer) Action(_ RuleContext, _, _ int) {
- panic("action not implemented on Recognizer!")
-}
-
-func (b *BaseRecognizer) AddErrorListener(listener ErrorListener) {
- b.listeners = append(b.listeners, listener)
-}
-
-func (b *BaseRecognizer) RemoveErrorListeners() {
- b.listeners = make([]ErrorListener, 0)
-}
-
-func (b *BaseRecognizer) GetRuleNames() []string {
- return b.RuleNames
-}
-
-func (b *BaseRecognizer) GetTokenNames() []string {
- return b.LiteralNames
-}
-
-func (b *BaseRecognizer) GetSymbolicNames() []string {
- return b.SymbolicNames
-}
-
-func (b *BaseRecognizer) GetLiteralNames() []string {
- return b.LiteralNames
-}
-
-func (b *BaseRecognizer) GetState() int {
- return b.state
-}
-
-func (b *BaseRecognizer) SetState(v int) {
- b.state = v
-}
-
-//func (b *Recognizer) GetTokenTypeMap() {
-// var tokenNames = b.GetTokenNames()
-// if (tokenNames==nil) {
-// panic("The current recognizer does not provide a list of token names.")
-// }
-// var result = tokenTypeMapCache[tokenNames]
-// if(result==nil) {
-// result = tokenNames.reduce(function(o, k, i) { o[k] = i })
-// result.EOF = TokenEOF
-// tokenTypeMapCache[tokenNames] = result
-// }
-// return result
-//}
-
-// GetRuleIndexMap Get a map from rule names to rule indexes.
-//
-// Used for XPath and tree pattern compilation.
-//
-// TODO: JI This is not yet implemented in the Go runtime. Maybe not needed.
-func (b *BaseRecognizer) GetRuleIndexMap() map[string]int {
-
- panic("Method not defined!")
- // var ruleNames = b.GetRuleNames()
- // if (ruleNames==nil) {
- // panic("The current recognizer does not provide a list of rule names.")
- // }
- //
- // var result = ruleIndexMapCache[ruleNames]
- // if(result==nil) {
- // result = ruleNames.reduce(function(o, k, i) { o[k] = i })
- // ruleIndexMapCache[ruleNames] = result
- // }
- // return result
-}
-
-// GetTokenType get the token type based upon its name
-func (b *BaseRecognizer) GetTokenType(_ string) int {
- panic("Method not defined!")
- // var ttype = b.GetTokenTypeMap()[tokenName]
- // if (ttype !=nil) {
- // return ttype
- // } else {
- // return TokenInvalidType
- // }
-}
-
-//func (b *Recognizer) GetTokenTypeMap() map[string]int {
-// Vocabulary vocabulary = getVocabulary()
-//
-// Synchronized (tokenTypeMapCache) {
-// Map result = tokenTypeMapCache.Get(vocabulary)
-// if (result == null) {
-// result = new HashMap()
-// for (int i = 0; i < GetATN().maxTokenType; i++) {
-// String literalName = vocabulary.getLiteralName(i)
-// if (literalName != null) {
-// result.put(literalName, i)
-// }
-//
-// String symbolicName = vocabulary.GetSymbolicName(i)
-// if (symbolicName != null) {
-// result.put(symbolicName, i)
-// }
-// }
-//
-// result.put("EOF", Token.EOF)
-// result = Collections.unmodifiableMap(result)
-// tokenTypeMapCache.put(vocabulary, result)
-// }
-//
-// return result
-// }
-//}
-
-// GetErrorHeader returns the error header, normally line/character position information.
-//
-// Can be overridden in sub structs embedding BaseRecognizer.
-func (b *BaseRecognizer) GetErrorHeader(e RecognitionException) string {
- line := e.GetOffendingToken().GetLine()
- column := e.GetOffendingToken().GetColumn()
- return "line " + strconv.Itoa(line) + ":" + strconv.Itoa(column)
-}
-
-// GetTokenErrorDisplay shows how a token should be displayed in an error message.
-//
-// The default is to display just the text, but during development you might
-// want to have a lot of information spit out. Override in that case
-// to use t.String() (which, for CommonToken, dumps everything about
-// the token). This is better than forcing you to override a method in
-// your token objects because you don't have to go modify your lexer
-// so that it creates a NewJava type.
-//
-// Deprecated: This method is not called by the ANTLR 4 Runtime. Specific
-// implementations of [ANTLRErrorStrategy] may provide a similar
-// feature when necessary. For example, see [DefaultErrorStrategy].GetTokenErrorDisplay()
-func (b *BaseRecognizer) GetTokenErrorDisplay(t Token) string {
- if t == nil {
- return ""
- }
- s := t.GetText()
- if s == "" {
- if t.GetTokenType() == TokenEOF {
- s = ""
- } else {
- s = "<" + strconv.Itoa(t.GetTokenType()) + ">"
- }
- }
- s = strings.Replace(s, "\t", "\\t", -1)
- s = strings.Replace(s, "\n", "\\n", -1)
- s = strings.Replace(s, "\r", "\\r", -1)
-
- return "'" + s + "'"
-}
-
-func (b *BaseRecognizer) GetErrorListenerDispatch() ErrorListener {
- return NewProxyErrorListener(b.listeners)
-}
-
-// Sempred embedding structs need to override this if there are sempreds or actions
-// that the ATN interpreter needs to execute
-func (b *BaseRecognizer) Sempred(_ RuleContext, _ int, _ int) bool {
- return true
-}
-
-// Precpred embedding structs need to override this if there are preceding predicates
-// that the ATN interpreter needs to execute
-func (b *BaseRecognizer) Precpred(_ RuleContext, _ int) bool {
- return true
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/rule_context.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/rule_context.go
deleted file mode 100644
index f2ad0479..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/rule_context.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// RuleContext is a record of a single rule invocation. It knows
-// which context invoked it, if any. If there is no parent context, then
-// naturally the invoking state is not valid. The parent link
-// provides a chain upwards from the current rule invocation to the root
-// of the invocation tree, forming a stack.
-//
-// We actually carry no information about the rule associated with this context (except
-// when parsing). We keep only the state number of the invoking state from
-// the [ATN] submachine that invoked this. Contrast this with the s
-// pointer inside [ParserRuleContext] that tracks the current state
-// being "executed" for the current rule.
-//
-// The parent contexts are useful for computing lookahead sets and
-// getting error information.
-//
-// These objects are used during parsing and prediction.
-// For the special case of parsers, we use the struct
-// [ParserRuleContext], which embeds a RuleContext.
-//
-// @see ParserRuleContext
-type RuleContext interface {
- RuleNode
-
- GetInvokingState() int
- SetInvokingState(int)
-
- GetRuleIndex() int
- IsEmpty() bool
-
- GetAltNumber() int
- SetAltNumber(altNumber int)
-
- String([]string, RuleContext) string
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/semantic_context.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/semantic_context.go
deleted file mode 100644
index 68cb9061..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/semantic_context.go
+++ /dev/null
@@ -1,464 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
-)
-
-// SemanticContext is a tree structure used to record the semantic context in which
-//
-// an ATN configuration is valid. It's either a single predicate,
-// a conjunction p1 && p2, or a sum of products p1 || p2.
-//
-// I have scoped the AND, OR, and Predicate subclasses of
-// [SemanticContext] within the scope of this outer ``class''
-type SemanticContext interface {
- Equals(other Collectable[SemanticContext]) bool
- Hash() int
-
- evaluate(parser Recognizer, outerContext RuleContext) bool
- evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext
-
- String() string
-}
-
-func SemanticContextandContext(a, b SemanticContext) SemanticContext {
- if a == nil || a == SemanticContextNone {
- return b
- }
- if b == nil || b == SemanticContextNone {
- return a
- }
- result := NewAND(a, b)
- if len(result.opnds) == 1 {
- return result.opnds[0]
- }
-
- return result
-}
-
-func SemanticContextorContext(a, b SemanticContext) SemanticContext {
- if a == nil {
- return b
- }
- if b == nil {
- return a
- }
- if a == SemanticContextNone || b == SemanticContextNone {
- return SemanticContextNone
- }
- result := NewOR(a, b)
- if len(result.opnds) == 1 {
- return result.opnds[0]
- }
-
- return result
-}
-
-type Predicate struct {
- ruleIndex int
- predIndex int
- isCtxDependent bool
-}
-
-func NewPredicate(ruleIndex, predIndex int, isCtxDependent bool) *Predicate {
- p := new(Predicate)
-
- p.ruleIndex = ruleIndex
- p.predIndex = predIndex
- p.isCtxDependent = isCtxDependent // e.g., $i ref in pred
- return p
-}
-
-//The default {@link SemanticContext}, which is semantically equivalent to
-//a predicate of the form {@code {true}?}.
-
-var SemanticContextNone = NewPredicate(-1, -1, false)
-
-func (p *Predicate) evalPrecedence(_ Recognizer, _ RuleContext) SemanticContext {
- return p
-}
-
-func (p *Predicate) evaluate(parser Recognizer, outerContext RuleContext) bool {
-
- var localctx RuleContext
-
- if p.isCtxDependent {
- localctx = outerContext
- }
-
- return parser.Sempred(localctx, p.ruleIndex, p.predIndex)
-}
-
-func (p *Predicate) Equals(other Collectable[SemanticContext]) bool {
- if p == other {
- return true
- } else if _, ok := other.(*Predicate); !ok {
- return false
- } else {
- return p.ruleIndex == other.(*Predicate).ruleIndex &&
- p.predIndex == other.(*Predicate).predIndex &&
- p.isCtxDependent == other.(*Predicate).isCtxDependent
- }
-}
-
-func (p *Predicate) Hash() int {
- h := murmurInit(0)
- h = murmurUpdate(h, p.ruleIndex)
- h = murmurUpdate(h, p.predIndex)
- if p.isCtxDependent {
- h = murmurUpdate(h, 1)
- } else {
- h = murmurUpdate(h, 0)
- }
- return murmurFinish(h, 3)
-}
-
-func (p *Predicate) String() string {
- return "{" + strconv.Itoa(p.ruleIndex) + ":" + strconv.Itoa(p.predIndex) + "}?"
-}
-
-type PrecedencePredicate struct {
- precedence int
-}
-
-func NewPrecedencePredicate(precedence int) *PrecedencePredicate {
-
- p := new(PrecedencePredicate)
- p.precedence = precedence
-
- return p
-}
-
-func (p *PrecedencePredicate) evaluate(parser Recognizer, outerContext RuleContext) bool {
- return parser.Precpred(outerContext, p.precedence)
-}
-
-func (p *PrecedencePredicate) evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext {
- if parser.Precpred(outerContext, p.precedence) {
- return SemanticContextNone
- }
-
- return nil
-}
-
-func (p *PrecedencePredicate) compareTo(other *PrecedencePredicate) int {
- return p.precedence - other.precedence
-}
-
-func (p *PrecedencePredicate) Equals(other Collectable[SemanticContext]) bool {
-
- var op *PrecedencePredicate
- var ok bool
- if op, ok = other.(*PrecedencePredicate); !ok {
- return false
- }
-
- if p == op {
- return true
- }
-
- return p.precedence == other.(*PrecedencePredicate).precedence
-}
-
-func (p *PrecedencePredicate) Hash() int {
- h := uint32(1)
- h = 31*h + uint32(p.precedence)
- return int(h)
-}
-
-func (p *PrecedencePredicate) String() string {
- return "{" + strconv.Itoa(p.precedence) + ">=prec}?"
-}
-
-func PrecedencePredicatefilterPrecedencePredicates(set *JStore[SemanticContext, Comparator[SemanticContext]]) []*PrecedencePredicate {
- result := make([]*PrecedencePredicate, 0)
-
- set.Each(func(v SemanticContext) bool {
- if c2, ok := v.(*PrecedencePredicate); ok {
- result = append(result, c2)
- }
- return true
- })
-
- return result
-}
-
-// A semantic context which is true whenever none of the contained contexts
-// is false.`
-
-type AND struct {
- opnds []SemanticContext
-}
-
-func NewAND(a, b SemanticContext) *AND {
-
- operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst, SemanticContextCollection, "NewAND() operands")
- if aa, ok := a.(*AND); ok {
- for _, o := range aa.opnds {
- operands.Put(o)
- }
- } else {
- operands.Put(a)
- }
-
- if ba, ok := b.(*AND); ok {
- for _, o := range ba.opnds {
- operands.Put(o)
- }
- } else {
- operands.Put(b)
- }
- precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
- if len(precedencePredicates) > 0 {
- // interested in the transition with the lowest precedence
- var reduced *PrecedencePredicate
-
- for _, p := range precedencePredicates {
- if reduced == nil || p.precedence < reduced.precedence {
- reduced = p
- }
- }
-
- operands.Put(reduced)
- }
-
- vs := operands.Values()
- opnds := make([]SemanticContext, len(vs))
- copy(opnds, vs)
-
- and := new(AND)
- and.opnds = opnds
-
- return and
-}
-
-func (a *AND) Equals(other Collectable[SemanticContext]) bool {
- if a == other {
- return true
- }
- if _, ok := other.(*AND); !ok {
- return false
- } else {
- for i, v := range other.(*AND).opnds {
- if !a.opnds[i].Equals(v) {
- return false
- }
- }
- return true
- }
-}
-
-// {@inheritDoc}
-//
-//
-// The evaluation of predicates by a context is short-circuiting, but
-// unordered.
-func (a *AND) evaluate(parser Recognizer, outerContext RuleContext) bool {
- for i := 0; i < len(a.opnds); i++ {
- if !a.opnds[i].evaluate(parser, outerContext) {
- return false
- }
- }
- return true
-}
-
-func (a *AND) evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext {
- differs := false
- operands := make([]SemanticContext, 0)
-
- for i := 0; i < len(a.opnds); i++ {
- context := a.opnds[i]
- evaluated := context.evalPrecedence(parser, outerContext)
- differs = differs || (evaluated != context)
- if evaluated == nil {
- // The AND context is false if any element is false
- return nil
- } else if evaluated != SemanticContextNone {
- // Reduce the result by Skipping true elements
- operands = append(operands, evaluated)
- }
- }
- if !differs {
- return a
- }
-
- if len(operands) == 0 {
- // all elements were true, so the AND context is true
- return SemanticContextNone
- }
-
- var result SemanticContext
-
- for _, o := range operands {
- if result == nil {
- result = o
- } else {
- result = SemanticContextandContext(result, o)
- }
- }
-
- return result
-}
-
-func (a *AND) Hash() int {
- h := murmurInit(37) // Init with a value different from OR
- for _, op := range a.opnds {
- h = murmurUpdate(h, op.Hash())
- }
- return murmurFinish(h, len(a.opnds))
-}
-
-func (o *OR) Hash() int {
- h := murmurInit(41) // Init with o value different from AND
- for _, op := range o.opnds {
- h = murmurUpdate(h, op.Hash())
- }
- return murmurFinish(h, len(o.opnds))
-}
-
-func (a *AND) String() string {
- s := ""
-
- for _, o := range a.opnds {
- s += "&& " + fmt.Sprint(o)
- }
-
- if len(s) > 3 {
- return s[0:3]
- }
-
- return s
-}
-
-//
-// A semantic context which is true whenever at least one of the contained
-// contexts is true.
-//
-
-type OR struct {
- opnds []SemanticContext
-}
-
-func NewOR(a, b SemanticContext) *OR {
-
- operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst, SemanticContextCollection, "NewOR() operands")
- if aa, ok := a.(*OR); ok {
- for _, o := range aa.opnds {
- operands.Put(o)
- }
- } else {
- operands.Put(a)
- }
-
- if ba, ok := b.(*OR); ok {
- for _, o := range ba.opnds {
- operands.Put(o)
- }
- } else {
- operands.Put(b)
- }
- precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
- if len(precedencePredicates) > 0 {
- // interested in the transition with the lowest precedence
- var reduced *PrecedencePredicate
-
- for _, p := range precedencePredicates {
- if reduced == nil || p.precedence > reduced.precedence {
- reduced = p
- }
- }
-
- operands.Put(reduced)
- }
-
- vs := operands.Values()
-
- opnds := make([]SemanticContext, len(vs))
- copy(opnds, vs)
-
- o := new(OR)
- o.opnds = opnds
-
- return o
-}
-
-func (o *OR) Equals(other Collectable[SemanticContext]) bool {
- if o == other {
- return true
- } else if _, ok := other.(*OR); !ok {
- return false
- } else {
- for i, v := range other.(*OR).opnds {
- if !o.opnds[i].Equals(v) {
- return false
- }
- }
- return true
- }
-}
-
-//
-// The evaluation of predicates by o context is short-circuiting, but
-// unordered.
-func (o *OR) evaluate(parser Recognizer, outerContext RuleContext) bool {
- for i := 0; i < len(o.opnds); i++ {
- if o.opnds[i].evaluate(parser, outerContext) {
- return true
- }
- }
- return false
-}
-
-func (o *OR) evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext {
- differs := false
- operands := make([]SemanticContext, 0)
- for i := 0; i < len(o.opnds); i++ {
- context := o.opnds[i]
- evaluated := context.evalPrecedence(parser, outerContext)
- differs = differs || (evaluated != context)
- if evaluated == SemanticContextNone {
- // The OR context is true if any element is true
- return SemanticContextNone
- } else if evaluated != nil {
- // Reduce the result by Skipping false elements
- operands = append(operands, evaluated)
- }
- }
- if !differs {
- return o
- }
- if len(operands) == 0 {
- // all elements were false, so the OR context is false
- return nil
- }
- var result SemanticContext
-
- for _, o := range operands {
- if result == nil {
- result = o
- } else {
- result = SemanticContextorContext(result, o)
- }
- }
-
- return result
-}
-
-func (o *OR) String() string {
- s := ""
-
- for _, o := range o.opnds {
- s += "|| " + fmt.Sprint(o)
- }
-
- if len(s) > 3 {
- return s[0:3]
- }
-
- return s
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/statistics.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/statistics.go
deleted file mode 100644
index 70c0673a..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/statistics.go
+++ /dev/null
@@ -1,281 +0,0 @@
-//go:build antlr.stats
-
-package antlr
-
-import (
- "fmt"
- "log"
- "os"
- "path/filepath"
- "sort"
- "strconv"
- "sync"
-)
-
-// This file allows the user to collect statistics about the runtime of the ANTLR runtime. It is not enabled by default
-// and so incurs no time penalty. To enable it, you must build the runtime with the antlr.stats build tag.
-//
-
-// Tells various components to collect statistics - because it is only true when this file is included, it will
-// allow the compiler to completely eliminate all the code that is only used when collecting statistics.
-const collectStats = true
-
-// goRunStats is a collection of all the various data the ANTLR runtime has collected about a particular run.
-// It is exported so that it can be used by others to look for things that are not already looked for in the
-// runtime statistics.
-type goRunStats struct {
-
- // jStats is a slice of all the [JStatRec] records that have been created, which is one for EVERY collection created
- // during a run. It is exported so that it can be used by others to look for things that are not already looked for
- // within this package.
- //
- jStats []*JStatRec
- jStatsLock sync.RWMutex
- topN int
- topNByMax []*JStatRec
- topNByUsed []*JStatRec
- unusedCollections map[CollectionSource]int
- counts map[CollectionSource]int
-}
-
-const (
- collectionsFile = "collections"
-)
-
-var (
- Statistics = &goRunStats{
- topN: 10,
- }
-)
-
-type statsOption func(*goRunStats) error
-
-// Configure allows the statistics system to be configured as the user wants and override the defaults
-func (s *goRunStats) Configure(options ...statsOption) error {
- for _, option := range options {
- err := option(s)
- if err != nil {
- return err
- }
- }
- return nil
-}
-
-// WithTopN sets the number of things to list in the report when we are concerned with the top N things.
-//
-// For example, if you want to see the top 20 collections by size, you can do:
-//
-// antlr.Statistics.Configure(antlr.WithTopN(20))
-func WithTopN(topN int) statsOption {
- return func(s *goRunStats) error {
- s.topN = topN
- return nil
- }
-}
-
-// Analyze looks through all the statistical records and computes all the outputs that might be useful to the user.
-//
-// The function gathers and analyzes a number of statistics about any particular run of
-// an ANTLR generated recognizer. In the vast majority of cases, the statistics are only
-// useful to maintainers of ANTLR itself, but they can be useful to users as well. They may be
-// especially useful in tracking down bugs or performance problems when an ANTLR user could
-// supply the output from this package, but cannot supply the grammar file(s) they are using, even
-// privately to the maintainers.
-//
-// The statistics are gathered by the runtime itself, and are not gathered by the parser or lexer, but the user
-// must call this function their selves to analyze the statistics. This is because none of the infrastructure is
-// extant unless the calling program is built with the antlr.stats tag like so:
-//
-// go build -tags antlr.stats .
-//
-// When a program is built with the antlr.stats tag, the Statistics object is created and available outside
-// the package. The user can then call the [Statistics.Analyze] function to analyze the statistics and then call the
-// [Statistics.Report] function to report the statistics.
-//
-// Please forward any questions about this package to the ANTLR discussion groups on GitHub or send to them to
-// me [Jim Idle] directly at jimi@idle.ws
-//
-// [Jim Idle]: https:://github.com/jim-idle
-func (s *goRunStats) Analyze() {
-
- // Look for anything that looks strange and record it in our local maps etc for the report to present it
- //
- s.CollectionAnomalies()
- s.TopNCollections()
-}
-
-// TopNCollections looks through all the statistical records and gathers the top ten collections by size.
-func (s *goRunStats) TopNCollections() {
-
- // Let's sort the stat records by MaxSize
- //
- sort.Slice(s.jStats, func(i, j int) bool {
- return s.jStats[i].MaxSize > s.jStats[j].MaxSize
- })
-
- for i := 0; i < len(s.jStats) && i < s.topN; i++ {
- s.topNByMax = append(s.topNByMax, s.jStats[i])
- }
-
- // Sort by the number of times used
- //
- sort.Slice(s.jStats, func(i, j int) bool {
- return s.jStats[i].Gets+s.jStats[i].Puts > s.jStats[j].Gets+s.jStats[j].Puts
- })
- for i := 0; i < len(s.jStats) && i < s.topN; i++ {
- s.topNByUsed = append(s.topNByUsed, s.jStats[i])
- }
-}
-
-// Report dumps a markdown formatted report of all the statistics collected during a run to the given dir output
-// path, which should represent a directory. Generated files will be prefixed with the given prefix and will be
-// given a type name such as `anomalies` and a time stamp such as `2021-09-01T12:34:56` and a .md suffix.
-func (s *goRunStats) Report(dir string, prefix string) error {
-
- isDir, err := isDirectory(dir)
- switch {
- case err != nil:
- return err
- case !isDir:
- return fmt.Errorf("output directory `%s` is not a directory", dir)
- }
- s.reportCollections(dir, prefix)
-
- // Clean out any old data in case the user forgets
- //
- s.Reset()
- return nil
-}
-
-func (s *goRunStats) Reset() {
- s.jStats = nil
- s.topNByUsed = nil
- s.topNByMax = nil
-}
-
-func (s *goRunStats) reportCollections(dir, prefix string) {
- cname := filepath.Join(dir, ".asciidoctor")
- // If the file doesn't exist, create it, or append to the file
- f, err := os.OpenFile(cname, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
- if err != nil {
- log.Fatal(err)
- }
- _, _ = f.WriteString(`// .asciidoctorconfig
-++++
-
-++++`)
- _ = f.Close()
-
- fname := filepath.Join(dir, prefix+"_"+"_"+collectionsFile+"_"+".adoc")
- // If the file doesn't exist, create it, or append to the file
- f, err = os.OpenFile(fname, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
- if err != nil {
- log.Fatal(err)
- }
- defer func(f *os.File) {
- err := f.Close()
- if err != nil {
- log.Fatal(err)
- }
- }(f)
- _, _ = f.WriteString("= Collections for " + prefix + "\n\n")
-
- _, _ = f.WriteString("== Summary\n")
-
- if s.unusedCollections != nil {
- _, _ = f.WriteString("=== Unused Collections\n")
- _, _ = f.WriteString("Unused collections incur a penalty for allocation that makes them a candidate for either\n")
- _, _ = f.WriteString(" removal or optimization. If you are using a collection that is not used, you should\n")
- _, _ = f.WriteString(" consider removing it. If you are using a collection that is used, but not very often,\n")
- _, _ = f.WriteString(" you should consider using lazy initialization to defer the allocation until it is\n")
- _, _ = f.WriteString(" actually needed.\n\n")
-
- _, _ = f.WriteString("\n.Unused collections\n")
- _, _ = f.WriteString(`[cols="<3,>1"]` + "\n\n")
- _, _ = f.WriteString("|===\n")
- _, _ = f.WriteString("| Type | Count\n")
-
- for k, v := range s.unusedCollections {
- _, _ = f.WriteString("| " + CollectionDescriptors[k].SybolicName + " | " + strconv.Itoa(v) + "\n")
- }
- f.WriteString("|===\n\n")
- }
-
- _, _ = f.WriteString("\n.Summary of Collections\n")
- _, _ = f.WriteString(`[cols="<3,>1"]` + "\n\n")
- _, _ = f.WriteString("|===\n")
- _, _ = f.WriteString("| Type | Count\n")
- for k, v := range s.counts {
- _, _ = f.WriteString("| " + CollectionDescriptors[k].SybolicName + " | " + strconv.Itoa(v) + "\n")
- }
- _, _ = f.WriteString("| Total | " + strconv.Itoa(len(s.jStats)) + "\n")
- _, _ = f.WriteString("|===\n\n")
-
- _, _ = f.WriteString("\n.Summary of Top " + strconv.Itoa(s.topN) + " Collections by MaxSize\n")
- _, _ = f.WriteString(`[cols="<1,<3,>1,>1,>1,>1"]` + "\n\n")
- _, _ = f.WriteString("|===\n")
- _, _ = f.WriteString("| Source | Description | MaxSize | EndSize | Puts | Gets\n")
- for _, c := range s.topNByMax {
- _, _ = f.WriteString("| " + CollectionDescriptors[c.Source].SybolicName + "\n")
- _, _ = f.WriteString("| " + c.Description + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.MaxSize) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.CurSize) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.Puts) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.Gets) + "\n")
- _, _ = f.WriteString("\n")
- }
- _, _ = f.WriteString("|===\n\n")
-
- _, _ = f.WriteString("\n.Summary of Top " + strconv.Itoa(s.topN) + " Collections by Access\n")
- _, _ = f.WriteString(`[cols="<1,<3,>1,>1,>1,>1,>1"]` + "\n\n")
- _, _ = f.WriteString("|===\n")
- _, _ = f.WriteString("| Source | Description | MaxSize | EndSize | Puts | Gets | P+G\n")
- for _, c := range s.topNByUsed {
- _, _ = f.WriteString("| " + CollectionDescriptors[c.Source].SybolicName + "\n")
- _, _ = f.WriteString("| " + c.Description + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.MaxSize) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.CurSize) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.Puts) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.Gets) + "\n")
- _, _ = f.WriteString("| " + strconv.Itoa(c.Gets+c.Puts) + "\n")
- _, _ = f.WriteString("\n")
- }
- _, _ = f.WriteString("|===\n\n")
-}
-
-// AddJStatRec adds a [JStatRec] record to the [goRunStats] collection when build runtimeConfig antlr.stats is enabled.
-func (s *goRunStats) AddJStatRec(rec *JStatRec) {
- s.jStatsLock.Lock()
- defer s.jStatsLock.Unlock()
- s.jStats = append(s.jStats, rec)
-}
-
-// CollectionAnomalies looks through all the statistical records and gathers any anomalies that have been found.
-func (s *goRunStats) CollectionAnomalies() {
- s.jStatsLock.RLock()
- defer s.jStatsLock.RUnlock()
- s.counts = make(map[CollectionSource]int, len(s.jStats))
- for _, c := range s.jStats {
-
- // Accumlate raw counts
- //
- s.counts[c.Source]++
-
- // Look for allocated but unused collections and count them
- if c.MaxSize == 0 && c.Puts == 0 {
- if s.unusedCollections == nil {
- s.unusedCollections = make(map[CollectionSource]int)
- }
- s.unusedCollections[c.Source]++
- }
- if c.MaxSize > 6000 {
- fmt.Println("Collection ", c.Description, "accumulated a max size of ", c.MaxSize, " - this is probably too large and indicates a poorly formed grammar")
- }
- }
-
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/stats_data.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/stats_data.go
deleted file mode 100644
index 4d9eb94e..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/stats_data.go
+++ /dev/null
@@ -1,23 +0,0 @@
-package antlr
-
-// A JStatRec is a record of a particular use of a [JStore], [JMap] or JPCMap] collection. Typically, it will be
-// used to look for unused collections that wre allocated anyway, problems with hash bucket clashes, and anomalies
-// such as huge numbers of Gets with no entries found GetNoEnt. You can refer to the CollectionAnomalies() function
-// for ideas on what can be gleaned from these statistics about collections.
-type JStatRec struct {
- Source CollectionSource
- MaxSize int
- CurSize int
- Gets int
- GetHits int
- GetMisses int
- GetHashConflicts int
- GetNoEnt int
- Puts int
- PutHits int
- PutMisses int
- PutHashConflicts int
- MaxSlotSize int
- Description string
- CreateStack []byte
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token.go
deleted file mode 100644
index 9670efb8..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token.go
+++ /dev/null
@@ -1,213 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "strconv"
- "strings"
-)
-
-type TokenSourceCharStreamPair struct {
- tokenSource TokenSource
- charStream CharStream
-}
-
-// A token has properties: text, type, line, character position in the line
-// (so we can ignore tabs), token channel, index, and source from which
-// we obtained this token.
-
-type Token interface {
- GetSource() *TokenSourceCharStreamPair
- GetTokenType() int
- GetChannel() int
- GetStart() int
- GetStop() int
- GetLine() int
- GetColumn() int
-
- GetText() string
- SetText(s string)
-
- GetTokenIndex() int
- SetTokenIndex(v int)
-
- GetTokenSource() TokenSource
- GetInputStream() CharStream
-
- String() string
-}
-
-type BaseToken struct {
- source *TokenSourceCharStreamPair
- tokenType int // token type of the token
- channel int // The parser ignores everything not on DEFAULT_CHANNEL
- start int // optional return -1 if not implemented.
- stop int // optional return -1 if not implemented.
- tokenIndex int // from 0..n-1 of the token object in the input stream
- line int // line=1..n of the 1st character
- column int // beginning of the line at which it occurs, 0..n-1
- text string // text of the token.
- readOnly bool
-}
-
-const (
- TokenInvalidType = 0
-
- // TokenEpsilon - during lookahead operations, this "token" signifies we hit the rule end [ATN] state
- // and did not follow it despite needing to.
- TokenEpsilon = -2
-
- TokenMinUserTokenType = 1
-
- TokenEOF = -1
-
- // TokenDefaultChannel is the default channel upon which tokens are sent to the parser.
- //
- // All tokens go to the parser (unless [Skip] is called in the lexer rule)
- // on a particular "channel". The parser tunes to a particular channel
- // so that whitespace etc... can go to the parser on a "hidden" channel.
- TokenDefaultChannel = 0
-
- // TokenHiddenChannel defines the normal hidden channel - the parser wil not see tokens that are not on [TokenDefaultChannel].
- //
- // Anything on a different channel than TokenDefaultChannel is not parsed by parser.
- TokenHiddenChannel = 1
-)
-
-func (b *BaseToken) GetChannel() int {
- return b.channel
-}
-
-func (b *BaseToken) GetStart() int {
- return b.start
-}
-
-func (b *BaseToken) GetStop() int {
- return b.stop
-}
-
-func (b *BaseToken) GetLine() int {
- return b.line
-}
-
-func (b *BaseToken) GetColumn() int {
- return b.column
-}
-
-func (b *BaseToken) GetTokenType() int {
- return b.tokenType
-}
-
-func (b *BaseToken) GetSource() *TokenSourceCharStreamPair {
- return b.source
-}
-
-func (b *BaseToken) GetTokenIndex() int {
- return b.tokenIndex
-}
-
-func (b *BaseToken) SetTokenIndex(v int) {
- b.tokenIndex = v
-}
-
-func (b *BaseToken) GetTokenSource() TokenSource {
- return b.source.tokenSource
-}
-
-func (b *BaseToken) GetInputStream() CharStream {
- return b.source.charStream
-}
-
-type CommonToken struct {
- BaseToken
-}
-
-func NewCommonToken(source *TokenSourceCharStreamPair, tokenType, channel, start, stop int) *CommonToken {
-
- t := &CommonToken{
- BaseToken: BaseToken{
- source: source,
- tokenType: tokenType,
- channel: channel,
- start: start,
- stop: stop,
- tokenIndex: -1,
- },
- }
-
- if t.source.tokenSource != nil {
- t.line = source.tokenSource.GetLine()
- t.column = source.tokenSource.GetCharPositionInLine()
- } else {
- t.column = -1
- }
- return t
-}
-
-// An empty {@link Pair} which is used as the default value of
-// {@link //source} for tokens that do not have a source.
-
-//CommonToken.EMPTY_SOURCE = [ nil, nil ]
-
-// Constructs a New{@link CommonToken} as a copy of another {@link Token}.
-//
-//
-// If {@code oldToken} is also a {@link CommonToken} instance, the newly
-// constructed token will share a reference to the {@link //text} field and
-// the {@link Pair} stored in {@link //source}. Otherwise, {@link //text} will
-// be assigned the result of calling {@link //GetText}, and {@link //source}
-// will be constructed from the result of {@link Token//GetTokenSource} and
-// {@link Token//GetInputStream}.
-//
-// @param oldToken The token to copy.
-func (c *CommonToken) clone() *CommonToken {
- t := NewCommonToken(c.source, c.tokenType, c.channel, c.start, c.stop)
- t.tokenIndex = c.GetTokenIndex()
- t.line = c.GetLine()
- t.column = c.GetColumn()
- t.text = c.GetText()
- return t
-}
-
-func (c *CommonToken) GetText() string {
- if c.text != "" {
- return c.text
- }
- input := c.GetInputStream()
- if input == nil {
- return ""
- }
- n := input.Size()
- if c.start < n && c.stop < n {
- return input.GetTextFromInterval(NewInterval(c.start, c.stop))
- }
- return ""
-}
-
-func (c *CommonToken) SetText(text string) {
- c.text = text
-}
-
-func (c *CommonToken) String() string {
- txt := c.GetText()
- if txt != "" {
- txt = strings.Replace(txt, "\n", "\\n", -1)
- txt = strings.Replace(txt, "\r", "\\r", -1)
- txt = strings.Replace(txt, "\t", "\\t", -1)
- } else {
- txt = ""
- }
-
- var ch string
- if c.channel > 0 {
- ch = ",channel=" + strconv.Itoa(c.channel)
- } else {
- ch = ""
- }
-
- return "[@" + strconv.Itoa(c.tokenIndex) + "," + strconv.Itoa(c.start) + ":" + strconv.Itoa(c.stop) + "='" +
- txt + "',<" + strconv.Itoa(c.tokenType) + ">" +
- ch + "," + strconv.Itoa(c.line) + ":" + strconv.Itoa(c.column) + "]"
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_source.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_source.go
deleted file mode 100644
index a3f36eaa..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_source.go
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-type TokenSource interface {
- NextToken() Token
- Skip()
- More()
- GetLine() int
- GetCharPositionInLine() int
- GetInputStream() CharStream
- GetSourceName() string
- setTokenFactory(factory TokenFactory)
- GetTokenFactory() TokenFactory
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_stream.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_stream.go
deleted file mode 100644
index bf4ff663..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/token_stream.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-type TokenStream interface {
- IntStream
-
- LT(k int) Token
- Reset()
-
- Get(index int) Token
- GetTokenSource() TokenSource
- SetTokenSource(TokenSource)
-
- GetAllText() string
- GetTextFromInterval(Interval) string
- GetTextFromRuleContext(RuleContext) string
- GetTextFromTokens(Token, Token) string
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tokenstream_rewriter.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tokenstream_rewriter.go
deleted file mode 100644
index ccf59b46..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tokenstream_rewriter.go
+++ /dev/null
@@ -1,662 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "bytes"
- "fmt"
-)
-
-//
-// Useful for rewriting out a buffered input token stream after doing some
-// augmentation or other manipulations on it.
-
-//
-// You can insert stuff, replace, and delete chunks. Note that the operations
-// are done lazily--only if you convert the buffer to a {@link String} with
-// {@link TokenStream#getText()}. This is very efficient because you are not
-// moving data around all the time. As the buffer of tokens is converted to
-// strings, the {@link #getText()} method(s) scan the input token stream and
-// check to see if there is an operation at the current index. If so, the
-// operation is done and then normal {@link String} rendering continues on the
-// buffer. This is like having multiple Turing machine instruction streams
-// (programs) operating on a single input tape. :)
-//
-
-// This rewriter makes no modifications to the token stream. It does not ask the
-// stream to fill itself up nor does it advance the input cursor. The token
-// stream {@link TokenStream#index()} will return the same value before and
-// after any {@link #getText()} call.
-
-//
-// The rewriter only works on tokens that you have in the buffer and ignores the
-// current input cursor. If you are buffering tokens on-demand, calling
-// {@link #getText()} halfway through the input will only do rewrites for those
-// tokens in the first half of the file.
-
-//
-// Since the operations are done lazily at {@link #getText}-time, operations do
-// not screw up the token index values. That is, an insert operation at token
-// index {@code i} does not change the index values for tokens
-// {@code i}+1..n-1.
-
-//
-// Because operations never actually alter the buffer, you may always get the
-// original token stream back without undoing anything. Since the instructions
-// are queued up, you can easily simulate transactions and roll back any changes
-// if there is an error just by removing instructions. For example,
-
-//
-// CharStream input = new ANTLRFileStream("input");
-// TLexer lex = new TLexer(input);
-// CommonTokenStream tokens = new CommonTokenStream(lex);
-// T parser = new T(tokens);
-// TokenStreamRewriter rewriter = new TokenStreamRewriter(tokens);
-// parser.startRule();
-//
-
-//
-// Then in the rules, you can execute (assuming rewriter is visible):
-
-//
-// Token t,u;
-// ...
-// rewriter.insertAfter(t, "text to put after t");}
-// rewriter.insertAfter(u, "text after u");}
-// System.out.println(rewriter.getText());
-//
-
-//
-// You can also have multiple "instruction streams" and get multiple rewrites
-// from a single pass over the input. Just name the instruction streams and use
-// that name again when printing the buffer. This could be useful for generating
-// a C file and also its header file--all from the same buffer:
-
-//
-// rewriter.insertAfter("pass1", t, "text to put after t");}
-// rewriter.insertAfter("pass2", u, "text after u");}
-// System.out.println(rewriter.getText("pass1"));
-// System.out.println(rewriter.getText("pass2"));
-//
-
-//
-// If you don't use named rewrite streams, a "default" stream is used as the
-// first example shows.
-
-const (
- DefaultProgramName = "default"
- ProgramInitSize = 100
- MinTokenIndex = 0
-)
-
-// Define the rewrite operation hierarchy
-
-type RewriteOperation interface {
-
- // Execute the rewrite operation by possibly adding to the buffer.
- // Return the index of the next token to operate on.
- Execute(buffer *bytes.Buffer) int
- String() string
- GetInstructionIndex() int
- GetIndex() int
- GetText() string
- GetOpName() string
- GetTokens() TokenStream
- SetInstructionIndex(val int)
- SetIndex(int)
- SetText(string)
- SetOpName(string)
- SetTokens(TokenStream)
-}
-
-type BaseRewriteOperation struct {
- //Current index of rewrites list
- instructionIndex int
- //Token buffer index
- index int
- //Substitution text
- text string
- //Actual operation name
- opName string
- //Pointer to token steam
- tokens TokenStream
-}
-
-func (op *BaseRewriteOperation) GetInstructionIndex() int {
- return op.instructionIndex
-}
-
-func (op *BaseRewriteOperation) GetIndex() int {
- return op.index
-}
-
-func (op *BaseRewriteOperation) GetText() string {
- return op.text
-}
-
-func (op *BaseRewriteOperation) GetOpName() string {
- return op.opName
-}
-
-func (op *BaseRewriteOperation) GetTokens() TokenStream {
- return op.tokens
-}
-
-func (op *BaseRewriteOperation) SetInstructionIndex(val int) {
- op.instructionIndex = val
-}
-
-func (op *BaseRewriteOperation) SetIndex(val int) {
- op.index = val
-}
-
-func (op *BaseRewriteOperation) SetText(val string) {
- op.text = val
-}
-
-func (op *BaseRewriteOperation) SetOpName(val string) {
- op.opName = val
-}
-
-func (op *BaseRewriteOperation) SetTokens(val TokenStream) {
- op.tokens = val
-}
-
-func (op *BaseRewriteOperation) Execute(_ *bytes.Buffer) int {
- return op.index
-}
-
-func (op *BaseRewriteOperation) String() string {
- return fmt.Sprintf("<%s@%d:\"%s\">",
- op.opName,
- op.tokens.Get(op.GetIndex()),
- op.text,
- )
-
-}
-
-type InsertBeforeOp struct {
- BaseRewriteOperation
-}
-
-func NewInsertBeforeOp(index int, text string, stream TokenStream) *InsertBeforeOp {
- return &InsertBeforeOp{BaseRewriteOperation: BaseRewriteOperation{
- index: index,
- text: text,
- opName: "InsertBeforeOp",
- tokens: stream,
- }}
-}
-
-func (op *InsertBeforeOp) Execute(buffer *bytes.Buffer) int {
- buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
- buffer.WriteString(op.tokens.Get(op.index).GetText())
- }
- return op.index + 1
-}
-
-func (op *InsertBeforeOp) String() string {
- return op.BaseRewriteOperation.String()
-}
-
-// InsertAfterOp distinguishes between insert after/before to do the "insert after" instructions
-// first and then the "insert before" instructions at same index. Implementation
-// of "insert after" is "insert before index+1".
-type InsertAfterOp struct {
- BaseRewriteOperation
-}
-
-func NewInsertAfterOp(index int, text string, stream TokenStream) *InsertAfterOp {
- return &InsertAfterOp{
- BaseRewriteOperation: BaseRewriteOperation{
- index: index + 1,
- text: text,
- tokens: stream,
- },
- }
-}
-
-func (op *InsertAfterOp) Execute(buffer *bytes.Buffer) int {
- buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
- buffer.WriteString(op.tokens.Get(op.index).GetText())
- }
- return op.index + 1
-}
-
-func (op *InsertAfterOp) String() string {
- return op.BaseRewriteOperation.String()
-}
-
-// ReplaceOp tries to replace range from x..y with (y-x)+1 ReplaceOp
-// instructions.
-type ReplaceOp struct {
- BaseRewriteOperation
- LastIndex int
-}
-
-func NewReplaceOp(from, to int, text string, stream TokenStream) *ReplaceOp {
- return &ReplaceOp{
- BaseRewriteOperation: BaseRewriteOperation{
- index: from,
- text: text,
- opName: "ReplaceOp",
- tokens: stream,
- },
- LastIndex: to,
- }
-}
-
-func (op *ReplaceOp) Execute(buffer *bytes.Buffer) int {
- if op.text != "" {
- buffer.WriteString(op.text)
- }
- return op.LastIndex + 1
-}
-
-func (op *ReplaceOp) String() string {
- if op.text == "" {
- return fmt.Sprintf("",
- op.tokens.Get(op.index), op.tokens.Get(op.LastIndex))
- }
- return fmt.Sprintf("",
- op.tokens.Get(op.index), op.tokens.Get(op.LastIndex), op.text)
-}
-
-type TokenStreamRewriter struct {
- //Our source stream
- tokens TokenStream
- // You may have multiple, named streams of rewrite operations.
- // I'm calling these things "programs."
- // Maps String (name) → rewrite (List)
- programs map[string][]RewriteOperation
- lastRewriteTokenIndexes map[string]int
-}
-
-func NewTokenStreamRewriter(tokens TokenStream) *TokenStreamRewriter {
- return &TokenStreamRewriter{
- tokens: tokens,
- programs: map[string][]RewriteOperation{
- DefaultProgramName: make([]RewriteOperation, 0, ProgramInitSize),
- },
- lastRewriteTokenIndexes: map[string]int{},
- }
-}
-
-func (tsr *TokenStreamRewriter) GetTokenStream() TokenStream {
- return tsr.tokens
-}
-
-// Rollback the instruction stream for a program so that
-// the indicated instruction (via instructionIndex) is no
-// longer in the stream. UNTESTED!
-func (tsr *TokenStreamRewriter) Rollback(programName string, instructionIndex int) {
- is, ok := tsr.programs[programName]
- if ok {
- tsr.programs[programName] = is[MinTokenIndex:instructionIndex]
- }
-}
-
-func (tsr *TokenStreamRewriter) RollbackDefault(instructionIndex int) {
- tsr.Rollback(DefaultProgramName, instructionIndex)
-}
-
-// DeleteProgram Reset the program so that no instructions exist
-func (tsr *TokenStreamRewriter) DeleteProgram(programName string) {
- tsr.Rollback(programName, MinTokenIndex) //TODO: double test on that cause lower bound is not included
-}
-
-func (tsr *TokenStreamRewriter) DeleteProgramDefault() {
- tsr.DeleteProgram(DefaultProgramName)
-}
-
-func (tsr *TokenStreamRewriter) InsertAfter(programName string, index int, text string) {
- // to insert after, just insert before next index (even if past end)
- var op RewriteOperation = NewInsertAfterOp(index, text, tsr.tokens)
- rewrites := tsr.GetProgram(programName)
- op.SetInstructionIndex(len(rewrites))
- tsr.AddToProgram(programName, op)
-}
-
-func (tsr *TokenStreamRewriter) InsertAfterDefault(index int, text string) {
- tsr.InsertAfter(DefaultProgramName, index, text)
-}
-
-func (tsr *TokenStreamRewriter) InsertAfterToken(programName string, token Token, text string) {
- tsr.InsertAfter(programName, token.GetTokenIndex(), text)
-}
-
-func (tsr *TokenStreamRewriter) InsertBefore(programName string, index int, text string) {
- var op RewriteOperation = NewInsertBeforeOp(index, text, tsr.tokens)
- rewrites := tsr.GetProgram(programName)
- op.SetInstructionIndex(len(rewrites))
- tsr.AddToProgram(programName, op)
-}
-
-func (tsr *TokenStreamRewriter) InsertBeforeDefault(index int, text string) {
- tsr.InsertBefore(DefaultProgramName, index, text)
-}
-
-func (tsr *TokenStreamRewriter) InsertBeforeToken(programName string, token Token, text string) {
- tsr.InsertBefore(programName, token.GetTokenIndex(), text)
-}
-
-func (tsr *TokenStreamRewriter) Replace(programName string, from, to int, text string) {
- if from > to || from < 0 || to < 0 || to >= tsr.tokens.Size() {
- panic(fmt.Sprintf("replace: range invalid: %d..%d(size=%d)",
- from, to, tsr.tokens.Size()))
- }
- var op RewriteOperation = NewReplaceOp(from, to, text, tsr.tokens)
- rewrites := tsr.GetProgram(programName)
- op.SetInstructionIndex(len(rewrites))
- tsr.AddToProgram(programName, op)
-}
-
-func (tsr *TokenStreamRewriter) ReplaceDefault(from, to int, text string) {
- tsr.Replace(DefaultProgramName, from, to, text)
-}
-
-func (tsr *TokenStreamRewriter) ReplaceDefaultPos(index int, text string) {
- tsr.ReplaceDefault(index, index, text)
-}
-
-func (tsr *TokenStreamRewriter) ReplaceToken(programName string, from, to Token, text string) {
- tsr.Replace(programName, from.GetTokenIndex(), to.GetTokenIndex(), text)
-}
-
-func (tsr *TokenStreamRewriter) ReplaceTokenDefault(from, to Token, text string) {
- tsr.ReplaceToken(DefaultProgramName, from, to, text)
-}
-
-func (tsr *TokenStreamRewriter) ReplaceTokenDefaultPos(index Token, text string) {
- tsr.ReplaceTokenDefault(index, index, text)
-}
-
-func (tsr *TokenStreamRewriter) Delete(programName string, from, to int) {
- tsr.Replace(programName, from, to, "")
-}
-
-func (tsr *TokenStreamRewriter) DeleteDefault(from, to int) {
- tsr.Delete(DefaultProgramName, from, to)
-}
-
-func (tsr *TokenStreamRewriter) DeleteDefaultPos(index int) {
- tsr.DeleteDefault(index, index)
-}
-
-func (tsr *TokenStreamRewriter) DeleteToken(programName string, from, to Token) {
- tsr.ReplaceToken(programName, from, to, "")
-}
-
-func (tsr *TokenStreamRewriter) DeleteTokenDefault(from, to Token) {
- tsr.DeleteToken(DefaultProgramName, from, to)
-}
-
-func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndex(programName string) int {
- i, ok := tsr.lastRewriteTokenIndexes[programName]
- if !ok {
- return -1
- }
- return i
-}
-
-func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndexDefault() int {
- return tsr.GetLastRewriteTokenIndex(DefaultProgramName)
-}
-
-func (tsr *TokenStreamRewriter) SetLastRewriteTokenIndex(programName string, i int) {
- tsr.lastRewriteTokenIndexes[programName] = i
-}
-
-func (tsr *TokenStreamRewriter) InitializeProgram(name string) []RewriteOperation {
- is := make([]RewriteOperation, 0, ProgramInitSize)
- tsr.programs[name] = is
- return is
-}
-
-func (tsr *TokenStreamRewriter) AddToProgram(name string, op RewriteOperation) {
- is := tsr.GetProgram(name)
- is = append(is, op)
- tsr.programs[name] = is
-}
-
-func (tsr *TokenStreamRewriter) GetProgram(name string) []RewriteOperation {
- is, ok := tsr.programs[name]
- if !ok {
- is = tsr.InitializeProgram(name)
- }
- return is
-}
-
-// GetTextDefault returns the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter) GetTextDefault() string {
- return tsr.GetText(
- DefaultProgramName,
- NewInterval(0, tsr.tokens.Size()-1))
-}
-
-// GetText returns the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter) GetText(programName string, interval Interval) string {
- rewrites := tsr.programs[programName]
- start := interval.Start
- stop := interval.Stop
- // ensure start/end are in range
- stop = min(stop, tsr.tokens.Size()-1)
- start = max(start, 0)
- if len(rewrites) == 0 {
- return tsr.tokens.GetTextFromInterval(interval) // no instructions to execute
- }
- buf := bytes.Buffer{}
- // First, optimize instruction stream
- indexToOp := reduceToSingleOperationPerIndex(rewrites)
- // Walk buffer, executing instructions and emitting tokens
- for i := start; i <= stop && i < tsr.tokens.Size(); {
- op := indexToOp[i]
- delete(indexToOp, i) // remove so any left have index size-1
- t := tsr.tokens.Get(i)
- if op == nil {
- // no operation at that index, just dump token
- if t.GetTokenType() != TokenEOF {
- buf.WriteString(t.GetText())
- }
- i++ // move to next token
- } else {
- i = op.Execute(&buf) // execute operation and skip
- }
- }
- // include stuff after end if it's last index in buffer
- // So, if they did an insertAfter(lastValidIndex, "foo"), include
- // foo if end==lastValidIndex.
- if stop == tsr.tokens.Size()-1 {
- // Scan any remaining operations after last token
- // should be included (they will be inserts).
- for _, op := range indexToOp {
- if op.GetIndex() >= tsr.tokens.Size()-1 {
- buf.WriteString(op.GetText())
- }
- }
- }
- return buf.String()
-}
-
-// reduceToSingleOperationPerIndex combines operations and report invalid operations (like
-// overlapping replaces that are not completed nested). Inserts to
-// same index need to be combined etc...
-//
-// Here are the cases:
-//
-// I.i.u I.j.v leave alone, non-overlapping
-// I.i.u I.i.v combine: Iivu
-//
-// R.i-j.u R.x-y.v | i-j in x-y delete first R
-// R.i-j.u R.i-j.v delete first R
-// R.i-j.u R.x-y.v | x-y in i-j ERROR
-// R.i-j.u R.x-y.v | boundaries overlap ERROR
-//
-// Delete special case of replace (text==null):
-// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
-//
-// I.i.u R.x-y.v | i in (x+1)-y delete I (since insert before
-// we're not deleting i)
-// I.i.u R.x-y.v | i not in (x+1)-y leave alone, non-overlapping
-// R.x-y.v I.i.u | i in x-y ERROR
-// R.x-y.v I.x.u R.x-y.uv (combine, delete I)
-// R.x-y.v I.i.u | i not in x-y leave alone, non-overlapping
-//
-// I.i.u = insert u before op @ index i
-// R.x-y.u = replace x-y indexed tokens with u
-//
-// First we need to examine replaces. For any replace op:
-//
-// 1. wipe out any insertions before op within that range.
-// 2. Drop any replace op before that is contained completely within
-// that range.
-// 3. Throw exception upon boundary overlap with any previous replace.
-//
-// Then we can deal with inserts:
-//
-// 1. for any inserts to same index, combine even if not adjacent.
-// 2. for any prior replace with same left boundary, combine this
-// insert with replace and delete this 'replace'.
-// 3. throw exception if index in same range as previous replace
-//
-// Don't actually delete; make op null in list. Easier to walk list.
-// Later we can throw as we add to index → op map.
-//
-// Note that I.2 R.2-2 will wipe out I.2 even though, technically, the
-// inserted stuff would be before the 'replace' range. But, if you
-// add tokens in front of a method body '{' and then delete the method
-// body, I think the stuff before the '{' you added should disappear too.
-//
-// The func returns a map from token index to operation.
-func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]RewriteOperation {
- // WALK REPLACES
- for i := 0; i < len(rewrites); i++ {
- op := rewrites[i]
- if op == nil {
- continue
- }
- rop, ok := op.(*ReplaceOp)
- if !ok {
- continue
- }
- // Wipe prior inserts within range
- for j := 0; j < i && j < len(rewrites); j++ {
- if iop, ok := rewrites[j].(*InsertBeforeOp); ok {
- if iop.index == rop.index {
- // E.g., insert before 2, delete 2..2; update replace
- // text to include insert before, kill insert
- rewrites[iop.instructionIndex] = nil
- if rop.text != "" {
- rop.text = iop.text + rop.text
- } else {
- rop.text = iop.text
- }
- } else if iop.index > rop.index && iop.index <= rop.LastIndex {
- // delete insert as it's a no-op.
- rewrites[iop.instructionIndex] = nil
- }
- }
- }
- // Drop any prior replaces contained within
- for j := 0; j < i && j < len(rewrites); j++ {
- if prevop, ok := rewrites[j].(*ReplaceOp); ok {
- if prevop.index >= rop.index && prevop.LastIndex <= rop.LastIndex {
- // delete replace as it's a no-op.
- rewrites[prevop.instructionIndex] = nil
- continue
- }
- // throw exception unless disjoint or identical
- disjoint := prevop.LastIndex < rop.index || prevop.index > rop.LastIndex
- // Delete special case of replace (text==null):
- // D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
- if prevop.text == "" && rop.text == "" && !disjoint {
- rewrites[prevop.instructionIndex] = nil
- rop.index = min(prevop.index, rop.index)
- rop.LastIndex = max(prevop.LastIndex, rop.LastIndex)
- } else if !disjoint {
- panic("replace op boundaries of " + rop.String() + " overlap with previous " + prevop.String())
- }
- }
- }
- }
- // WALK INSERTS
- for i := 0; i < len(rewrites); i++ {
- op := rewrites[i]
- if op == nil {
- continue
- }
- //hack to replicate inheritance in composition
- _, iok := rewrites[i].(*InsertBeforeOp)
- _, aok := rewrites[i].(*InsertAfterOp)
- if !iok && !aok {
- continue
- }
- iop := rewrites[i]
- // combine current insert with prior if any at same index
- // deviating a bit from TokenStreamRewriter.java - hard to incorporate inheritance logic
- for j := 0; j < i && j < len(rewrites); j++ {
- if nextIop, ok := rewrites[j].(*InsertAfterOp); ok {
- if nextIop.index == iop.GetIndex() {
- iop.SetText(nextIop.text + iop.GetText())
- rewrites[j] = nil
- }
- }
- if prevIop, ok := rewrites[j].(*InsertBeforeOp); ok {
- if prevIop.index == iop.GetIndex() {
- iop.SetText(iop.GetText() + prevIop.text)
- rewrites[prevIop.instructionIndex] = nil
- }
- }
- }
- // look for replaces where iop.index is in range; error
- for j := 0; j < i && j < len(rewrites); j++ {
- if rop, ok := rewrites[j].(*ReplaceOp); ok {
- if iop.GetIndex() == rop.index {
- rop.text = iop.GetText() + rop.text
- rewrites[i] = nil
- continue
- }
- if iop.GetIndex() >= rop.index && iop.GetIndex() <= rop.LastIndex {
- panic("insert op " + iop.String() + " within boundaries of previous " + rop.String())
- }
- }
- }
- }
- m := map[int]RewriteOperation{}
- for i := 0; i < len(rewrites); i++ {
- op := rewrites[i]
- if op == nil {
- continue
- }
- if _, ok := m[op.GetIndex()]; ok {
- panic("should only be one op per index")
- }
- m[op.GetIndex()] = op
- }
- return m
-}
-
-/*
- Quick fixing Go lack of overloads
-*/
-
-func max(a, b int) int {
- if a > b {
- return a
- } else {
- return b
- }
-}
-func min(a, b int) int {
- if a < b {
- return a
- } else {
- return b
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trace_listener.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trace_listener.go
deleted file mode 100644
index 7b663bf8..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trace_listener.go
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "fmt"
-
-type TraceListener struct {
- parser *BaseParser
-}
-
-func NewTraceListener(parser *BaseParser) *TraceListener {
- tl := new(TraceListener)
- tl.parser = parser
- return tl
-}
-
-func (t *TraceListener) VisitErrorNode(_ ErrorNode) {
-}
-
-func (t *TraceListener) EnterEveryRule(ctx ParserRuleContext) {
- fmt.Println("enter " + t.parser.GetRuleNames()[ctx.GetRuleIndex()] + ", LT(1)=" + t.parser.input.LT(1).GetText())
-}
-
-func (t *TraceListener) VisitTerminal(node TerminalNode) {
- fmt.Println("consume " + fmt.Sprint(node.GetSymbol()) + " rule " + t.parser.GetRuleNames()[t.parser.ctx.GetRuleIndex()])
-}
-
-func (t *TraceListener) ExitEveryRule(ctx ParserRuleContext) {
- fmt.Println("exit " + t.parser.GetRuleNames()[ctx.GetRuleIndex()] + ", LT(1)=" + t.parser.input.LT(1).GetText())
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/transition.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/transition.go
deleted file mode 100644
index 313b0fc1..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/transition.go
+++ /dev/null
@@ -1,439 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "fmt"
- "strconv"
- "strings"
-)
-
-// atom, set, epsilon, action, predicate, rule transitions.
-//
-// This is a one way link. It emanates from a state (usually via a list of
-// transitions) and has a target state.
-//
-// Since we never have to change the ATN transitions once we construct it,
-// the states. We'll use the term Edge for the DFA to distinguish them from
-// ATN transitions.
-
-type Transition interface {
- getTarget() ATNState
- setTarget(ATNState)
- getIsEpsilon() bool
- getLabel() *IntervalSet
- getSerializationType() int
- Matches(int, int, int) bool
-}
-
-type BaseTransition struct {
- target ATNState
- isEpsilon bool
- label int
- intervalSet *IntervalSet
- serializationType int
-}
-
-func NewBaseTransition(target ATNState) *BaseTransition {
-
- if target == nil {
- panic("target cannot be nil.")
- }
-
- t := new(BaseTransition)
-
- t.target = target
- // Are we epsilon, action, sempred?
- t.isEpsilon = false
- t.intervalSet = nil
-
- return t
-}
-
-func (t *BaseTransition) getTarget() ATNState {
- return t.target
-}
-
-func (t *BaseTransition) setTarget(s ATNState) {
- t.target = s
-}
-
-func (t *BaseTransition) getIsEpsilon() bool {
- return t.isEpsilon
-}
-
-func (t *BaseTransition) getLabel() *IntervalSet {
- return t.intervalSet
-}
-
-func (t *BaseTransition) getSerializationType() int {
- return t.serializationType
-}
-
-func (t *BaseTransition) Matches(_, _, _ int) bool {
- panic("Not implemented")
-}
-
-const (
- TransitionEPSILON = 1
- TransitionRANGE = 2
- TransitionRULE = 3
- TransitionPREDICATE = 4 // e.g., {isType(input.LT(1))}?
- TransitionATOM = 5
- TransitionACTION = 6
- TransitionSET = 7 // ~(A|B) or ~atom, wildcard, which convert to next 2
- TransitionNOTSET = 8
- TransitionWILDCARD = 9
- TransitionPRECEDENCE = 10
-)
-
-//goland:noinspection GoUnusedGlobalVariable
-var TransitionserializationNames = []string{
- "INVALID",
- "EPSILON",
- "RANGE",
- "RULE",
- "PREDICATE",
- "ATOM",
- "ACTION",
- "SET",
- "NOT_SET",
- "WILDCARD",
- "PRECEDENCE",
-}
-
-//var TransitionserializationTypes struct {
-// EpsilonTransition int
-// RangeTransition int
-// RuleTransition int
-// PredicateTransition int
-// AtomTransition int
-// ActionTransition int
-// SetTransition int
-// NotSetTransition int
-// WildcardTransition int
-// PrecedencePredicateTransition int
-//}{
-// TransitionEPSILON,
-// TransitionRANGE,
-// TransitionRULE,
-// TransitionPREDICATE,
-// TransitionATOM,
-// TransitionACTION,
-// TransitionSET,
-// TransitionNOTSET,
-// TransitionWILDCARD,
-// TransitionPRECEDENCE
-//}
-
-// AtomTransition
-// TODO: make all transitions sets? no, should remove set edges
-type AtomTransition struct {
- BaseTransition
-}
-
-func NewAtomTransition(target ATNState, intervalSet int) *AtomTransition {
- t := &AtomTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionATOM,
- label: intervalSet,
- isEpsilon: false,
- },
- }
- t.intervalSet = t.makeLabel()
-
- return t
-}
-
-func (t *AtomTransition) makeLabel() *IntervalSet {
- s := NewIntervalSet()
- s.addOne(t.label)
- return s
-}
-
-func (t *AtomTransition) Matches(symbol, _, _ int) bool {
- return t.label == symbol
-}
-
-func (t *AtomTransition) String() string {
- return strconv.Itoa(t.label)
-}
-
-type RuleTransition struct {
- BaseTransition
- followState ATNState
- ruleIndex, precedence int
-}
-
-func NewRuleTransition(ruleStart ATNState, ruleIndex, precedence int, followState ATNState) *RuleTransition {
- return &RuleTransition{
- BaseTransition: BaseTransition{
- target: ruleStart,
- isEpsilon: true,
- serializationType: TransitionRULE,
- },
- ruleIndex: ruleIndex,
- precedence: precedence,
- followState: followState,
- }
-}
-
-func (t *RuleTransition) Matches(_, _, _ int) bool {
- return false
-}
-
-type EpsilonTransition struct {
- BaseTransition
- outermostPrecedenceReturn int
-}
-
-func NewEpsilonTransition(target ATNState, outermostPrecedenceReturn int) *EpsilonTransition {
- return &EpsilonTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionEPSILON,
- isEpsilon: true,
- },
- outermostPrecedenceReturn: outermostPrecedenceReturn,
- }
-}
-
-func (t *EpsilonTransition) Matches(_, _, _ int) bool {
- return false
-}
-
-func (t *EpsilonTransition) String() string {
- return "epsilon"
-}
-
-type RangeTransition struct {
- BaseTransition
- start, stop int
-}
-
-func NewRangeTransition(target ATNState, start, stop int) *RangeTransition {
- t := &RangeTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionRANGE,
- isEpsilon: false,
- },
- start: start,
- stop: stop,
- }
- t.intervalSet = t.makeLabel()
- return t
-}
-
-func (t *RangeTransition) makeLabel() *IntervalSet {
- s := NewIntervalSet()
- s.addRange(t.start, t.stop)
- return s
-}
-
-func (t *RangeTransition) Matches(symbol, _, _ int) bool {
- return symbol >= t.start && symbol <= t.stop
-}
-
-func (t *RangeTransition) String() string {
- var sb strings.Builder
- sb.WriteByte('\'')
- sb.WriteRune(rune(t.start))
- sb.WriteString("'..'")
- sb.WriteRune(rune(t.stop))
- sb.WriteByte('\'')
- return sb.String()
-}
-
-type AbstractPredicateTransition interface {
- Transition
- IAbstractPredicateTransitionFoo()
-}
-
-type BaseAbstractPredicateTransition struct {
- BaseTransition
-}
-
-func NewBasePredicateTransition(target ATNState) *BaseAbstractPredicateTransition {
- return &BaseAbstractPredicateTransition{
- BaseTransition: BaseTransition{
- target: target,
- },
- }
-}
-
-func (a *BaseAbstractPredicateTransition) IAbstractPredicateTransitionFoo() {}
-
-type PredicateTransition struct {
- BaseAbstractPredicateTransition
- isCtxDependent bool
- ruleIndex, predIndex int
-}
-
-func NewPredicateTransition(target ATNState, ruleIndex, predIndex int, isCtxDependent bool) *PredicateTransition {
- return &PredicateTransition{
- BaseAbstractPredicateTransition: BaseAbstractPredicateTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionPREDICATE,
- isEpsilon: true,
- },
- },
- isCtxDependent: isCtxDependent,
- ruleIndex: ruleIndex,
- predIndex: predIndex,
- }
-}
-
-func (t *PredicateTransition) Matches(_, _, _ int) bool {
- return false
-}
-
-func (t *PredicateTransition) getPredicate() *Predicate {
- return NewPredicate(t.ruleIndex, t.predIndex, t.isCtxDependent)
-}
-
-func (t *PredicateTransition) String() string {
- return "pred_" + strconv.Itoa(t.ruleIndex) + ":" + strconv.Itoa(t.predIndex)
-}
-
-type ActionTransition struct {
- BaseTransition
- isCtxDependent bool
- ruleIndex, actionIndex, predIndex int
-}
-
-func NewActionTransition(target ATNState, ruleIndex, actionIndex int, isCtxDependent bool) *ActionTransition {
- return &ActionTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionACTION,
- isEpsilon: true,
- },
- isCtxDependent: isCtxDependent,
- ruleIndex: ruleIndex,
- actionIndex: actionIndex,
- }
-}
-
-func (t *ActionTransition) Matches(_, _, _ int) bool {
- return false
-}
-
-func (t *ActionTransition) String() string {
- return "action_" + strconv.Itoa(t.ruleIndex) + ":" + strconv.Itoa(t.actionIndex)
-}
-
-type SetTransition struct {
- BaseTransition
-}
-
-func NewSetTransition(target ATNState, set *IntervalSet) *SetTransition {
- t := &SetTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionSET,
- },
- }
-
- if set != nil {
- t.intervalSet = set
- } else {
- t.intervalSet = NewIntervalSet()
- t.intervalSet.addOne(TokenInvalidType)
- }
- return t
-}
-
-func (t *SetTransition) Matches(symbol, _, _ int) bool {
- return t.intervalSet.contains(symbol)
-}
-
-func (t *SetTransition) String() string {
- return t.intervalSet.String()
-}
-
-type NotSetTransition struct {
- SetTransition
-}
-
-func NewNotSetTransition(target ATNState, set *IntervalSet) *NotSetTransition {
- t := &NotSetTransition{
- SetTransition: SetTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionNOTSET,
- },
- },
- }
- if set != nil {
- t.intervalSet = set
- } else {
- t.intervalSet = NewIntervalSet()
- t.intervalSet.addOne(TokenInvalidType)
- }
-
- return t
-}
-
-func (t *NotSetTransition) Matches(symbol, minVocabSymbol, maxVocabSymbol int) bool {
- return symbol >= minVocabSymbol && symbol <= maxVocabSymbol && !t.intervalSet.contains(symbol)
-}
-
-func (t *NotSetTransition) String() string {
- return "~" + t.intervalSet.String()
-}
-
-type WildcardTransition struct {
- BaseTransition
-}
-
-func NewWildcardTransition(target ATNState) *WildcardTransition {
- return &WildcardTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionWILDCARD,
- },
- }
-}
-
-func (t *WildcardTransition) Matches(symbol, minVocabSymbol, maxVocabSymbol int) bool {
- return symbol >= minVocabSymbol && symbol <= maxVocabSymbol
-}
-
-func (t *WildcardTransition) String() string {
- return "."
-}
-
-type PrecedencePredicateTransition struct {
- BaseAbstractPredicateTransition
- precedence int
-}
-
-func NewPrecedencePredicateTransition(target ATNState, precedence int) *PrecedencePredicateTransition {
- return &PrecedencePredicateTransition{
- BaseAbstractPredicateTransition: BaseAbstractPredicateTransition{
- BaseTransition: BaseTransition{
- target: target,
- serializationType: TransitionPRECEDENCE,
- isEpsilon: true,
- },
- },
- precedence: precedence,
- }
-}
-
-func (t *PrecedencePredicateTransition) Matches(_, _, _ int) bool {
- return false
-}
-
-func (t *PrecedencePredicateTransition) getPredicate() *PrecedencePredicate {
- return NewPrecedencePredicate(t.precedence)
-}
-
-func (t *PrecedencePredicateTransition) String() string {
- return fmt.Sprint(t.precedence) + " >= _p"
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tree.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tree.go
deleted file mode 100644
index c288420f..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/tree.go
+++ /dev/null
@@ -1,304 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-// The basic notion of a tree has a parent, a payload, and a list of children.
-// It is the most abstract interface for all the trees used by ANTLR.
-///
-
-var TreeInvalidInterval = NewInterval(-1, -2)
-
-type Tree interface {
- GetParent() Tree
- SetParent(Tree)
- GetPayload() interface{}
- GetChild(i int) Tree
- GetChildCount() int
- GetChildren() []Tree
-}
-
-type SyntaxTree interface {
- Tree
- GetSourceInterval() Interval
-}
-
-type ParseTree interface {
- SyntaxTree
- Accept(Visitor ParseTreeVisitor) interface{}
- GetText() string
- ToStringTree([]string, Recognizer) string
-}
-
-type RuleNode interface {
- ParseTree
- GetRuleContext() RuleContext
-}
-
-type TerminalNode interface {
- ParseTree
- GetSymbol() Token
-}
-
-type ErrorNode interface {
- TerminalNode
-
- errorNode()
-}
-
-type ParseTreeVisitor interface {
- Visit(tree ParseTree) interface{}
- VisitChildren(node RuleNode) interface{}
- VisitTerminal(node TerminalNode) interface{}
- VisitErrorNode(node ErrorNode) interface{}
-}
-
-type BaseParseTreeVisitor struct{}
-
-var _ ParseTreeVisitor = &BaseParseTreeVisitor{}
-
-func (v *BaseParseTreeVisitor) Visit(tree ParseTree) interface{} { return tree.Accept(v) }
-func (v *BaseParseTreeVisitor) VisitChildren(_ RuleNode) interface{} { return nil }
-func (v *BaseParseTreeVisitor) VisitTerminal(_ TerminalNode) interface{} { return nil }
-func (v *BaseParseTreeVisitor) VisitErrorNode(_ ErrorNode) interface{} { return nil }
-
-// TODO: Implement this?
-//func (this ParseTreeVisitor) Visit(ctx) {
-// if (Utils.isArray(ctx)) {
-// self := this
-// return ctx.map(function(child) { return VisitAtom(self, child)})
-// } else {
-// return VisitAtom(this, ctx)
-// }
-//}
-//
-//func VisitAtom(Visitor, ctx) {
-// if (ctx.parser == nil) { //is terminal
-// return
-// }
-//
-// name := ctx.parser.ruleNames[ctx.ruleIndex]
-// funcName := "Visit" + Utils.titleCase(name)
-//
-// return Visitor[funcName](ctx)
-//}
-
-type ParseTreeListener interface {
- VisitTerminal(node TerminalNode)
- VisitErrorNode(node ErrorNode)
- EnterEveryRule(ctx ParserRuleContext)
- ExitEveryRule(ctx ParserRuleContext)
-}
-
-type BaseParseTreeListener struct{}
-
-var _ ParseTreeListener = &BaseParseTreeListener{}
-
-func (l *BaseParseTreeListener) VisitTerminal(_ TerminalNode) {}
-func (l *BaseParseTreeListener) VisitErrorNode(_ ErrorNode) {}
-func (l *BaseParseTreeListener) EnterEveryRule(_ ParserRuleContext) {}
-func (l *BaseParseTreeListener) ExitEveryRule(_ ParserRuleContext) {}
-
-type TerminalNodeImpl struct {
- parentCtx RuleContext
- symbol Token
-}
-
-var _ TerminalNode = &TerminalNodeImpl{}
-
-func NewTerminalNodeImpl(symbol Token) *TerminalNodeImpl {
- tn := new(TerminalNodeImpl)
-
- tn.parentCtx = nil
- tn.symbol = symbol
-
- return tn
-}
-
-func (t *TerminalNodeImpl) GetChild(_ int) Tree {
- return nil
-}
-
-func (t *TerminalNodeImpl) GetChildren() []Tree {
- return nil
-}
-
-func (t *TerminalNodeImpl) SetChildren(_ []Tree) {
- panic("Cannot set children on terminal node")
-}
-
-func (t *TerminalNodeImpl) GetSymbol() Token {
- return t.symbol
-}
-
-func (t *TerminalNodeImpl) GetParent() Tree {
- return t.parentCtx
-}
-
-func (t *TerminalNodeImpl) SetParent(tree Tree) {
- t.parentCtx = tree.(RuleContext)
-}
-
-func (t *TerminalNodeImpl) GetPayload() interface{} {
- return t.symbol
-}
-
-func (t *TerminalNodeImpl) GetSourceInterval() Interval {
- if t.symbol == nil {
- return TreeInvalidInterval
- }
- tokenIndex := t.symbol.GetTokenIndex()
- return NewInterval(tokenIndex, tokenIndex)
-}
-
-func (t *TerminalNodeImpl) GetChildCount() int {
- return 0
-}
-
-func (t *TerminalNodeImpl) Accept(v ParseTreeVisitor) interface{} {
- return v.VisitTerminal(t)
-}
-
-func (t *TerminalNodeImpl) GetText() string {
- return t.symbol.GetText()
-}
-
-func (t *TerminalNodeImpl) String() string {
- if t.symbol.GetTokenType() == TokenEOF {
- return ""
- }
-
- return t.symbol.GetText()
-}
-
-func (t *TerminalNodeImpl) ToStringTree(_ []string, _ Recognizer) string {
- return t.String()
-}
-
-// Represents a token that was consumed during reSynchronization
-// rather than during a valid Match operation. For example,
-// we will create this kind of a node during single token insertion
-// and deletion as well as during "consume until error recovery set"
-// upon no viable alternative exceptions.
-
-type ErrorNodeImpl struct {
- *TerminalNodeImpl
-}
-
-var _ ErrorNode = &ErrorNodeImpl{}
-
-func NewErrorNodeImpl(token Token) *ErrorNodeImpl {
- en := new(ErrorNodeImpl)
- en.TerminalNodeImpl = NewTerminalNodeImpl(token)
- return en
-}
-
-func (e *ErrorNodeImpl) errorNode() {}
-
-func (e *ErrorNodeImpl) Accept(v ParseTreeVisitor) interface{} {
- return v.VisitErrorNode(e)
-}
-
-type ParseTreeWalker struct {
-}
-
-func NewParseTreeWalker() *ParseTreeWalker {
- return new(ParseTreeWalker)
-}
-
-// Walk performs a walk on the given parse tree starting at the root and going down recursively
-// with depth-first search. On each node, [EnterRule] is called before
-// recursively walking down into child nodes, then [ExitRule] is called after the recursive call to wind up.
-func (p *ParseTreeWalker) Walk(listener ParseTreeListener, t Tree) {
- switch tt := t.(type) {
- case ErrorNode:
- listener.VisitErrorNode(tt)
- case TerminalNode:
- listener.VisitTerminal(tt)
- default:
- p.EnterRule(listener, t.(RuleNode))
- for i := 0; i < t.GetChildCount(); i++ {
- child := t.GetChild(i)
- p.Walk(listener, child)
- }
- p.ExitRule(listener, t.(RuleNode))
- }
-}
-
-// EnterRule enters a grammar rule by first triggering the generic event [ParseTreeListener].[EnterEveryRule]
-// then by triggering the event specific to the given parse tree node
-func (p *ParseTreeWalker) EnterRule(listener ParseTreeListener, r RuleNode) {
- ctx := r.GetRuleContext().(ParserRuleContext)
- listener.EnterEveryRule(ctx)
- ctx.EnterRule(listener)
-}
-
-// ExitRule exits a grammar rule by first triggering the event specific to the given parse tree node
-// then by triggering the generic event [ParseTreeListener].ExitEveryRule
-func (p *ParseTreeWalker) ExitRule(listener ParseTreeListener, r RuleNode) {
- ctx := r.GetRuleContext().(ParserRuleContext)
- ctx.ExitRule(listener)
- listener.ExitEveryRule(ctx)
-}
-
-//goland:noinspection GoUnusedGlobalVariable
-var ParseTreeWalkerDefault = NewParseTreeWalker()
-
-type IterativeParseTreeWalker struct {
- *ParseTreeWalker
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func NewIterativeParseTreeWalker() *IterativeParseTreeWalker {
- return new(IterativeParseTreeWalker)
-}
-
-func (i *IterativeParseTreeWalker) Walk(listener ParseTreeListener, t Tree) {
- var stack []Tree
- var indexStack []int
- currentNode := t
- currentIndex := 0
-
- for currentNode != nil {
- // pre-order visit
- switch tt := currentNode.(type) {
- case ErrorNode:
- listener.VisitErrorNode(tt)
- case TerminalNode:
- listener.VisitTerminal(tt)
- default:
- i.EnterRule(listener, currentNode.(RuleNode))
- }
- // Move down to first child, if exists
- if currentNode.GetChildCount() > 0 {
- stack = append(stack, currentNode)
- indexStack = append(indexStack, currentIndex)
- currentIndex = 0
- currentNode = currentNode.GetChild(0)
- continue
- }
-
- for {
- // post-order visit
- if ruleNode, ok := currentNode.(RuleNode); ok {
- i.ExitRule(listener, ruleNode)
- }
- // No parent, so no siblings
- if len(stack) == 0 {
- currentNode = nil
- currentIndex = 0
- break
- }
- // Move to next sibling if possible
- currentIndex++
- if stack[len(stack)-1].GetChildCount() > currentIndex {
- currentNode = stack[len(stack)-1].GetChild(currentIndex)
- break
- }
- // No next, sibling, so move up
- currentNode, stack = stack[len(stack)-1], stack[:len(stack)-1]
- currentIndex, indexStack = indexStack[len(indexStack)-1], indexStack[:len(indexStack)-1]
- }
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trees.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trees.go
deleted file mode 100644
index f44c05d8..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/trees.go
+++ /dev/null
@@ -1,142 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import "fmt"
-
-/** A set of utility routines useful for all kinds of ANTLR trees. */
-
-// TreesStringTree prints out a whole tree in LISP form. [getNodeText] is used on the
-// node payloads to get the text for the nodes. Detects parse trees and extracts data appropriately.
-func TreesStringTree(tree Tree, ruleNames []string, recog Recognizer) string {
-
- if recog != nil {
- ruleNames = recog.GetRuleNames()
- }
-
- s := TreesGetNodeText(tree, ruleNames, nil)
-
- s = EscapeWhitespace(s, false)
- c := tree.GetChildCount()
- if c == 0 {
- return s
- }
- res := "(" + s + " "
- if c > 0 {
- s = TreesStringTree(tree.GetChild(0), ruleNames, nil)
- res += s
- }
- for i := 1; i < c; i++ {
- s = TreesStringTree(tree.GetChild(i), ruleNames, nil)
- res += " " + s
- }
- res += ")"
- return res
-}
-
-func TreesGetNodeText(t Tree, ruleNames []string, recog Parser) string {
- if recog != nil {
- ruleNames = recog.GetRuleNames()
- }
-
- if ruleNames != nil {
- switch t2 := t.(type) {
- case RuleNode:
- t3 := t2.GetRuleContext()
- altNumber := t3.GetAltNumber()
-
- if altNumber != ATNInvalidAltNumber {
- return fmt.Sprintf("%s:%d", ruleNames[t3.GetRuleIndex()], altNumber)
- }
- return ruleNames[t3.GetRuleIndex()]
- case ErrorNode:
- return fmt.Sprint(t2)
- case TerminalNode:
- if t2.GetSymbol() != nil {
- return t2.GetSymbol().GetText()
- }
- }
- }
-
- // no recognition for rule names
- payload := t.GetPayload()
- if p2, ok := payload.(Token); ok {
- return p2.GetText()
- }
-
- return fmt.Sprint(t.GetPayload())
-}
-
-// TreesGetChildren returns am ordered list of all children of this node
-//
-//goland:noinspection GoUnusedExportedFunction
-func TreesGetChildren(t Tree) []Tree {
- list := make([]Tree, 0)
- for i := 0; i < t.GetChildCount(); i++ {
- list = append(list, t.GetChild(i))
- }
- return list
-}
-
-// TreesgetAncestors returns a list of all ancestors of this node. The first node of list is the root
-// and the last node is the parent of this node.
-//
-//goland:noinspection GoUnusedExportedFunction
-func TreesgetAncestors(t Tree) []Tree {
- ancestors := make([]Tree, 0)
- t = t.GetParent()
- for t != nil {
- f := []Tree{t}
- ancestors = append(f, ancestors...)
- t = t.GetParent()
- }
- return ancestors
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func TreesFindAllTokenNodes(t ParseTree, ttype int) []ParseTree {
- return TreesfindAllNodes(t, ttype, true)
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func TreesfindAllRuleNodes(t ParseTree, ruleIndex int) []ParseTree {
- return TreesfindAllNodes(t, ruleIndex, false)
-}
-
-func TreesfindAllNodes(t ParseTree, index int, findTokens bool) []ParseTree {
- nodes := make([]ParseTree, 0)
- treesFindAllNodes(t, index, findTokens, &nodes)
- return nodes
-}
-
-func treesFindAllNodes(t ParseTree, index int, findTokens bool, nodes *[]ParseTree) {
- // check this node (the root) first
-
- t2, ok := t.(TerminalNode)
- t3, ok2 := t.(ParserRuleContext)
-
- if findTokens && ok {
- if t2.GetSymbol().GetTokenType() == index {
- *nodes = append(*nodes, t2)
- }
- } else if !findTokens && ok2 {
- if t3.GetRuleIndex() == index {
- *nodes = append(*nodes, t3)
- }
- }
- // check children
- for i := 0; i < t.GetChildCount(); i++ {
- treesFindAllNodes(t.GetChild(i).(ParseTree), index, findTokens, nodes)
- }
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func TreesDescendants(t ParseTree) []ParseTree {
- nodes := []ParseTree{t}
- for i := 0; i < t.GetChildCount(); i++ {
- nodes = append(nodes, TreesDescendants(t.GetChild(i).(ParseTree))...)
- }
- return nodes
-}
diff --git a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/utils.go b/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/utils.go
deleted file mode 100644
index 733d7df9..00000000
--- a/upstream/image/git-init/vendor/github.com/antlr4-go/antlr/v4/utils.go
+++ /dev/null
@@ -1,328 +0,0 @@
-// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
-// Use of this file is governed by the BSD 3-clause license that
-// can be found in the LICENSE.txt file in the project root.
-
-package antlr
-
-import (
- "bytes"
- "errors"
- "fmt"
- "math/bits"
- "os"
- "strconv"
- "strings"
- "syscall"
-)
-
-func intMin(a, b int) int {
- if a < b {
- return a
- }
- return b
-}
-
-func intMax(a, b int) int {
- if a > b {
- return a
- }
- return b
-}
-
-// A simple integer stack
-
-type IntStack []int
-
-var ErrEmptyStack = errors.New("stack is empty")
-
-func (s *IntStack) Pop() (int, error) {
- l := len(*s) - 1
- if l < 0 {
- return 0, ErrEmptyStack
- }
- v := (*s)[l]
- *s = (*s)[0:l]
- return v, nil
-}
-
-func (s *IntStack) Push(e int) {
- *s = append(*s, e)
-}
-
-const bitsPerWord = 64
-
-func indexForBit(bit int) int {
- return bit / bitsPerWord
-}
-
-//goland:noinspection GoUnusedExportedFunction,GoUnusedFunction
-func wordForBit(data []uint64, bit int) uint64 {
- idx := indexForBit(bit)
- if idx >= len(data) {
- return 0
- }
- return data[idx]
-}
-
-func maskForBit(bit int) uint64 {
- return uint64(1) << (bit % bitsPerWord)
-}
-
-func wordsNeeded(bit int) int {
- return indexForBit(bit) + 1
-}
-
-type BitSet struct {
- data []uint64
-}
-
-// NewBitSet creates a new bitwise set
-// TODO: See if we can replace with the standard library's BitSet
-func NewBitSet() *BitSet {
- return &BitSet{}
-}
-
-func (b *BitSet) add(value int) {
- idx := indexForBit(value)
- if idx >= len(b.data) {
- size := wordsNeeded(value)
- data := make([]uint64, size)
- copy(data, b.data)
- b.data = data
- }
- b.data[idx] |= maskForBit(value)
-}
-
-func (b *BitSet) clear(index int) {
- idx := indexForBit(index)
- if idx >= len(b.data) {
- return
- }
- b.data[idx] &= ^maskForBit(index)
-}
-
-func (b *BitSet) or(set *BitSet) {
- // Get min size necessary to represent the bits in both sets.
- bLen := b.minLen()
- setLen := set.minLen()
- maxLen := intMax(bLen, setLen)
- if maxLen > len(b.data) {
- // Increase the size of len(b.data) to represent the bits in both sets.
- data := make([]uint64, maxLen)
- copy(data, b.data)
- b.data = data
- }
- // len(b.data) is at least setLen.
- for i := 0; i < setLen; i++ {
- b.data[i] |= set.data[i]
- }
-}
-
-func (b *BitSet) remove(value int) {
- b.clear(value)
-}
-
-func (b *BitSet) contains(value int) bool {
- idx := indexForBit(value)
- if idx >= len(b.data) {
- return false
- }
- return (b.data[idx] & maskForBit(value)) != 0
-}
-
-func (b *BitSet) minValue() int {
- for i, v := range b.data {
- if v == 0 {
- continue
- }
- return i*bitsPerWord + bits.TrailingZeros64(v)
- }
- return 2147483647
-}
-
-func (b *BitSet) equals(other interface{}) bool {
- otherBitSet, ok := other.(*BitSet)
- if !ok {
- return false
- }
-
- if b == otherBitSet {
- return true
- }
-
- // We only compare set bits, so we cannot rely on the two slices having the same size. Its
- // possible for two BitSets to have different slice lengths but the same set bits. So we only
- // compare the relevant words and ignore the trailing zeros.
- bLen := b.minLen()
- otherLen := otherBitSet.minLen()
-
- if bLen != otherLen {
- return false
- }
-
- for i := 0; i < bLen; i++ {
- if b.data[i] != otherBitSet.data[i] {
- return false
- }
- }
-
- return true
-}
-
-func (b *BitSet) minLen() int {
- for i := len(b.data); i > 0; i-- {
- if b.data[i-1] != 0 {
- return i
- }
- }
- return 0
-}
-
-func (b *BitSet) length() int {
- cnt := 0
- for _, val := range b.data {
- cnt += bits.OnesCount64(val)
- }
- return cnt
-}
-
-func (b *BitSet) String() string {
- vals := make([]string, 0, b.length())
-
- for i, v := range b.data {
- for v != 0 {
- n := bits.TrailingZeros64(v)
- vals = append(vals, strconv.Itoa(i*bitsPerWord+n))
- v &= ^(uint64(1) << n)
- }
- }
-
- return "{" + strings.Join(vals, ", ") + "}"
-}
-
-type AltDict struct {
- data map[string]interface{}
-}
-
-func NewAltDict() *AltDict {
- d := new(AltDict)
- d.data = make(map[string]interface{})
- return d
-}
-
-func (a *AltDict) Get(key string) interface{} {
- key = "k-" + key
- return a.data[key]
-}
-
-func (a *AltDict) put(key string, value interface{}) {
- key = "k-" + key
- a.data[key] = value
-}
-
-func (a *AltDict) values() []interface{} {
- vs := make([]interface{}, len(a.data))
- i := 0
- for _, v := range a.data {
- vs[i] = v
- i++
- }
- return vs
-}
-
-func EscapeWhitespace(s string, escapeSpaces bool) string {
-
- s = strings.Replace(s, "\t", "\\t", -1)
- s = strings.Replace(s, "\n", "\\n", -1)
- s = strings.Replace(s, "\r", "\\r", -1)
- if escapeSpaces {
- s = strings.Replace(s, " ", "\u00B7", -1)
- }
- return s
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func TerminalNodeToStringArray(sa []TerminalNode) []string {
- st := make([]string, len(sa))
-
- for i, s := range sa {
- st[i] = fmt.Sprintf("%v", s)
- }
-
- return st
-}
-
-//goland:noinspection GoUnusedExportedFunction
-func PrintArrayJavaStyle(sa []string) string {
- var buffer bytes.Buffer
-
- buffer.WriteString("[")
-
- for i, s := range sa {
- buffer.WriteString(s)
- if i != len(sa)-1 {
- buffer.WriteString(", ")
- }
- }
-
- buffer.WriteString("]")
-
- return buffer.String()
-}
-
-// murmur hash
-func murmurInit(seed int) int {
- return seed
-}
-
-func murmurUpdate(h int, value int) int {
- const c1 uint32 = 0xCC9E2D51
- const c2 uint32 = 0x1B873593
- const r1 uint32 = 15
- const r2 uint32 = 13
- const m uint32 = 5
- const n uint32 = 0xE6546B64
-
- k := uint32(value)
- k *= c1
- k = (k << r1) | (k >> (32 - r1))
- k *= c2
-
- hash := uint32(h) ^ k
- hash = (hash << r2) | (hash >> (32 - r2))
- hash = hash*m + n
- return int(hash)
-}
-
-func murmurFinish(h int, numberOfWords int) int {
- var hash = uint32(h)
- hash ^= uint32(numberOfWords) << 2
- hash ^= hash >> 16
- hash *= 0x85ebca6b
- hash ^= hash >> 13
- hash *= 0xc2b2ae35
- hash ^= hash >> 16
-
- return int(hash)
-}
-
-func isDirectory(dir string) (bool, error) {
- fileInfo, err := os.Stat(dir)
- if err != nil {
- switch {
- case errors.Is(err, syscall.ENOENT):
- // The given directory does not exist, so we will try to create it
- //
- err = os.MkdirAll(dir, 0755)
- if err != nil {
- return false, err
- }
-
- return true, nil
- case err != nil:
- return false, err
- default:
- }
- }
- return fileInfo.IsDir(), err
-}
diff --git a/upstream/image/git-init/vendor/github.com/beorn7/perks/LICENSE b/upstream/image/git-init/vendor/github.com/beorn7/perks/LICENSE
deleted file mode 100644
index 339177be..00000000
--- a/upstream/image/git-init/vendor/github.com/beorn7/perks/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (C) 2013 Blake Mizerany
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/exampledata.txt b/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/exampledata.txt
deleted file mode 100644
index 1602287d..00000000
--- a/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/exampledata.txt
+++ /dev/null
@@ -1,2388 +0,0 @@
-8
-5
-26
-12
-5
-235
-13
-6
-28
-30
-3
-3
-3
-3
-5
-2
-33
-7
-2
-4
-7
-12
-14
-5
-8
-3
-10
-4
-5
-3
-6
-6
-209
-20
-3
-10
-14
-3
-4
-6
-8
-5
-11
-7
-3
-2
-3
-3
-212
-5
-222
-4
-10
-10
-5
-6
-3
-8
-3
-10
-254
-220
-2
-3
-5
-24
-5
-4
-222
-7
-3
-3
-223
-8
-15
-12
-14
-14
-3
-2
-2
-3
-13
-3
-11
-4
-4
-6
-5
-7
-13
-5
-3
-5
-2
-5
-3
-5
-2
-7
-15
-17
-14
-3
-6
-6
-3
-17
-5
-4
-7
-6
-4
-4
-8
-6
-8
-3
-9
-3
-6
-3
-4
-5
-3
-3
-660
-4
-6
-10
-3
-6
-3
-2
-5
-13
-2
-4
-4
-10
-4
-8
-4
-3
-7
-9
-9
-3
-10
-37
-3
-13
-4
-12
-3
-6
-10
-8
-5
-21
-2
-3
-8
-3
-2
-3
-3
-4
-12
-2
-4
-8
-8
-4
-3
-2
-20
-1
-6
-32
-2
-11
-6
-18
-3
-8
-11
-3
-212
-3
-4
-2
-6
-7
-12
-11
-3
-2
-16
-10
-6
-4
-6
-3
-2
-7
-3
-2
-2
-2
-2
-5
-6
-4
-3
-10
-3
-4
-6
-5
-3
-4
-4
-5
-6
-4
-3
-4
-4
-5
-7
-5
-5
-3
-2
-7
-2
-4
-12
-4
-5
-6
-2
-4
-4
-8
-4
-15
-13
-7
-16
-5
-3
-23
-5
-5
-7
-3
-2
-9
-8
-7
-5
-8
-11
-4
-10
-76
-4
-47
-4
-3
-2
-7
-4
-2
-3
-37
-10
-4
-2
-20
-5
-4
-4
-10
-10
-4
-3
-7
-23
-240
-7
-13
-5
-5
-3
-3
-2
-5
-4
-2
-8
-7
-19
-2
-23
-8
-7
-2
-5
-3
-8
-3
-8
-13
-5
-5
-5
-2
-3
-23
-4
-9
-8
-4
-3
-3
-5
-220
-2
-3
-4
-6
-14
-3
-53
-6
-2
-5
-18
-6
-3
-219
-6
-5
-2
-5
-3
-6
-5
-15
-4
-3
-17
-3
-2
-4
-7
-2
-3
-3
-4
-4
-3
-2
-664
-6
-3
-23
-5
-5
-16
-5
-8
-2
-4
-2
-24
-12
-3
-2
-3
-5
-8
-3
-5
-4
-3
-14
-3
-5
-8
-2
-3
-7
-9
-4
-2
-3
-6
-8
-4
-3
-4
-6
-5
-3
-3
-6
-3
-19
-4
-4
-6
-3
-6
-3
-5
-22
-5
-4
-4
-3
-8
-11
-4
-9
-7
-6
-13
-4
-4
-4
-6
-17
-9
-3
-3
-3
-4
-3
-221
-5
-11
-3
-4
-2
-12
-6
-3
-5
-7
-5
-7
-4
-9
-7
-14
-37
-19
-217
-16
-3
-5
-2
-2
-7
-19
-7
-6
-7
-4
-24
-5
-11
-4
-7
-7
-9
-13
-3
-4
-3
-6
-28
-4
-4
-5
-5
-2
-5
-6
-4
-4
-6
-10
-5
-4
-3
-2
-3
-3
-6
-5
-5
-4
-3
-2
-3
-7
-4
-6
-18
-16
-8
-16
-4
-5
-8
-6
-9
-13
-1545
-6
-215
-6
-5
-6
-3
-45
-31
-5
-2
-2
-4
-3
-3
-2
-5
-4
-3
-5
-7
-7
-4
-5
-8
-5
-4
-749
-2
-31
-9
-11
-2
-11
-5
-4
-4
-7
-9
-11
-4
-5
-4
-7
-3
-4
-6
-2
-15
-3
-4
-3
-4
-3
-5
-2
-13
-5
-5
-3
-3
-23
-4
-4
-5
-7
-4
-13
-2
-4
-3
-4
-2
-6
-2
-7
-3
-5
-5
-3
-29
-5
-4
-4
-3
-10
-2
-3
-79
-16
-6
-6
-7
-7
-3
-5
-5
-7
-4
-3
-7
-9
-5
-6
-5
-9
-6
-3
-6
-4
-17
-2
-10
-9
-3
-6
-2
-3
-21
-22
-5
-11
-4
-2
-17
-2
-224
-2
-14
-3
-4
-4
-2
-4
-4
-4
-4
-5
-3
-4
-4
-10
-2
-6
-3
-3
-5
-7
-2
-7
-5
-6
-3
-218
-2
-2
-5
-2
-6
-3
-5
-222
-14
-6
-33
-3
-2
-5
-3
-3
-3
-9
-5
-3
-3
-2
-7
-4
-3
-4
-3
-5
-6
-5
-26
-4
-13
-9
-7
-3
-221
-3
-3
-4
-4
-4
-4
-2
-18
-5
-3
-7
-9
-6
-8
-3
-10
-3
-11
-9
-5
-4
-17
-5
-5
-6
-6
-3
-2
-4
-12
-17
-6
-7
-218
-4
-2
-4
-10
-3
-5
-15
-3
-9
-4
-3
-3
-6
-29
-3
-3
-4
-5
-5
-3
-8
-5
-6
-6
-7
-5
-3
-5
-3
-29
-2
-31
-5
-15
-24
-16
-5
-207
-4
-3
-3
-2
-15
-4
-4
-13
-5
-5
-4
-6
-10
-2
-7
-8
-4
-6
-20
-5
-3
-4
-3
-12
-12
-5
-17
-7
-3
-3
-3
-6
-10
-3
-5
-25
-80
-4
-9
-3
-2
-11
-3
-3
-2
-3
-8
-7
-5
-5
-19
-5
-3
-3
-12
-11
-2
-6
-5
-5
-5
-3
-3
-3
-4
-209
-14
-3
-2
-5
-19
-4
-4
-3
-4
-14
-5
-6
-4
-13
-9
-7
-4
-7
-10
-2
-9
-5
-7
-2
-8
-4
-6
-5
-5
-222
-8
-7
-12
-5
-216
-3
-4
-4
-6
-3
-14
-8
-7
-13
-4
-3
-3
-3
-3
-17
-5
-4
-3
-33
-6
-6
-33
-7
-5
-3
-8
-7
-5
-2
-9
-4
-2
-233
-24
-7
-4
-8
-10
-3
-4
-15
-2
-16
-3
-3
-13
-12
-7
-5
-4
-207
-4
-2
-4
-27
-15
-2
-5
-2
-25
-6
-5
-5
-6
-13
-6
-18
-6
-4
-12
-225
-10
-7
-5
-2
-2
-11
-4
-14
-21
-8
-10
-3
-5
-4
-232
-2
-5
-5
-3
-7
-17
-11
-6
-6
-23
-4
-6
-3
-5
-4
-2
-17
-3
-6
-5
-8
-3
-2
-2
-14
-9
-4
-4
-2
-5
-5
-3
-7
-6
-12
-6
-10
-3
-6
-2
-2
-19
-5
-4
-4
-9
-2
-4
-13
-3
-5
-6
-3
-6
-5
-4
-9
-6
-3
-5
-7
-3
-6
-6
-4
-3
-10
-6
-3
-221
-3
-5
-3
-6
-4
-8
-5
-3
-6
-4
-4
-2
-54
-5
-6
-11
-3
-3
-4
-4
-4
-3
-7
-3
-11
-11
-7
-10
-6
-13
-223
-213
-15
-231
-7
-3
-7
-228
-2
-3
-4
-4
-5
-6
-7
-4
-13
-3
-4
-5
-3
-6
-4
-6
-7
-2
-4
-3
-4
-3
-3
-6
-3
-7
-3
-5
-18
-5
-6
-8
-10
-3
-3
-3
-2
-4
-2
-4
-4
-5
-6
-6
-4
-10
-13
-3
-12
-5
-12
-16
-8
-4
-19
-11
-2
-4
-5
-6
-8
-5
-6
-4
-18
-10
-4
-2
-216
-6
-6
-6
-2
-4
-12
-8
-3
-11
-5
-6
-14
-5
-3
-13
-4
-5
-4
-5
-3
-28
-6
-3
-7
-219
-3
-9
-7
-3
-10
-6
-3
-4
-19
-5
-7
-11
-6
-15
-19
-4
-13
-11
-3
-7
-5
-10
-2
-8
-11
-2
-6
-4
-6
-24
-6
-3
-3
-3
-3
-6
-18
-4
-11
-4
-2
-5
-10
-8
-3
-9
-5
-3
-4
-5
-6
-2
-5
-7
-4
-4
-14
-6
-4
-4
-5
-5
-7
-2
-4
-3
-7
-3
-3
-6
-4
-5
-4
-4
-4
-3
-3
-3
-3
-8
-14
-2
-3
-5
-3
-2
-4
-5
-3
-7
-3
-3
-18
-3
-4
-4
-5
-7
-3
-3
-3
-13
-5
-4
-8
-211
-5
-5
-3
-5
-2
-5
-4
-2
-655
-6
-3
-5
-11
-2
-5
-3
-12
-9
-15
-11
-5
-12
-217
-2
-6
-17
-3
-3
-207
-5
-5
-4
-5
-9
-3
-2
-8
-5
-4
-3
-2
-5
-12
-4
-14
-5
-4
-2
-13
-5
-8
-4
-225
-4
-3
-4
-5
-4
-3
-3
-6
-23
-9
-2
-6
-7
-233
-4
-4
-6
-18
-3
-4
-6
-3
-4
-4
-2
-3
-7
-4
-13
-227
-4
-3
-5
-4
-2
-12
-9
-17
-3
-7
-14
-6
-4
-5
-21
-4
-8
-9
-2
-9
-25
-16
-3
-6
-4
-7
-8
-5
-2
-3
-5
-4
-3
-3
-5
-3
-3
-3
-2
-3
-19
-2
-4
-3
-4
-2
-3
-4
-4
-2
-4
-3
-3
-3
-2
-6
-3
-17
-5
-6
-4
-3
-13
-5
-3
-3
-3
-4
-9
-4
-2
-14
-12
-4
-5
-24
-4
-3
-37
-12
-11
-21
-3
-4
-3
-13
-4
-2
-3
-15
-4
-11
-4
-4
-3
-8
-3
-4
-4
-12
-8
-5
-3
-3
-4
-2
-220
-3
-5
-223
-3
-3
-3
-10
-3
-15
-4
-241
-9
-7
-3
-6
-6
-23
-4
-13
-7
-3
-4
-7
-4
-9
-3
-3
-4
-10
-5
-5
-1
-5
-24
-2
-4
-5
-5
-6
-14
-3
-8
-2
-3
-5
-13
-13
-3
-5
-2
-3
-15
-3
-4
-2
-10
-4
-4
-4
-5
-5
-3
-5
-3
-4
-7
-4
-27
-3
-6
-4
-15
-3
-5
-6
-6
-5
-4
-8
-3
-9
-2
-6
-3
-4
-3
-7
-4
-18
-3
-11
-3
-3
-8
-9
-7
-24
-3
-219
-7
-10
-4
-5
-9
-12
-2
-5
-4
-4
-4
-3
-3
-19
-5
-8
-16
-8
-6
-22
-3
-23
-3
-242
-9
-4
-3
-3
-5
-7
-3
-3
-5
-8
-3
-7
-5
-14
-8
-10
-3
-4
-3
-7
-4
-6
-7
-4
-10
-4
-3
-11
-3
-7
-10
-3
-13
-6
-8
-12
-10
-5
-7
-9
-3
-4
-7
-7
-10
-8
-30
-9
-19
-4
-3
-19
-15
-4
-13
-3
-215
-223
-4
-7
-4
-8
-17
-16
-3
-7
-6
-5
-5
-4
-12
-3
-7
-4
-4
-13
-4
-5
-2
-5
-6
-5
-6
-6
-7
-10
-18
-23
-9
-3
-3
-6
-5
-2
-4
-2
-7
-3
-3
-2
-5
-5
-14
-10
-224
-6
-3
-4
-3
-7
-5
-9
-3
-6
-4
-2
-5
-11
-4
-3
-3
-2
-8
-4
-7
-4
-10
-7
-3
-3
-18
-18
-17
-3
-3
-3
-4
-5
-3
-3
-4
-12
-7
-3
-11
-13
-5
-4
-7
-13
-5
-4
-11
-3
-12
-3
-6
-4
-4
-21
-4
-6
-9
-5
-3
-10
-8
-4
-6
-4
-4
-6
-5
-4
-8
-6
-4
-6
-4
-4
-5
-9
-6
-3
-4
-2
-9
-3
-18
-2
-4
-3
-13
-3
-6
-6
-8
-7
-9
-3
-2
-16
-3
-4
-6
-3
-2
-33
-22
-14
-4
-9
-12
-4
-5
-6
-3
-23
-9
-4
-3
-5
-5
-3
-4
-5
-3
-5
-3
-10
-4
-5
-5
-8
-4
-4
-6
-8
-5
-4
-3
-4
-6
-3
-3
-3
-5
-9
-12
-6
-5
-9
-3
-5
-3
-2
-2
-2
-18
-3
-2
-21
-2
-5
-4
-6
-4
-5
-10
-3
-9
-3
-2
-10
-7
-3
-6
-6
-4
-4
-8
-12
-7
-3
-7
-3
-3
-9
-3
-4
-5
-4
-4
-5
-5
-10
-15
-4
-4
-14
-6
-227
-3
-14
-5
-216
-22
-5
-4
-2
-2
-6
-3
-4
-2
-9
-9
-4
-3
-28
-13
-11
-4
-5
-3
-3
-2
-3
-3
-5
-3
-4
-3
-5
-23
-26
-3
-4
-5
-6
-4
-6
-3
-5
-5
-3
-4
-3
-2
-2
-2
-7
-14
-3
-6
-7
-17
-2
-2
-15
-14
-16
-4
-6
-7
-13
-6
-4
-5
-6
-16
-3
-3
-28
-3
-6
-15
-3
-9
-2
-4
-6
-3
-3
-22
-4
-12
-6
-7
-2
-5
-4
-10
-3
-16
-6
-9
-2
-5
-12
-7
-5
-5
-5
-5
-2
-11
-9
-17
-4
-3
-11
-7
-3
-5
-15
-4
-3
-4
-211
-8
-7
-5
-4
-7
-6
-7
-6
-3
-6
-5
-6
-5
-3
-4
-4
-26
-4
-6
-10
-4
-4
-3
-2
-3
-3
-4
-5
-9
-3
-9
-4
-4
-5
-5
-8
-2
-4
-2
-3
-8
-4
-11
-19
-5
-8
-6
-3
-5
-6
-12
-3
-2
-4
-16
-12
-3
-4
-4
-8
-6
-5
-6
-6
-219
-8
-222
-6
-16
-3
-13
-19
-5
-4
-3
-11
-6
-10
-4
-7
-7
-12
-5
-3
-3
-5
-6
-10
-3
-8
-2
-5
-4
-7
-2
-4
-4
-2
-12
-9
-6
-4
-2
-40
-2
-4
-10
-4
-223
-4
-2
-20
-6
-7
-24
-5
-4
-5
-2
-20
-16
-6
-5
-13
-2
-3
-3
-19
-3
-2
-4
-5
-6
-7
-11
-12
-5
-6
-7
-7
-3
-5
-3
-5
-3
-14
-3
-4
-4
-2
-11
-1
-7
-3
-9
-6
-11
-12
-5
-8
-6
-221
-4
-2
-12
-4
-3
-15
-4
-5
-226
-7
-218
-7
-5
-4
-5
-18
-4
-5
-9
-4
-4
-2
-9
-18
-18
-9
-5
-6
-6
-3
-3
-7
-3
-5
-4
-4
-4
-12
-3
-6
-31
-5
-4
-7
-3
-6
-5
-6
-5
-11
-2
-2
-11
-11
-6
-7
-5
-8
-7
-10
-5
-23
-7
-4
-3
-5
-34
-2
-5
-23
-7
-3
-6
-8
-4
-4
-4
-2
-5
-3
-8
-5
-4
-8
-25
-2
-3
-17
-8
-3
-4
-8
-7
-3
-15
-6
-5
-7
-21
-9
-5
-6
-6
-5
-3
-2
-3
-10
-3
-6
-3
-14
-7
-4
-4
-8
-7
-8
-2
-6
-12
-4
-213
-6
-5
-21
-8
-2
-5
-23
-3
-11
-2
-3
-6
-25
-2
-3
-6
-7
-6
-6
-4
-4
-6
-3
-17
-9
-7
-6
-4
-3
-10
-7
-2
-3
-3
-3
-11
-8
-3
-7
-6
-4
-14
-36
-3
-4
-3
-3
-22
-13
-21
-4
-2
-7
-4
-4
-17
-15
-3
-7
-11
-2
-4
-7
-6
-209
-6
-3
-2
-2
-24
-4
-9
-4
-3
-3
-3
-29
-2
-2
-4
-3
-3
-5
-4
-6
-3
-3
-2
-4
diff --git a/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/stream.go b/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/stream.go
deleted file mode 100644
index d7d14f8e..00000000
--- a/upstream/image/git-init/vendor/github.com/beorn7/perks/quantile/stream.go
+++ /dev/null
@@ -1,316 +0,0 @@
-// Package quantile computes approximate quantiles over an unbounded data
-// stream within low memory and CPU bounds.
-//
-// A small amount of accuracy is traded to achieve the above properties.
-//
-// Multiple streams can be merged before calling Query to generate a single set
-// of results. This is meaningful when the streams represent the same type of
-// data. See Merge and Samples.
-//
-// For more detailed information about the algorithm used, see:
-//
-// Effective Computation of Biased Quantiles over Data Streams
-//
-// http://www.cs.rutgers.edu/~muthu/bquant.pdf
-package quantile
-
-import (
- "math"
- "sort"
-)
-
-// Sample holds an observed value and meta information for compression. JSON
-// tags have been added for convenience.
-type Sample struct {
- Value float64 `json:",string"`
- Width float64 `json:",string"`
- Delta float64 `json:",string"`
-}
-
-// Samples represents a slice of samples. It implements sort.Interface.
-type Samples []Sample
-
-func (a Samples) Len() int { return len(a) }
-func (a Samples) Less(i, j int) bool { return a[i].Value < a[j].Value }
-func (a Samples) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
-
-type invariant func(s *stream, r float64) float64
-
-// NewLowBiased returns an initialized Stream for low-biased quantiles
-// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but
-// error guarantees can still be given even for the lower ranks of the data
-// distribution.
-//
-// The provided epsilon is a relative error, i.e. the true quantile of a value
-// returned by a query is guaranteed to be within (1±Epsilon)*Quantile.
-//
-// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error
-// properties.
-func NewLowBiased(epsilon float64) *Stream {
- ƒ := func(s *stream, r float64) float64 {
- return 2 * epsilon * r
- }
- return newStream(ƒ)
-}
-
-// NewHighBiased returns an initialized Stream for high-biased quantiles
-// (e.g. 0.01, 0.1, 0.5) where the needed quantiles are not known a priori, but
-// error guarantees can still be given even for the higher ranks of the data
-// distribution.
-//
-// The provided epsilon is a relative error, i.e. the true quantile of a value
-// returned by a query is guaranteed to be within 1-(1±Epsilon)*(1-Quantile).
-//
-// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error
-// properties.
-func NewHighBiased(epsilon float64) *Stream {
- ƒ := func(s *stream, r float64) float64 {
- return 2 * epsilon * (s.n - r)
- }
- return newStream(ƒ)
-}
-
-// NewTargeted returns an initialized Stream concerned with a particular set of
-// quantile values that are supplied a priori. Knowing these a priori reduces
-// space and computation time. The targets map maps the desired quantiles to
-// their absolute errors, i.e. the true quantile of a value returned by a query
-// is guaranteed to be within (Quantile±Epsilon).
-//
-// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error properties.
-func NewTargeted(targetMap map[float64]float64) *Stream {
- // Convert map to slice to avoid slow iterations on a map.
- // ƒ is called on the hot path, so converting the map to a slice
- // beforehand results in significant CPU savings.
- targets := targetMapToSlice(targetMap)
-
- ƒ := func(s *stream, r float64) float64 {
- var m = math.MaxFloat64
- var f float64
- for _, t := range targets {
- if t.quantile*s.n <= r {
- f = (2 * t.epsilon * r) / t.quantile
- } else {
- f = (2 * t.epsilon * (s.n - r)) / (1 - t.quantile)
- }
- if f < m {
- m = f
- }
- }
- return m
- }
- return newStream(ƒ)
-}
-
-type target struct {
- quantile float64
- epsilon float64
-}
-
-func targetMapToSlice(targetMap map[float64]float64) []target {
- targets := make([]target, 0, len(targetMap))
-
- for quantile, epsilon := range targetMap {
- t := target{
- quantile: quantile,
- epsilon: epsilon,
- }
- targets = append(targets, t)
- }
-
- return targets
-}
-
-// Stream computes quantiles for a stream of float64s. It is not thread-safe by
-// design. Take care when using across multiple goroutines.
-type Stream struct {
- *stream
- b Samples
- sorted bool
-}
-
-func newStream(ƒ invariant) *Stream {
- x := &stream{ƒ: ƒ}
- return &Stream{x, make(Samples, 0, 500), true}
-}
-
-// Insert inserts v into the stream.
-func (s *Stream) Insert(v float64) {
- s.insert(Sample{Value: v, Width: 1})
-}
-
-func (s *Stream) insert(sample Sample) {
- s.b = append(s.b, sample)
- s.sorted = false
- if len(s.b) == cap(s.b) {
- s.flush()
- }
-}
-
-// Query returns the computed qth percentiles value. If s was created with
-// NewTargeted, and q is not in the set of quantiles provided a priori, Query
-// will return an unspecified result.
-func (s *Stream) Query(q float64) float64 {
- if !s.flushed() {
- // Fast path when there hasn't been enough data for a flush;
- // this also yields better accuracy for small sets of data.
- l := len(s.b)
- if l == 0 {
- return 0
- }
- i := int(math.Ceil(float64(l) * q))
- if i > 0 {
- i -= 1
- }
- s.maybeSort()
- return s.b[i].Value
- }
- s.flush()
- return s.stream.query(q)
-}
-
-// Merge merges samples into the underlying streams samples. This is handy when
-// merging multiple streams from separate threads, database shards, etc.
-//
-// ATTENTION: This method is broken and does not yield correct results. The
-// underlying algorithm is not capable of merging streams correctly.
-func (s *Stream) Merge(samples Samples) {
- sort.Sort(samples)
- s.stream.merge(samples)
-}
-
-// Reset reinitializes and clears the list reusing the samples buffer memory.
-func (s *Stream) Reset() {
- s.stream.reset()
- s.b = s.b[:0]
-}
-
-// Samples returns stream samples held by s.
-func (s *Stream) Samples() Samples {
- if !s.flushed() {
- return s.b
- }
- s.flush()
- return s.stream.samples()
-}
-
-// Count returns the total number of samples observed in the stream
-// since initialization.
-func (s *Stream) Count() int {
- return len(s.b) + s.stream.count()
-}
-
-func (s *Stream) flush() {
- s.maybeSort()
- s.stream.merge(s.b)
- s.b = s.b[:0]
-}
-
-func (s *Stream) maybeSort() {
- if !s.sorted {
- s.sorted = true
- sort.Sort(s.b)
- }
-}
-
-func (s *Stream) flushed() bool {
- return len(s.stream.l) > 0
-}
-
-type stream struct {
- n float64
- l []Sample
- ƒ invariant
-}
-
-func (s *stream) reset() {
- s.l = s.l[:0]
- s.n = 0
-}
-
-func (s *stream) insert(v float64) {
- s.merge(Samples{{v, 1, 0}})
-}
-
-func (s *stream) merge(samples Samples) {
- // TODO(beorn7): This tries to merge not only individual samples, but
- // whole summaries. The paper doesn't mention merging summaries at
- // all. Unittests show that the merging is inaccurate. Find out how to
- // do merges properly.
- var r float64
- i := 0
- for _, sample := range samples {
- for ; i < len(s.l); i++ {
- c := s.l[i]
- if c.Value > sample.Value {
- // Insert at position i.
- s.l = append(s.l, Sample{})
- copy(s.l[i+1:], s.l[i:])
- s.l[i] = Sample{
- sample.Value,
- sample.Width,
- math.Max(sample.Delta, math.Floor(s.ƒ(s, r))-1),
- // TODO(beorn7): How to calculate delta correctly?
- }
- i++
- goto inserted
- }
- r += c.Width
- }
- s.l = append(s.l, Sample{sample.Value, sample.Width, 0})
- i++
- inserted:
- s.n += sample.Width
- r += sample.Width
- }
- s.compress()
-}
-
-func (s *stream) count() int {
- return int(s.n)
-}
-
-func (s *stream) query(q float64) float64 {
- t := math.Ceil(q * s.n)
- t += math.Ceil(s.ƒ(s, t) / 2)
- p := s.l[0]
- var r float64
- for _, c := range s.l[1:] {
- r += p.Width
- if r+c.Width+c.Delta > t {
- return p.Value
- }
- p = c
- }
- return p.Value
-}
-
-func (s *stream) compress() {
- if len(s.l) < 2 {
- return
- }
- x := s.l[len(s.l)-1]
- xi := len(s.l) - 1
- r := s.n - 1 - x.Width
-
- for i := len(s.l) - 2; i >= 0; i-- {
- c := s.l[i]
- if c.Width+x.Width+x.Delta <= s.ƒ(s, r) {
- x.Width += c.Width
- s.l[xi] = x
- // Remove element at i.
- copy(s.l[i:], s.l[i+1:])
- s.l = s.l[:len(s.l)-1]
- xi -= 1
- } else {
- x = c
- xi = i
- }
- r -= c.Width
- }
-}
-
-func (s *stream) samples() Samples {
- samples := make(Samples, len(s.l))
- copy(samples, s.l)
- return samples
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/.gitignore b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/.gitignore
deleted file mode 100644
index 48b8bf90..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-vendor/
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/LICENSE b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/LICENSE
deleted file mode 100644
index 7db45677..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) Blendle
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/README.md b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/README.md
deleted file mode 100644
index 8044c552..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/README.md
+++ /dev/null
@@ -1,347 +0,0 @@
-# :zap: Zapdriver
-
-Blazing fast, [Zap][zap]-based [Stackdriver][stackdriver] logging.
-
-[zap]: https://github.com/uber-go/zap
-[stackdriver]: https://cloud.google.com/stackdriver/
-
-## Usage
-
-This package provides three building blocks to support the full array of
-structured logging capabilities of Stackdriver:
-
-* [Special purpose logging fields](#special-purpose-logging-fields)
-* [Pre-configured Stackdriver-optimized encoder](#pre-configured-stackdriver-optimized-encoder)
-* [Custom Stackdriver Zap core](#custom-stackdriver-zap-core)
-* [Using Error Reporting](#using-error-reporting)
-
-The above components can be used separately, but to start, you can create a new
-Zap logger with all of the above included:
-
-```golang
-logger, err := zapdriver.NewProduction() // with sampling
-logger, err := zapdriver.NewDevelopment() // with `development` set to `true`
-```
-
-The above functions give back a pointer to a `zap.Logger` object, so you can use
-[Zap][zap] like you've always done, except that it now logs in the proper
-[Stackdriver][stackdriver] format.
-
-You can also create a configuration struct, and build your logger from there:
-
-```golang
-config := zapdriver.NewProductionConfig()
-config := zapdriver.NewDevelopmentConfig()
-```
-
-Or, get the Zapdriver encoder, and build your own configuration struct from
-that:
-
-```golang
-encoder := zapdriver.NewProductionEncoderConfig()
-encoder := zapdriver.NewDevelopmentEncoderConfig()
-```
-
-Read on to learn more about the available Stackdriver-specific log fields, and
-how to use the above-mentioned components.
-
-### Special purpose logging fields
-
-You can use the following fields to add extra information to your log entries.
-These fields are parsed by Stackdriver to make it easier to query your logs or
-to use the log details in the Stackdriver monitoring interface.
-
-* [`HTTP`](#http)
-* [`Label`](#label)
-* [`SourceLocation`](#sourcelocation)
-* [`Operation`](#operation)
-* [`TraceContext`](#tracecontext)
-
-#### HTTP
-
-You can log HTTP request/response cycles using the following field:
-
-```golang
-HTTP(req *HTTPPayload) zap.Field
-```
-
-You can either manually build the request payload:
-
-```golang
-req := &HTTPPayload{
- RequestMethod: "GET",
- RequestURL: "/",
- Status: 200,
-}
-```
-
-Or, you can auto generate the struct, based on the available request and
-response objects:
-
-```golang
-NewHTTP(req *http.Request, res *http.Response) *HTTPPayload
-```
-
-You are free to pass in `nil` for either the request or response object, if one
-of them is unavailable to you at the point of logging. Any field depending on
-one or the other will be omitted if `nil` is passed in.
-
-Note that there are some fields that are not populated by either the request or
-response object, and need to be set manually:
-
-* `ServerIP string`
-* `Latency string`
-* `CacheLookup bool`
-* `CacheHit bool`
-* `CacheValidatedWithOriginServer bool`
-* `CacheFillBytes string`
-
-If you have no need for those fields, the quickest way to get started is like
-so:
-
-```golang
-logger.Info("Request Received.", zapdriver.HTTP(zapdriver.NewHTTP(req, res)))
-```
-
-#### Label
-
-You can add a "label" to your payload as follows:
-
-```golang
-Label(key, value string) zap.Field
-```
-
-Note that underwater, this sets the key to `labels.`. You need to be using
-the `zapdriver.Core` core for this to be converted to the proper format for
-Stackdriver to recognize the labels.
-
-See "Custom Stackdriver Zap core" for more details.
-
-If you have a reason not to use the provided Core, you can still wrap labels in
-the right `labels` namespace by using the available function:
-
-```golang
-Labels(fields ...zap.Field) zap.Field
-```
-
-Like so:
-
-```golang
-logger.Info(
- "Did something.",
- zapdriver.Labels(
- zapdriver.Label("hello", "world"),
- zapdriver.Label("hi", "universe"),
- ),
-)
-```
-
-Again, wrapping the `Label` calls in `Labels` is not required if you use the
-supplied Zap Core.
-
-#### SourceLocation
-
-You can add a source code location to your log lines to be picked up by
-Stackdriver.
-
-Note that you can set this manually, or use `zapdriver.Core` to automatically
-add this. If you set it manually, _and_ use `zapdriver.Core`, the manual call
-stack will be preserved over the automated one.
-
-```golang
-SourceLocation(pc uintptr, file string, line int, ok bool) zap.Field
-```
-
-Note that the function signature equals that of the return values of
-`runtime.Caller()`. This allows you to catch the stack frame at one location,
-while logging it at a different location, like so:
-
-```golang
-pc, file, line, ok := runtime.Caller(0)
-
-// do other stuff...
-
-logger.Error("Something happened!", zapdriver.SourceLocation(pc, file, line, ok))
-```
-
-If you use `zapdriver.Core`, the above use-case is the only use-case where you
-would want to manually set the source location. In all other situations, you can
-simply omit this field, and it will be added automatically, using the stack
-frame at the location where the log line is triggered.
-
-If you don't use `zapdriver.Core`, and still want to add the source location at
-the frame of the triggered log line, you'd do it like this:
-
-```golang
-logger.Error("Something happened!", zapdriver.SourceLocation(runtime.Caller(0)))
-```
-
-#### Operation
-
-The `Operation` log field allows you to group log lines into a single
-"operation" performed by the application:
-
-```golang
-Operation(id, producer string, first, last bool) zap.Field
-```
-
-For a pair of logs that belong to the same operation, you should use the same
-`id` between them. The `producer` is an arbitrary identifier that should be
-globally unique amongst all the logs of all your applications (meaning it should
-probably be the unique name of the current application). You should set `first`
-to true for the first log in the operation, and `last` to true for the final log
-of the operation.
-
-```golang
-logger.Info("Started.", zapdriver.Operation("3g4d3g", "my-app", true, false))
-logger.Debug("Progressing.", zapdriver.Operation("3g4d3g", "my-app", false, false))
-logger.Info("Done.", zapdriver.Operation("3g4d3g", "my-app", false, true))
-```
-
-Instead of defining the "start" and "end" booleans, you can also use these three
-convenience functions:
-
-```golang
-OperationStart(id, producer string) zap.Field
-OperationCont(id, producer string) zap.Field
-OperationEnd(id, producer string) zap.Field
-```
-
-#### TraceContext
-
-You can add trace context information to your log lines to be picked up by
-Stackdriver.
-
-```golang
-TraceContext(trace string, spanId string, sampled bool, projectName string) []zap.Field
-```
-
-Like so:
-
-```golang
-logger.Error("Something happened!", zapdriver.TraceContext("105445aa7843bc8bf206b120001000", "0", true, "my-project-name")...)
-```
-
-### Pre-configured Stackdriver-optimized encoder
-
-The Stackdriver encoder maps all Zap log levels to the appropriate
-[Stackdriver-supported levels][levels]:
-
-> DEBUG (100) Debug or trace information.
->
-> INFO (200) Routine information, such as ongoing status or performance.
->
-> WARNING (400) Warning events might cause problems.
->
-> ERROR (500) Error events are likely to cause problems.
->
-> CRITICAL (600) Critical events cause more severe problems or outages.
->
-> ALERT (700) A person must take an action immediately.
->
-> EMERGENCY (800) One or more systems are unusable.
-
-[levels]: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
-
-It also sets some of the default keys to use [the right names][names], such as
-`timestamp`, `severity`, and `message`.
-
-[names]: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
-
-You can use this encoder if you want to build your Zap logger configuration
-manually:
-
-```golang
-zapdriver.NewProductionEncoderConfig()
-```
-
-For parity-sake, there's also `zapdriver.NewDevelopmentEncoderConfig()`, but it
-returns the exact same encoder right now.
-
-### Custom Stackdriver Zap core
-
-A custom Zap core is included in this package to support some special use-cases.
-
-First of all, if you use `zapdriver.NewProduction()` (or `NewDevelopment`) , you
-already have this core enabled, so everything _just works_ ™.
-
-There are two use-cases which require this core:
-
-1. If you use `zapdriver.Label("hello", "world")`, it will initially end up in
- your log with the key `labels.hello` and value `world`. Now if you have two
- labels, you could also have `labels.hi` with value `universe`. This works as-
- is, but for this to be correctly parsed by Stackdriver as true "labels", you
- need to use the Zapdriver core, so that both of these fields get rewritten,
- to use the namespace `labels`, and use the keys `hello` and `hi` within that
- namespace. This is done automatically.
-
-2. If you don't want to use `zapdriver.SourceLocation()` on every log call, you
- can use this core for the source location to be automatically added to
- each log entry.
-
-When building a logger, you can inject the Zapdriver core as follows:
-
-```golang
-config := &zap.Config{}
-logger, err := config.Build(zapdriver.WrapCore())
-```
-
-### Using Error Reporting
-
-To report errors using StackDriver's Error Reporting tool, a log line needs to follow a separate log format described in the [Error Reporting][errorreporting] documentation.
-
-[errorreporting]: https://cloud.google.com/error-reporting/docs/formatting-error-messages
-
-The simplest way to do this is by using `NewProductionWithCore`:
-
-```golang
-logger, err := zapdriver.NewProductionWithCore(zapdriver.WrapCore(
- zapdriver.ReportAllErrors(true),
- zapdriver.ServiceName("my service"),
-))
-```
-
-For parity-sake, there's also `zapdriver.NewDevelopmentWithCore()`
-
-If you are building a custom logger, you can use `WrapCore()` to configure the driver core:
-
-```golang
-config := &zap.Config{}
-logger, err := config.Build(zapdriver.WrapCore(
- zapdriver.ReportAllErrors(true),
- zapdriver.ServiceName("my service"),
-))
-```
-
-Configuring this way, every error log entry will be reported to Stackdriver's Error Reporting tool.
-
-#### Reporting errors manually
-
-If you do not want every error to be reported, you can attach `ErrorReport()` to log call manually:
-
-```golang
-logger.Error("An error to be reported!", zapdriver.ErrorReport(runtime.Caller(0)))
-// Or get Caller details
-pc, file, line, ok := runtime.Caller(0)
-// do other stuff... and log elsewhere
-logger.Error("Another error to be reported!", zapdriver.ErrorReport(pc, file, line, ok))
-```
-
-Please keep in mind that ErrorReport needs a ServiceContext attached to the log
-entry. If you did not configure this using `WrapCore`, error reports will
-get attached using service name as `unknown`. To prevent this from happeneing,
-either configure your core or attach service context before (or when) using
-the logger:
-
-```golang
-logger.Error(
- "An error to be reported!",
- zapdriver.ErrorReport(runtime.Caller(0)),
- zapdriver.ServiceContext("my service"),
-)
-
-// Or permanently attach it to your logger
-logger = logger.With(zapdriver.ServiceContext("my service"))
-// and then use it
-logger.Error("An error to be reported!", zapdriver.ErrorReport(runtime.Caller(0)))
-```
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/config.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/config.go
deleted file mode 100644
index fe901ce3..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/config.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package zapdriver
-
-import (
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-// NewProductionEncoderConfig returns an opinionated EncoderConfig for
-// production environments.
-func NewProductionEncoderConfig() zapcore.EncoderConfig {
- return encoderConfig
-}
-
-// NewDevelopmentEncoderConfig returns an opinionated EncoderConfig for
-// development environments.
-func NewDevelopmentEncoderConfig() zapcore.EncoderConfig {
- return encoderConfig
-}
-
-// NewProductionConfig is a reasonable production logging configuration.
-// Logging is enabled at InfoLevel and above.
-//
-// It uses a JSON encoder, writes to standard error, and enables sampling.
-// Stacktraces are automatically included on logs of ErrorLevel and above.
-func NewProductionConfig() zap.Config {
- return zap.Config{
- Level: zap.NewAtomicLevelAt(zap.InfoLevel),
- Development: false,
- Sampling: &zap.SamplingConfig{
- Initial: 100,
- Thereafter: 100,
- },
- Encoding: "json",
- EncoderConfig: NewProductionEncoderConfig(),
- OutputPaths: []string{"stderr"},
- ErrorOutputPaths: []string{"stderr"},
- }
-}
-
-// NewDevelopmentConfig is a reasonable development logging configuration.
-// Logging is enabled at DebugLevel and above.
-//
-// It enables development mode (which makes DPanicLevel logs panic), uses a
-// console encoder, writes to standard error, and disables sampling.
-// Stacktraces are automatically included on logs of WarnLevel and above.
-func NewDevelopmentConfig() zap.Config {
- return zap.Config{
- Level: zap.NewAtomicLevelAt(zap.DebugLevel),
- Development: true,
- Encoding: "json",
- EncoderConfig: NewDevelopmentEncoderConfig(),
- OutputPaths: []string{"stderr"},
- ErrorOutputPaths: []string{"stderr"},
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/core.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/core.go
deleted file mode 100644
index bcb7660f..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/core.go
+++ /dev/null
@@ -1,243 +0,0 @@
-package zapdriver
-
-import (
- "strings"
-
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-// driverConfig is used to configure core.
-type driverConfig struct {
- // Report all logs with level error or above to stackdriver using
- // `ErrorReport()` when set to true
- ReportAllErrors bool
-
- // ServiceName is added as `ServiceContext()` to all logs when set
- ServiceName string
-}
-
-// Core is a zapdriver specific core wrapped around the default zap core. It
-// allows to merge all defined labels
-type core struct {
- zapcore.Core
-
- // permLabels is a collection of labels that have been added to the logger
- // through the use of `With()`. These labels should never be cleared after
- // logging a single entry, unlike `tempLabel`.
- permLabels *labels
-
- // tempLabels keeps a record of all the labels that need to be applied to the
- // current log entry. Zap serializes log fields at different parts of the
- // stack, one such location is when calling `core.With` and the other one is
- // when calling `core.Write`. This makes it impossible to (for example) take
- // all `labels.xxx` fields, and wrap them in the `labels` namespace in one go.
- //
- // Instead, we have to filter out these labels at both locations, and then add
- // them back in the proper format right before we call `Write` on the original
- // Zap core.
- tempLabels *labels
-
- // Configuration for the zapdriver core
- config driverConfig
-}
-
-// zapdriver core option to report all logs with level error or above to stackdriver
-// using `ErrorReport()` when set to true
-func ReportAllErrors(report bool) func(*core) {
- return func(c *core) {
- c.config.ReportAllErrors = report
- }
-}
-
-// zapdriver core option to add `ServiceContext()` to all logs with `name` as
-// service name
-func ServiceName(name string) func(*core) {
- return func(c *core) {
- c.config.ServiceName = name
- }
-}
-
-// WrapCore returns a `zap.Option` that wraps the default core with the
-// zapdriver one.
-func WrapCore(options ...func(*core)) zap.Option {
- return zap.WrapCore(func(c zapcore.Core) zapcore.Core {
- newcore := &core{
- Core: c,
- permLabels: newLabels(),
- tempLabels: newLabels(),
- }
- for _, option := range options {
- option(newcore)
- }
- return newcore
- })
-}
-
-// With adds structured context to the Core.
-func (c *core) With(fields []zap.Field) zapcore.Core {
- var lbls *labels
- lbls, fields = c.extractLabels(fields)
-
- lbls.mutex.RLock()
- c.permLabels.mutex.Lock()
- for k, v := range lbls.store {
- c.permLabels.store[k] = v
- }
- c.permLabels.mutex.Unlock()
- lbls.mutex.RUnlock()
-
- return &core{
- Core: c.Core.With(fields),
- permLabels: c.permLabels,
- tempLabels: newLabels(),
- config: c.config,
- }
-}
-
-// Check determines whether the supplied Entry should be logged (using the
-// embedded LevelEnabler and possibly some extra logic). If the entry
-// should be logged, the Core adds itself to the CheckedEntry and returns
-// the result.
-//
-// Callers must use Check before calling Write.
-func (c *core) Check(ent zapcore.Entry, ce *zapcore.CheckedEntry) *zapcore.CheckedEntry {
- if c.Enabled(ent.Level) {
- return ce.AddCore(ent, c)
- }
-
- return ce
-}
-
-func (c *core) Write(ent zapcore.Entry, fields []zapcore.Field) error {
- var lbls *labels
- lbls, fields = c.extractLabels(fields)
-
- lbls.mutex.RLock()
- c.tempLabels.mutex.Lock()
- for k, v := range lbls.store {
- c.tempLabels.store[k] = v
- }
- c.tempLabels.mutex.Unlock()
- lbls.mutex.RUnlock()
-
- fields = append(fields, labelsField(c.allLabels()))
- fields = c.withSourceLocation(ent, fields)
- if c.config.ServiceName != "" {
- fields = c.withServiceContext(c.config.ServiceName, fields)
- }
- if c.config.ReportAllErrors && zapcore.ErrorLevel.Enabled(ent.Level) {
- fields = c.withErrorReport(ent, fields)
- if c.config.ServiceName == "" {
- // A service name was not set but error report needs it
- // So attempt to add a generic service name
- fields = c.withServiceContext("unknown", fields)
- }
- }
-
- c.tempLabels.reset()
-
- return c.Core.Write(ent, fields)
-}
-
-// Sync flushes buffered logs (if any).
-func (c *core) Sync() error {
- return c.Core.Sync()
-}
-
-func (c *core) allLabels() *labels {
- lbls := newLabels()
-
- lbls.mutex.Lock()
- c.permLabels.mutex.RLock()
- for k, v := range c.permLabels.store {
- lbls.store[k] = v
- }
- c.permLabels.mutex.RUnlock()
-
- c.tempLabels.mutex.RLock()
- for k, v := range c.tempLabels.store {
- lbls.store[k] = v
- }
- c.tempLabels.mutex.RUnlock()
- lbls.mutex.Unlock()
-
- return lbls
-}
-
-func (c *core) extractLabels(fields []zapcore.Field) (*labels, []zapcore.Field) {
- lbls := newLabels()
- out := []zapcore.Field{}
-
- lbls.mutex.Lock()
- for i := range fields {
- if !isLabelField(fields[i]) {
- out = append(out, fields[i])
- continue
- }
-
- lbls.store[strings.Replace(fields[i].Key, "labels.", "", 1)] = fields[i].String
- }
- lbls.mutex.Unlock()
-
- return lbls, out
-}
-
-func (c *core) withLabels(fields []zapcore.Field) []zapcore.Field {
- lbls := newLabels()
- out := []zapcore.Field{}
-
- lbls.mutex.Lock()
- for i := range fields {
- if isLabelField(fields[i]) {
- lbls.store[strings.Replace(fields[i].Key, "labels.", "", 1)] = fields[i].String
- continue
- }
-
- out = append(out, fields[i])
- }
- lbls.mutex.Unlock()
-
- return append(out, labelsField(lbls))
-}
-
-func (c *core) withSourceLocation(ent zapcore.Entry, fields []zapcore.Field) []zapcore.Field {
- // If the source location was manually set, don't overwrite it
- for i := range fields {
- if fields[i].Key == sourceKey {
- return fields
- }
- }
-
- if !ent.Caller.Defined {
- return fields
- }
-
- return append(fields, SourceLocation(ent.Caller.PC, ent.Caller.File, ent.Caller.Line, true))
-}
-
-func (c *core) withServiceContext(name string, fields []zapcore.Field) []zapcore.Field {
- // If the service context was manually set, don't overwrite it
- for i := range fields {
- if fields[i].Key == serviceContextKey {
- return fields
- }
- }
-
- return append(fields, ServiceContext(name))
-}
-
-func (c *core) withErrorReport(ent zapcore.Entry, fields []zapcore.Field) []zapcore.Field {
- // If the error report was manually set, don't overwrite it
- for i := range fields {
- if fields[i].Key == contextKey {
- return fields
- }
- }
-
- if !ent.Caller.Defined {
- return fields
- }
-
- return append(fields, ErrorReport(ent.Caller.PC, ent.Caller.File, ent.Caller.Line, true))
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/encoder.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/encoder.go
deleted file mode 100644
index eec571fb..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/encoder.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package zapdriver
-
-import (
- "time"
-
- "go.uber.org/zap/zapcore"
-)
-
-// logLevelSeverity maps the Zap log levels to the correct level names as
-// defined by Stackdriver.
-//
-// DEFAULT (0) The log entry has no assigned severity level.
-// DEBUG (100) Debug or trace information.
-// INFO (200) Routine information, such as ongoing status or performance.
-// NOTICE (300) Normal but significant events, such as start up, shut down, or a configuration change.
-// WARNING (400) Warning events might cause problems.
-// ERROR (500) Error events are likely to cause problems.
-// CRITICAL (600) Critical events cause more severe problems or outages.
-// ALERT (700) A person must take an action immediately.
-// EMERGENCY (800) One or more systems are unusable.
-//
-// See: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogSeverity
-var logLevelSeverity = map[zapcore.Level]string{
- zapcore.DebugLevel: "DEBUG",
- zapcore.InfoLevel: "INFO",
- zapcore.WarnLevel: "WARNING",
- zapcore.ErrorLevel: "ERROR",
- zapcore.DPanicLevel: "CRITICAL",
- zapcore.PanicLevel: "ALERT",
- zapcore.FatalLevel: "EMERGENCY",
-}
-
-// encoderConfig is the default encoder configuration, slightly tweaked to use
-// the correct fields for Stackdriver to parse them.
-var encoderConfig = zapcore.EncoderConfig{
- TimeKey: "timestamp",
- LevelKey: "severity",
- NameKey: "logger",
- CallerKey: "caller",
- MessageKey: "message",
- StacktraceKey: "stacktrace",
- LineEnding: zapcore.DefaultLineEnding,
- EncodeLevel: EncodeLevel,
- EncodeTime: RFC3339NanoTimeEncoder,
- EncodeDuration: zapcore.SecondsDurationEncoder,
- EncodeCaller: zapcore.ShortCallerEncoder,
-}
-
-// EncodeLevel maps the internal Zap log level to the appropriate Stackdriver
-// level.
-func EncodeLevel(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
- enc.AppendString(logLevelSeverity[l])
-}
-
-// RFC3339NanoTimeEncoder serializes a time.Time to an RFC3339Nano-formatted
-// string with nanoseconds precision.
-func RFC3339NanoTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
- enc.AppendString(t.Format(time.RFC3339Nano))
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/http.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/http.go
deleted file mode 100644
index 441e5859..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/http.go
+++ /dev/null
@@ -1,160 +0,0 @@
-package zapdriver
-
-// "Broker: Request timed out"
-// https://console.cloud.google.com/logs/viewer?project=bnl-blendle&minLogLevel=
-// 0&expandAll=false×tamp=2018-05-23T22:21:56.142000000Z&customFacets=&limi
-// tCustomFacetWidth=true&dateRangeEnd=2018-05-23T22:21:52.545Z&interval=PT1H&re
-// source=container%2Fcluster_name%2Fblendle-2%2Fnamespace_id%2Fstream-
-// composition-analytic-events-
-// backfill&scrollTimestamp=2018-05-23T05:29:33.000000000Z&logName=projects
-// %2Fbnl-blendle%2Flogs%2Fstream-composition-analytic-events-
-// pipe-1&dateRangeUnbound=backwardInTime
-
-import (
- "bytes"
- "io"
- "net/http"
- "strconv"
-
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-// HTTP adds the correct Stackdriver "HTTP" field.
-//
-// see: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#HttpRequest
-func HTTP(req *HTTPPayload) zap.Field {
- return zap.Object("httpRequest", req)
-}
-
-// HTTPPayload is the complete payload that can be interpreted by
-// Stackdriver as a HTTP request.
-type HTTPPayload struct {
- // The request method. Examples: "GET", "HEAD", "PUT", "POST".
- RequestMethod string `json:"requestMethod"`
-
- // The scheme (http, https), the host name, the path and the query portion of
- // the URL that was requested.
- //
- // Example: "http://example.com/some/info?color=red".
- RequestURL string `json:"requestUrl"`
-
- // The size of the HTTP request message in bytes, including the request
- // headers and the request body.
- RequestSize string `json:"requestSize"`
-
- // The response code indicating the status of response.
- //
- // Examples: 200, 404.
- Status int `json:"status"`
-
- // The size of the HTTP response message sent back to the client, in bytes,
- // including the response headers and the response body.
- ResponseSize string `json:"responseSize"`
-
- // The user agent sent by the client.
- //
- // Example: "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
- UserAgent string `json:"userAgent"`
-
- // The IP address (IPv4 or IPv6) of the client that issued the HTTP request.
- //
- // Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
- RemoteIP string `json:"remoteIp"`
-
- // The IP address (IPv4 or IPv6) of the origin server that the request was
- // sent to.
- ServerIP string `json:"serverIp"`
-
- // The referrer URL of the request, as defined in HTTP/1.1 Header Field
- // Definitions.
- Referer string `json:"referer"`
-
- // The request processing latency on the server, from the time the request was
- // received until the response was sent.
- //
- // A duration in seconds with up to nine fractional digits, terminated by 's'.
- //
- // Example: "3.5s".
- Latency string `json:"latency"`
-
- // Whether or not a cache lookup was attempted.
- CacheLookup bool `json:"cacheLookup"`
-
- // Whether or not an entity was served from cache (with or without
- // validation).
- CacheHit bool `json:"cacheHit"`
-
- // Whether or not the response was validated with the origin server before
- // being served from cache. This field is only meaningful if cacheHit is True.
- CacheValidatedWithOriginServer bool `json:"cacheValidatedWithOriginServer"`
-
- // The number of HTTP response bytes inserted into cache. Set only when a
- // cache fill was attempted.
- CacheFillBytes string `json:"cacheFillBytes"`
-
- // Protocol used for the request.
- //
- // Examples: "HTTP/1.1", "HTTP/2", "websocket"
- Protocol string `json:"protocol"`
-}
-
-// NewHTTP returns a new HTTPPayload struct, based on the passed
-// in http.Request and http.Response objects.
-func NewHTTP(req *http.Request, res *http.Response) *HTTPPayload {
- if req == nil {
- req = &http.Request{}
- }
-
- if res == nil {
- res = &http.Response{}
- }
-
- sdreq := &HTTPPayload{
- RequestMethod: req.Method,
- Status: res.StatusCode,
- UserAgent: req.UserAgent(),
- RemoteIP: req.RemoteAddr,
- Referer: req.Referer(),
- Protocol: req.Proto,
- }
-
- if req.URL != nil {
- sdreq.RequestURL = req.URL.String()
- }
-
- buf := &bytes.Buffer{}
- if req.Body != nil {
- n, _ := io.Copy(buf, req.Body) // nolint: gas
- sdreq.RequestSize = strconv.FormatInt(n, 10)
- }
-
- if res.Body != nil {
- buf.Reset()
- n, _ := io.Copy(buf, res.Body) // nolint: gas
- sdreq.ResponseSize = strconv.FormatInt(n, 10)
- }
-
- return sdreq
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (req HTTPPayload) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddString("requestMethod", req.RequestMethod)
- enc.AddString("requestUrl", req.RequestURL)
- enc.AddString("requestSize", req.RequestSize)
- enc.AddInt("status", req.Status)
- enc.AddString("responseSize", req.ResponseSize)
- enc.AddString("userAgent", req.UserAgent)
- enc.AddString("remoteIp", req.RemoteIP)
- enc.AddString("serverIp", req.ServerIP)
- enc.AddString("referer", req.Referer)
- enc.AddString("latency", req.Latency)
- enc.AddBool("cacheLookup", req.CacheLookup)
- enc.AddBool("cacheHit", req.CacheHit)
- enc.AddBool("cacheValidatedWithOriginServer", req.CacheValidatedWithOriginServer)
- enc.AddString("cacheFillBytes", req.CacheFillBytes)
- enc.AddString("protocol", req.Protocol)
-
- return nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/label.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/label.go
deleted file mode 100644
index 72386420..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/label.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package zapdriver
-
-import (
- "strings"
- "sync"
-
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-const labelsKey = "logging.googleapis.com/labels"
-
-// Label adds an optional label to the payload.
-//
-// Labels are a set of user-defined (key, value) data that provides additional
-// information about the log entry.
-//
-// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
-func Label(key, value string) zap.Field {
- return zap.String("labels."+key, value)
-}
-
-// Labels takes Zap fields, filters the ones that have their key start with the
-// string `labels.` and their value type set to StringType. It then wraps those
-// key/value pairs in a top-level `labels` namespace.
-func Labels(fields ...zap.Field) zap.Field {
- lbls := newLabels()
-
- lbls.mutex.Lock()
- for i := range fields {
- if isLabelField(fields[i]) {
- lbls.store[strings.Replace(fields[i].Key, "labels.", "", 1)] = fields[i].String
- }
- }
- lbls.mutex.Unlock()
-
- return labelsField(lbls)
-}
-
-func isLabelField(field zap.Field) bool {
- return strings.HasPrefix(field.Key, "labels.") && field.Type == zapcore.StringType
-}
-
-func labelsField(l *labels) zap.Field {
- return zap.Object(labelsKey, l)
-}
-
-type labels struct {
- store map[string]string
- mutex *sync.RWMutex
-}
-
-func newLabels() *labels {
- return &labels{store: map[string]string{}, mutex: &sync.RWMutex{}}
-}
-
-func (l *labels) Add(key, value string) {
- l.mutex.Lock()
- l.store[key] = value
- l.mutex.Unlock()
-}
-
-func (l *labels) reset() {
- l.mutex.Lock()
- l.store = map[string]string{}
- l.mutex.Unlock()
-}
-
-func (l labels) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- l.mutex.RLock()
- for k, v := range l.store {
- enc.AddString(k, v)
- }
- l.mutex.RUnlock()
-
- return nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/logger.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/logger.go
deleted file mode 100644
index 59c10993..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/logger.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package zapdriver
-
-import (
- "go.uber.org/zap"
-)
-
-// NewProduction builds a sensible production Logger that writes InfoLevel and
-// above logs to standard error as JSON.
-//
-// It's a shortcut for NewProductionConfig().Build(...Option).
-func NewProduction(options ...zap.Option) (*zap.Logger, error) {
- options = append(options, WrapCore())
-
- return NewProductionConfig().Build(options...)
-}
-
-// NewProductionWithCore is same as NewProduction but accepts a custom configured core
-func NewProductionWithCore(core zap.Option, options ...zap.Option) (*zap.Logger, error) {
- options = append(options, core)
-
- return NewProductionConfig().Build(options...)
-}
-
-// NewDevelopment builds a development Logger that writes DebugLevel and above
-// logs to standard error in a human-friendly format.
-//
-// It's a shortcut for NewDevelopmentConfig().Build(...Option).
-func NewDevelopment(options ...zap.Option) (*zap.Logger, error) {
- options = append(options, WrapCore())
-
- return NewDevelopmentConfig().Build(options...)
-}
-
-// NewDevelopmentWithCore is same as NewDevelopment but accepts a custom configured core
-func NewDevelopmentWithCore(core zap.Option, options ...zap.Option) (*zap.Logger, error) {
- options = append(options, core)
-
- return NewDevelopmentConfig().Build(options...)
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/operation.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/operation.go
deleted file mode 100644
index e8b862f7..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/operation.go
+++ /dev/null
@@ -1,72 +0,0 @@
-package zapdriver
-
-import (
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-const operationKey = "logging.googleapis.com/operation"
-
-// Operation adds the correct Stackdriver "operation" field.
-//
-// Additional information about a potentially long-running operation with which
-// a log entry is associated.
-//
-// see: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogEntryOperation
-func Operation(id, producer string, first, last bool) zap.Field {
- op := &operation{
- ID: id,
- Producer: producer,
- First: first,
- Last: last,
- }
-
- return zap.Object(operationKey, op)
-}
-
-// OperationStart is a convenience function for `Operation`. It should be called
-// for the first operation log.
-func OperationStart(id, producer string) zap.Field {
- return Operation(id, producer, true, false)
-}
-
-// OperationCont is a convenience function for `Operation`. It should be called
-// for any non-start/end operation log.
-func OperationCont(id, producer string) zap.Field {
- return Operation(id, producer, false, false)
-}
-
-// OperationEnd is a convenience function for `Operation`. It should be called
-// for the last operation log.
-func OperationEnd(id, producer string) zap.Field {
- return Operation(id, producer, false, true)
-}
-
-// operation is the complete payload that can be interpreted by Stackdriver as
-// an operation.
-type operation struct {
- // Optional. An arbitrary operation identifier. Log entries with the same
- // identifier are assumed to be part of the same operation.
- ID string `json:"id"`
-
- // Optional. An arbitrary producer identifier. The combination of id and
- // producer must be globally unique. Examples for producer:
- // "MyDivision.MyBigCompany.com", "github.com/MyProject/MyApplication".
- Producer string `json:"producer"`
-
- // Optional. Set this to True if this is the first log entry in the operation.
- First bool `json:"first"`
-
- // Optional. Set this to True if this is the last log entry in the operation.
- Last bool `json:"last"`
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (op operation) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddString("id", op.ID)
- enc.AddString("producer", op.Producer)
- enc.AddBool("first", op.First)
- enc.AddBool("last", op.Last)
-
- return nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/report.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/report.go
deleted file mode 100644
index 1bb8ac76..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/report.go
+++ /dev/null
@@ -1,70 +0,0 @@
-package zapdriver
-
-import (
- "runtime"
- "strconv"
-
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-const contextKey = "context"
-
-// ErrorReport adds the correct Stackdriver "context" field for getting the log line
-// reported as error.
-//
-// see: https://cloud.google.com/error-reporting/docs/formatting-error-messages
-func ErrorReport(pc uintptr, file string, line int, ok bool) zap.Field {
- return zap.Object(contextKey, newReportContext(pc, file, line, ok))
-}
-
-// reportLocation is the source code location information associated with the log entry
-// for the purpose of reporting an error,
-// if any.
-type reportLocation struct {
- File string `json:"filePath"`
- Line string `json:"lineNumber"`
- Function string `json:"functionName"`
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (location reportLocation) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddString("filePath", location.File)
- enc.AddString("lineNumber", location.Line)
- enc.AddString("functionName", location.Function)
-
- return nil
-}
-
-// reportContext is the context information attached to a log for reporting errors
-type reportContext struct {
- ReportLocation reportLocation `json:"reportLocation"`
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (context reportContext) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddObject("reportLocation", context.ReportLocation)
-
- return nil
-}
-
-func newReportContext(pc uintptr, file string, line int, ok bool) *reportContext {
- if !ok {
- return nil
- }
-
- var function string
- if fn := runtime.FuncForPC(pc); fn != nil {
- function = fn.Name()
- }
-
- context := &reportContext{
- ReportLocation: reportLocation{
- File: file,
- Line: strconv.Itoa(line),
- Function: function,
- },
- }
-
- return context
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/service.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/service.go
deleted file mode 100644
index 134ff363..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/service.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package zapdriver
-
-import (
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-const serviceContextKey = "serviceContext"
-
-// ServiceContext adds the correct service information adding the log line
-// It is a required field if an error needs to be reported.
-//
-// see: https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext
-// see: https://cloud.google.com/error-reporting/docs/formatting-error-messages
-func ServiceContext(name string) zap.Field {
- return zap.Object(serviceContextKey, newServiceContext(name))
-}
-
-// serviceContext describes a running service that sends errors.
-// Currently it only describes a service name.
-type serviceContext struct {
- Name string `json:"service"`
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (service_context serviceContext) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddString("service", service_context.Name)
-
- return nil
-}
-
-func newServiceContext(name string) *serviceContext {
- return &serviceContext{
- Name: name,
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/source.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/source.go
deleted file mode 100644
index ff5ecf76..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/source.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package zapdriver
-
-import (
- "runtime"
- "strconv"
-
- "go.uber.org/zap"
- "go.uber.org/zap/zapcore"
-)
-
-const sourceKey = "logging.googleapis.com/sourceLocation"
-
-// SourceLocation adds the correct Stackdriver "SourceLocation" field.
-//
-// see: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogEntrySourceLocation
-func SourceLocation(pc uintptr, file string, line int, ok bool) zap.Field {
- return zap.Object(sourceKey, newSource(pc, file, line, ok))
-}
-
-// source is the source code location information associated with the log entry,
-// if any.
-type source struct {
- // Optional. Source file name. Depending on the runtime environment, this
- // might be a simple name or a fully-qualified name.
- File string `json:"file"`
-
- // Optional. Line within the source file. 1-based; 0 indicates no line number
- // available.
- Line string `json:"line"`
-
- // Optional. Human-readable name of the function or method being invoked, with
- // optional context such as the class or package name. This information may be
- // used in contexts such as the logs viewer, where a file and line number are
- // less meaningful.
- //
- // The format should be dir/package.func.
- Function string `json:"function"`
-}
-
-// MarshalLogObject implements zapcore.ObjectMarshaller interface.
-func (source source) MarshalLogObject(enc zapcore.ObjectEncoder) error {
- enc.AddString("file", source.File)
- enc.AddString("line", source.Line)
- enc.AddString("function", source.Function)
-
- return nil
-}
-
-func newSource(pc uintptr, file string, line int, ok bool) *source {
- if !ok {
- return nil
- }
-
- var function string
- if fn := runtime.FuncForPC(pc); fn != nil {
- function = fn.Name()
- }
-
- source := &source{
- File: file,
- Line: strconv.Itoa(line),
- Function: function,
- }
-
- return source
-}
diff --git a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/trace.go b/upstream/image/git-init/vendor/github.com/blendle/zapdriver/trace.go
deleted file mode 100644
index 7e1e2e8a..00000000
--- a/upstream/image/git-init/vendor/github.com/blendle/zapdriver/trace.go
+++ /dev/null
@@ -1,24 +0,0 @@
-package zapdriver
-
-import (
- "fmt"
-
- "go.uber.org/zap"
-)
-
-const (
- traceKey = "logging.googleapis.com/trace"
- spanKey = "logging.googleapis.com/spanId"
- traceSampledKey = "logging.googleapis.com/trace_sampled"
-)
-
-// TraceContext adds the correct Stackdriver "trace", "span", "trace_sampled fields
-//
-// see: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
-func TraceContext(trace string, spanId string, sampled bool, projectName string) []zap.Field {
- return []zap.Field{
- zap.String(traceKey, fmt.Sprintf("projects/%s/traces/%s", projectName, trace)),
- zap.String(spanKey, spanId),
- zap.Bool(traceSampledKey, sampled),
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/AUTHORS b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/AUTHORS
deleted file mode 100644
index e068e731..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Google Inc.
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/LICENSE b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/LICENSE
deleted file mode 100644
index d6456956..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1/common.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1/common.pb.go
deleted file mode 100644
index 9cacb32a..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1/common.pb.go
+++ /dev/null
@@ -1,570 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/agent/common/v1/common.proto
-
-// NOTE: This proto is experimental and is subject to change at this point.
-// Please do not use it at the moment.
-
-package v1
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- timestamppb "google.golang.org/protobuf/types/known/timestamppb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type LibraryInfo_Language int32
-
-const (
- LibraryInfo_LANGUAGE_UNSPECIFIED LibraryInfo_Language = 0
- LibraryInfo_CPP LibraryInfo_Language = 1
- LibraryInfo_C_SHARP LibraryInfo_Language = 2
- LibraryInfo_ERLANG LibraryInfo_Language = 3
- LibraryInfo_GO_LANG LibraryInfo_Language = 4
- LibraryInfo_JAVA LibraryInfo_Language = 5
- LibraryInfo_NODE_JS LibraryInfo_Language = 6
- LibraryInfo_PHP LibraryInfo_Language = 7
- LibraryInfo_PYTHON LibraryInfo_Language = 8
- LibraryInfo_RUBY LibraryInfo_Language = 9
- LibraryInfo_WEB_JS LibraryInfo_Language = 10
-)
-
-// Enum value maps for LibraryInfo_Language.
-var (
- LibraryInfo_Language_name = map[int32]string{
- 0: "LANGUAGE_UNSPECIFIED",
- 1: "CPP",
- 2: "C_SHARP",
- 3: "ERLANG",
- 4: "GO_LANG",
- 5: "JAVA",
- 6: "NODE_JS",
- 7: "PHP",
- 8: "PYTHON",
- 9: "RUBY",
- 10: "WEB_JS",
- }
- LibraryInfo_Language_value = map[string]int32{
- "LANGUAGE_UNSPECIFIED": 0,
- "CPP": 1,
- "C_SHARP": 2,
- "ERLANG": 3,
- "GO_LANG": 4,
- "JAVA": 5,
- "NODE_JS": 6,
- "PHP": 7,
- "PYTHON": 8,
- "RUBY": 9,
- "WEB_JS": 10,
- }
-)
-
-func (x LibraryInfo_Language) Enum() *LibraryInfo_Language {
- p := new(LibraryInfo_Language)
- *p = x
- return p
-}
-
-func (x LibraryInfo_Language) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (LibraryInfo_Language) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_agent_common_v1_common_proto_enumTypes[0].Descriptor()
-}
-
-func (LibraryInfo_Language) Type() protoreflect.EnumType {
- return &file_opencensus_proto_agent_common_v1_common_proto_enumTypes[0]
-}
-
-func (x LibraryInfo_Language) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use LibraryInfo_Language.Descriptor instead.
-func (LibraryInfo_Language) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP(), []int{2, 0}
-}
-
-// Identifier metadata of the Node that produces the span or tracing data.
-// Note, this is not the metadata about the Node or service that is described by associated spans.
-// In the future we plan to extend the identifier proto definition to support
-// additional information (e.g cloud id, etc.)
-type Node struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier that uniquely identifies a process within a VM/container.
- Identifier *ProcessIdentifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"`
- // Information on the OpenCensus Library that initiates the stream.
- LibraryInfo *LibraryInfo `protobuf:"bytes,2,opt,name=library_info,json=libraryInfo,proto3" json:"library_info,omitempty"`
- // Additional information on service.
- ServiceInfo *ServiceInfo `protobuf:"bytes,3,opt,name=service_info,json=serviceInfo,proto3" json:"service_info,omitempty"`
- // Additional attributes.
- Attributes map[string]string `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-func (x *Node) Reset() {
- *x = Node{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Node) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Node) ProtoMessage() {}
-
-func (x *Node) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Node.ProtoReflect.Descriptor instead.
-func (*Node) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Node) GetIdentifier() *ProcessIdentifier {
- if x != nil {
- return x.Identifier
- }
- return nil
-}
-
-func (x *Node) GetLibraryInfo() *LibraryInfo {
- if x != nil {
- return x.LibraryInfo
- }
- return nil
-}
-
-func (x *Node) GetServiceInfo() *ServiceInfo {
- if x != nil {
- return x.ServiceInfo
- }
- return nil
-}
-
-func (x *Node) GetAttributes() map[string]string {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-// Identifier that uniquely identifies a process within a VM/container.
-type ProcessIdentifier struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The host name. Usually refers to the machine/container name.
- // For example: os.Hostname() in Go, socket.gethostname() in Python.
- HostName string `protobuf:"bytes,1,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"`
- // Process id.
- Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
- // Start time of this ProcessIdentifier. Represented in epoch time.
- StartTimestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"`
-}
-
-func (x *ProcessIdentifier) Reset() {
- *x = ProcessIdentifier{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ProcessIdentifier) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProcessIdentifier) ProtoMessage() {}
-
-func (x *ProcessIdentifier) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProcessIdentifier.ProtoReflect.Descriptor instead.
-func (*ProcessIdentifier) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ProcessIdentifier) GetHostName() string {
- if x != nil {
- return x.HostName
- }
- return ""
-}
-
-func (x *ProcessIdentifier) GetPid() uint32 {
- if x != nil {
- return x.Pid
- }
- return 0
-}
-
-func (x *ProcessIdentifier) GetStartTimestamp() *timestamppb.Timestamp {
- if x != nil {
- return x.StartTimestamp
- }
- return nil
-}
-
-// Information on OpenCensus Library.
-type LibraryInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Language of OpenCensus Library.
- Language LibraryInfo_Language `protobuf:"varint,1,opt,name=language,proto3,enum=opencensus.proto.agent.common.v1.LibraryInfo_Language" json:"language,omitempty"`
- // Version of Agent exporter of Library.
- ExporterVersion string `protobuf:"bytes,2,opt,name=exporter_version,json=exporterVersion,proto3" json:"exporter_version,omitempty"`
- // Version of OpenCensus Library.
- CoreLibraryVersion string `protobuf:"bytes,3,opt,name=core_library_version,json=coreLibraryVersion,proto3" json:"core_library_version,omitempty"`
-}
-
-func (x *LibraryInfo) Reset() {
- *x = LibraryInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LibraryInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LibraryInfo) ProtoMessage() {}
-
-func (x *LibraryInfo) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use LibraryInfo.ProtoReflect.Descriptor instead.
-func (*LibraryInfo) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *LibraryInfo) GetLanguage() LibraryInfo_Language {
- if x != nil {
- return x.Language
- }
- return LibraryInfo_LANGUAGE_UNSPECIFIED
-}
-
-func (x *LibraryInfo) GetExporterVersion() string {
- if x != nil {
- return x.ExporterVersion
- }
- return ""
-}
-
-func (x *LibraryInfo) GetCoreLibraryVersion() string {
- if x != nil {
- return x.CoreLibraryVersion
- }
- return ""
-}
-
-// Additional service information.
-type ServiceInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Name of the service.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-}
-
-func (x *ServiceInfo) Reset() {
- *x = ServiceInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ServiceInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ServiceInfo) ProtoMessage() {}
-
-func (x *ServiceInfo) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_common_v1_common_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ServiceInfo.ProtoReflect.Descriptor instead.
-func (*ServiceInfo) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *ServiceInfo) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-var File_opencensus_proto_agent_common_v1_common_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_agent_common_v1_common_proto_rawDesc = []byte{
- 0x0a, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f,
- 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
- 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
- 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x22, 0x96, 0x03, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x69,
- 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
- 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
- 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
- 0x12, 0x50, 0x0a, 0x0c, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
- 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
- 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x49, 0x6e,
- 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e,
- 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
- 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
- 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f,
- 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x87, 0x01, 0x0a, 0x11,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
- 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10,
- 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64,
- 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,
- 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x52, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65,
- 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
- 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61,
- 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52,
- 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x70,
- 0x6f, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x62,
- 0x72, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x56,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x01, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75,
- 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x4e, 0x47, 0x55, 0x41, 0x47, 0x45, 0x5f,
- 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a,
- 0x03, 0x43, 0x50, 0x50, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x52,
- 0x50, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x52, 0x4c, 0x41, 0x4e, 0x47, 0x10, 0x03, 0x12,
- 0x0b, 0x0a, 0x07, 0x47, 0x4f, 0x5f, 0x4c, 0x41, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04,
- 0x4a, 0x41, 0x56, 0x41, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x4a,
- 0x53, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, 0x50, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06,
- 0x50, 0x59, 0x54, 0x48, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x55, 0x42, 0x59,
- 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x45, 0x42, 0x5f, 0x4a, 0x53, 0x10, 0x0a, 0x22, 0x21,
- 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x42, 0xa6, 0x01, 0x0a, 0x23, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
- 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73, 0x74,
- 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e,
- 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e,
- 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
- 0x2f, 0x76, 0x31, 0xea, 0x02, 0x24, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x3a,
- 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_agent_common_v1_common_proto_rawDescOnce sync.Once
- file_opencensus_proto_agent_common_v1_common_proto_rawDescData = file_opencensus_proto_agent_common_v1_common_proto_rawDesc
-)
-
-func file_opencensus_proto_agent_common_v1_common_proto_rawDescGZIP() []byte {
- file_opencensus_proto_agent_common_v1_common_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_agent_common_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_agent_common_v1_common_proto_rawDescData)
- })
- return file_opencensus_proto_agent_common_v1_common_proto_rawDescData
-}
-
-var file_opencensus_proto_agent_common_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_opencensus_proto_agent_common_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_opencensus_proto_agent_common_v1_common_proto_goTypes = []interface{}{
- (LibraryInfo_Language)(0), // 0: opencensus.proto.agent.common.v1.LibraryInfo.Language
- (*Node)(nil), // 1: opencensus.proto.agent.common.v1.Node
- (*ProcessIdentifier)(nil), // 2: opencensus.proto.agent.common.v1.ProcessIdentifier
- (*LibraryInfo)(nil), // 3: opencensus.proto.agent.common.v1.LibraryInfo
- (*ServiceInfo)(nil), // 4: opencensus.proto.agent.common.v1.ServiceInfo
- nil, // 5: opencensus.proto.agent.common.v1.Node.AttributesEntry
- (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp
-}
-var file_opencensus_proto_agent_common_v1_common_proto_depIdxs = []int32{
- 2, // 0: opencensus.proto.agent.common.v1.Node.identifier:type_name -> opencensus.proto.agent.common.v1.ProcessIdentifier
- 3, // 1: opencensus.proto.agent.common.v1.Node.library_info:type_name -> opencensus.proto.agent.common.v1.LibraryInfo
- 4, // 2: opencensus.proto.agent.common.v1.Node.service_info:type_name -> opencensus.proto.agent.common.v1.ServiceInfo
- 5, // 3: opencensus.proto.agent.common.v1.Node.attributes:type_name -> opencensus.proto.agent.common.v1.Node.AttributesEntry
- 6, // 4: opencensus.proto.agent.common.v1.ProcessIdentifier.start_timestamp:type_name -> google.protobuf.Timestamp
- 0, // 5: opencensus.proto.agent.common.v1.LibraryInfo.language:type_name -> opencensus.proto.agent.common.v1.LibraryInfo.Language
- 6, // [6:6] is the sub-list for method output_type
- 6, // [6:6] is the sub-list for method input_type
- 6, // [6:6] is the sub-list for extension type_name
- 6, // [6:6] is the sub-list for extension extendee
- 0, // [0:6] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_agent_common_v1_common_proto_init() }
-func file_opencensus_proto_agent_common_v1_common_proto_init() {
- if File_opencensus_proto_agent_common_v1_common_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_agent_common_v1_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Node); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_common_v1_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessIdentifier); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_common_v1_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LibraryInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_common_v1_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ServiceInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_agent_common_v1_common_proto_rawDesc,
- NumEnums: 1,
- NumMessages: 5,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_opencensus_proto_agent_common_v1_common_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_agent_common_v1_common_proto_depIdxs,
- EnumInfos: file_opencensus_proto_agent_common_v1_common_proto_enumTypes,
- MessageInfos: file_opencensus_proto_agent_common_v1_common_proto_msgTypes,
- }.Build()
- File_opencensus_proto_agent_common_v1_common_proto = out.File
- file_opencensus_proto_agent_common_v1_common_proto_rawDesc = nil
- file_opencensus_proto_agent_common_v1_common_proto_goTypes = nil
- file_opencensus_proto_agent_common_v1_common_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.go
deleted file mode 100644
index 4f9faffd..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.go
+++ /dev/null
@@ -1,410 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/agent/metrics/v1/metrics_service.proto
-
-package v1
-
-import (
- context "context"
- v1 "github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1"
- v11 "github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1"
- v12 "github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1"
- grpc "google.golang.org/grpc"
- codes "google.golang.org/grpc/codes"
- status "google.golang.org/grpc/status"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type ExportMetricsServiceRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // This is required only in the first message on the stream or if the
- // previous sent ExportMetricsServiceRequest message has a different Node (e.g.
- // when the same RPC is used to send Metrics from multiple Applications).
- Node *v1.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
- // A list of metrics that belong to the last received Node.
- Metrics []*v11.Metric `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty"`
- // The resource for the metrics in this message that do not have an explicit
- // resource set.
- // If unset, the most recently set resource in the RPC stream applies. It is
- // valid to never be set within a stream, e.g. when no resource info is known
- // at all or when all sent metrics have an explicit resource set.
- Resource *v12.Resource `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"`
-}
-
-func (x *ExportMetricsServiceRequest) Reset() {
- *x = ExportMetricsServiceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ExportMetricsServiceRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ExportMetricsServiceRequest) ProtoMessage() {}
-
-func (x *ExportMetricsServiceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ExportMetricsServiceRequest.ProtoReflect.Descriptor instead.
-func (*ExportMetricsServiceRequest) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ExportMetricsServiceRequest) GetNode() *v1.Node {
- if x != nil {
- return x.Node
- }
- return nil
-}
-
-func (x *ExportMetricsServiceRequest) GetMetrics() []*v11.Metric {
- if x != nil {
- return x.Metrics
- }
- return nil
-}
-
-func (x *ExportMetricsServiceRequest) GetResource() *v12.Resource {
- if x != nil {
- return x.Resource
- }
- return nil
-}
-
-type ExportMetricsServiceResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *ExportMetricsServiceResponse) Reset() {
- *x = ExportMetricsServiceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ExportMetricsServiceResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ExportMetricsServiceResponse) ProtoMessage() {}
-
-func (x *ExportMetricsServiceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ExportMetricsServiceResponse.ProtoReflect.Descriptor instead.
-func (*ExportMetricsServiceResponse) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescGZIP(), []int{1}
-}
-
-var File_opencensus_proto_agent_metrics_v1_metrics_service_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDesc = []byte{
- 0x0a, 0x37, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e,
- 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x2d, 0x6f, 0x70,
- 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61,
- 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x22, 0xdc, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
- 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12,
- 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x42,
- 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
- 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x32, 0xa2, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x06, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
- 0x12, 0x3e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0xb1, 0x01, 0x0a, 0x24, 0x69, 0x6f, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31,
- 0x42, 0x13, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
- 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72,
- 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2d,
- 0x67, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2f, 0x76, 0x31, 0xea, 0x02, 0x25, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x3a,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescOnce sync.Once
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescData = file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDesc
-)
-
-func file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescGZIP() []byte {
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescData)
- })
- return file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDescData
-}
-
-var file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_opencensus_proto_agent_metrics_v1_metrics_service_proto_goTypes = []interface{}{
- (*ExportMetricsServiceRequest)(nil), // 0: opencensus.proto.agent.metrics.v1.ExportMetricsServiceRequest
- (*ExportMetricsServiceResponse)(nil), // 1: opencensus.proto.agent.metrics.v1.ExportMetricsServiceResponse
- (*v1.Node)(nil), // 2: opencensus.proto.agent.common.v1.Node
- (*v11.Metric)(nil), // 3: opencensus.proto.metrics.v1.Metric
- (*v12.Resource)(nil), // 4: opencensus.proto.resource.v1.Resource
-}
-var file_opencensus_proto_agent_metrics_v1_metrics_service_proto_depIdxs = []int32{
- 2, // 0: opencensus.proto.agent.metrics.v1.ExportMetricsServiceRequest.node:type_name -> opencensus.proto.agent.common.v1.Node
- 3, // 1: opencensus.proto.agent.metrics.v1.ExportMetricsServiceRequest.metrics:type_name -> opencensus.proto.metrics.v1.Metric
- 4, // 2: opencensus.proto.agent.metrics.v1.ExportMetricsServiceRequest.resource:type_name -> opencensus.proto.resource.v1.Resource
- 0, // 3: opencensus.proto.agent.metrics.v1.MetricsService.Export:input_type -> opencensus.proto.agent.metrics.v1.ExportMetricsServiceRequest
- 1, // 4: opencensus.proto.agent.metrics.v1.MetricsService.Export:output_type -> opencensus.proto.agent.metrics.v1.ExportMetricsServiceResponse
- 4, // [4:5] is the sub-list for method output_type
- 3, // [3:4] is the sub-list for method input_type
- 3, // [3:3] is the sub-list for extension type_name
- 3, // [3:3] is the sub-list for extension extendee
- 0, // [0:3] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_agent_metrics_v1_metrics_service_proto_init() }
-func file_opencensus_proto_agent_metrics_v1_metrics_service_proto_init() {
- if File_opencensus_proto_agent_metrics_v1_metrics_service_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExportMetricsServiceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExportMetricsServiceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_opencensus_proto_agent_metrics_v1_metrics_service_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_agent_metrics_v1_metrics_service_proto_depIdxs,
- MessageInfos: file_opencensus_proto_agent_metrics_v1_metrics_service_proto_msgTypes,
- }.Build()
- File_opencensus_proto_agent_metrics_v1_metrics_service_proto = out.File
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_rawDesc = nil
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_goTypes = nil
- file_opencensus_proto_agent_metrics_v1_metrics_service_proto_depIdxs = nil
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConnInterface
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion6
-
-// MetricsServiceClient is the client API for MetricsService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type MetricsServiceClient interface {
- // For performance reasons, it is recommended to keep this RPC
- // alive for the entire life of the application.
- Export(ctx context.Context, opts ...grpc.CallOption) (MetricsService_ExportClient, error)
-}
-
-type metricsServiceClient struct {
- cc grpc.ClientConnInterface
-}
-
-func NewMetricsServiceClient(cc grpc.ClientConnInterface) MetricsServiceClient {
- return &metricsServiceClient{cc}
-}
-
-func (c *metricsServiceClient) Export(ctx context.Context, opts ...grpc.CallOption) (MetricsService_ExportClient, error) {
- stream, err := c.cc.NewStream(ctx, &_MetricsService_serviceDesc.Streams[0], "/opencensus.proto.agent.metrics.v1.MetricsService/Export", opts...)
- if err != nil {
- return nil, err
- }
- x := &metricsServiceExportClient{stream}
- return x, nil
-}
-
-type MetricsService_ExportClient interface {
- Send(*ExportMetricsServiceRequest) error
- Recv() (*ExportMetricsServiceResponse, error)
- grpc.ClientStream
-}
-
-type metricsServiceExportClient struct {
- grpc.ClientStream
-}
-
-func (x *metricsServiceExportClient) Send(m *ExportMetricsServiceRequest) error {
- return x.ClientStream.SendMsg(m)
-}
-
-func (x *metricsServiceExportClient) Recv() (*ExportMetricsServiceResponse, error) {
- m := new(ExportMetricsServiceResponse)
- if err := x.ClientStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-// MetricsServiceServer is the server API for MetricsService service.
-type MetricsServiceServer interface {
- // For performance reasons, it is recommended to keep this RPC
- // alive for the entire life of the application.
- Export(MetricsService_ExportServer) error
-}
-
-// UnimplementedMetricsServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedMetricsServiceServer struct {
-}
-
-func (*UnimplementedMetricsServiceServer) Export(MetricsService_ExportServer) error {
- return status.Errorf(codes.Unimplemented, "method Export not implemented")
-}
-
-func RegisterMetricsServiceServer(s *grpc.Server, srv MetricsServiceServer) {
- s.RegisterService(&_MetricsService_serviceDesc, srv)
-}
-
-func _MetricsService_Export_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(MetricsServiceServer).Export(&metricsServiceExportServer{stream})
-}
-
-type MetricsService_ExportServer interface {
- Send(*ExportMetricsServiceResponse) error
- Recv() (*ExportMetricsServiceRequest, error)
- grpc.ServerStream
-}
-
-type metricsServiceExportServer struct {
- grpc.ServerStream
-}
-
-func (x *metricsServiceExportServer) Send(m *ExportMetricsServiceResponse) error {
- return x.ServerStream.SendMsg(m)
-}
-
-func (x *metricsServiceExportServer) Recv() (*ExportMetricsServiceRequest, error) {
- m := new(ExportMetricsServiceRequest)
- if err := x.ServerStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-var _MetricsService_serviceDesc = grpc.ServiceDesc{
- ServiceName: "opencensus.proto.agent.metrics.v1.MetricsService",
- HandlerType: (*MetricsServiceServer)(nil),
- Methods: []grpc.MethodDesc{},
- Streams: []grpc.StreamDesc{
- {
- StreamName: "Export",
- Handler: _MetricsService_Export_Handler,
- ServerStreams: true,
- ClientStreams: true,
- },
- },
- Metadata: "opencensus/proto/agent/metrics/v1/metrics_service.proto",
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.gw.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.gw.go
deleted file mode 100644
index 3cc9bae4..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/metrics/v1/metrics_service.pb.gw.go
+++ /dev/null
@@ -1,160 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: opencensus/proto/agent/metrics/v1/metrics_service.proto
-
-/*
-Package v1 is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package v1
-
-import (
- "context"
- "io"
- "net/http"
-
- "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
- "github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
- "google.golang.org/grpc"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/grpclog"
- "google.golang.org/grpc/metadata"
- "google.golang.org/grpc/status"
- "google.golang.org/protobuf/proto"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = metadata.Join
-
-func request_MetricsService_Export_0(ctx context.Context, marshaler runtime.Marshaler, client MetricsServiceClient, req *http.Request, pathParams map[string]string) (MetricsService_ExportClient, runtime.ServerMetadata, error) {
- var metadata runtime.ServerMetadata
- stream, err := client.Export(ctx)
- if err != nil {
- grpclog.Infof("Failed to start streaming: %v", err)
- return nil, metadata, err
- }
- dec := marshaler.NewDecoder(req.Body)
- handleSend := func() error {
- var protoReq ExportMetricsServiceRequest
- err := dec.Decode(&protoReq)
- if err == io.EOF {
- return err
- }
- if err != nil {
- grpclog.Infof("Failed to decode request: %v", err)
- return err
- }
- if err := stream.Send(&protoReq); err != nil {
- grpclog.Infof("Failed to send request: %v", err)
- return err
- }
- return nil
- }
- go func() {
- for {
- if err := handleSend(); err != nil {
- break
- }
- }
- if err := stream.CloseSend(); err != nil {
- grpclog.Infof("Failed to terminate client stream: %v", err)
- }
- }()
- header, err := stream.Header()
- if err != nil {
- grpclog.Infof("Failed to get header from client: %v", err)
- return nil, metadata, err
- }
- metadata.HeaderMD = header
- return stream, metadata, nil
-}
-
-// RegisterMetricsServiceHandlerServer registers the http handlers for service MetricsService to "mux".
-// UnaryRPC :call MetricsServiceServer directly.
-// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMetricsServiceHandlerFromEndpoint instead.
-func RegisterMetricsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MetricsServiceServer) error {
-
- mux.Handle("POST", pattern_MetricsService_Export_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
- _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- })
-
- return nil
-}
-
-// RegisterMetricsServiceHandlerFromEndpoint is same as RegisterMetricsServiceHandler but
-// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterMetricsServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
- conn, err := grpc.Dial(endpoint, opts...)
- if err != nil {
- return err
- }
- defer func() {
- if err != nil {
- if cerr := conn.Close(); cerr != nil {
- grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
- }
- return
- }
- go func() {
- <-ctx.Done()
- if cerr := conn.Close(); cerr != nil {
- grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
- }
- }()
- }()
-
- return RegisterMetricsServiceHandler(ctx, mux, conn)
-}
-
-// RegisterMetricsServiceHandler registers the http handlers for service MetricsService to "mux".
-// The handlers forward requests to the grpc endpoint over "conn".
-func RegisterMetricsServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
- return RegisterMetricsServiceHandlerClient(ctx, mux, NewMetricsServiceClient(conn))
-}
-
-// RegisterMetricsServiceHandlerClient registers the http handlers for service MetricsService
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "MetricsServiceClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "MetricsServiceClient"
-// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "MetricsServiceClient" to call the correct interceptors.
-func RegisterMetricsServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client MetricsServiceClient) error {
-
- mux.Handle("POST", pattern_MetricsService_Export_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- ctx, cancel := context.WithCancel(req.Context())
- defer cancel()
- inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- rctx, err := runtime.AnnotateContext(ctx, mux, req, "/opencensus.proto.agent.metrics.v1.MetricsService/Export", runtime.WithHTTPPathPattern("/v1/metrics"))
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
- resp, md, err := request_MetricsService_Export_0(rctx, inboundMarshaler, client, req, pathParams)
- ctx = runtime.NewServerMetadataContext(ctx, md)
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
-
- forward_MetricsService_Export_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
-
- })
-
- return nil
-}
-
-var (
- pattern_MetricsService_Export_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "metrics"}, ""))
-)
-
-var (
- forward_MetricsService_Export_0 = runtime.ForwardResponseStream
-)
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.go
deleted file mode 100644
index c713bfb4..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.go
+++ /dev/null
@@ -1,664 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/agent/trace/v1/trace_service.proto
-
-// NOTE: This proto is experimental and is subject to change at this point.
-// Please do not use it at the moment.
-
-package v1
-
-import (
- context "context"
- v1 "github.com/census-instrumentation/opencensus-proto/gen-go/agent/common/v1"
- v12 "github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1"
- v11 "github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1"
- grpc "google.golang.org/grpc"
- codes "google.golang.org/grpc/codes"
- status "google.golang.org/grpc/status"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type CurrentLibraryConfig struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // This is required only in the first message on the stream or if the
- // previous sent CurrentLibraryConfig message has a different Node (e.g.
- // when the same RPC is used to configure multiple Applications).
- Node *v1.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
- // Current configuration.
- Config *v11.TraceConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
-}
-
-func (x *CurrentLibraryConfig) Reset() {
- *x = CurrentLibraryConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CurrentLibraryConfig) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CurrentLibraryConfig) ProtoMessage() {}
-
-func (x *CurrentLibraryConfig) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CurrentLibraryConfig.ProtoReflect.Descriptor instead.
-func (*CurrentLibraryConfig) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *CurrentLibraryConfig) GetNode() *v1.Node {
- if x != nil {
- return x.Node
- }
- return nil
-}
-
-func (x *CurrentLibraryConfig) GetConfig() *v11.TraceConfig {
- if x != nil {
- return x.Config
- }
- return nil
-}
-
-type UpdatedLibraryConfig struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // This field is ignored when the RPC is used to configure only one Application.
- // This is required only in the first message on the stream or if the
- // previous sent UpdatedLibraryConfig message has a different Node.
- Node *v1.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
- // Requested updated configuration.
- Config *v11.TraceConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
-}
-
-func (x *UpdatedLibraryConfig) Reset() {
- *x = UpdatedLibraryConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *UpdatedLibraryConfig) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*UpdatedLibraryConfig) ProtoMessage() {}
-
-func (x *UpdatedLibraryConfig) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use UpdatedLibraryConfig.ProtoReflect.Descriptor instead.
-func (*UpdatedLibraryConfig) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *UpdatedLibraryConfig) GetNode() *v1.Node {
- if x != nil {
- return x.Node
- }
- return nil
-}
-
-func (x *UpdatedLibraryConfig) GetConfig() *v11.TraceConfig {
- if x != nil {
- return x.Config
- }
- return nil
-}
-
-type ExportTraceServiceRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // This is required only in the first message on the stream or if the
- // previous sent ExportTraceServiceRequest message has a different Node (e.g.
- // when the same RPC is used to send Spans from multiple Applications).
- Node *v1.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
- // A list of Spans that belong to the last received Node.
- Spans []*v11.Span `protobuf:"bytes,2,rep,name=spans,proto3" json:"spans,omitempty"`
- // The resource for the spans in this message that do not have an explicit
- // resource set.
- // If unset, the most recently set resource in the RPC stream applies. It is
- // valid to never be set within a stream, e.g. when no resource info is known.
- Resource *v12.Resource `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"`
-}
-
-func (x *ExportTraceServiceRequest) Reset() {
- *x = ExportTraceServiceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ExportTraceServiceRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ExportTraceServiceRequest) ProtoMessage() {}
-
-func (x *ExportTraceServiceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ExportTraceServiceRequest.ProtoReflect.Descriptor instead.
-func (*ExportTraceServiceRequest) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ExportTraceServiceRequest) GetNode() *v1.Node {
- if x != nil {
- return x.Node
- }
- return nil
-}
-
-func (x *ExportTraceServiceRequest) GetSpans() []*v11.Span {
- if x != nil {
- return x.Spans
- }
- return nil
-}
-
-func (x *ExportTraceServiceRequest) GetResource() *v12.Resource {
- if x != nil {
- return x.Resource
- }
- return nil
-}
-
-type ExportTraceServiceResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *ExportTraceServiceResponse) Reset() {
- *x = ExportTraceServiceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ExportTraceServiceResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ExportTraceServiceResponse) ProtoMessage() {}
-
-func (x *ExportTraceServiceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ExportTraceServiceResponse.ProtoReflect.Descriptor instead.
-func (*ExportTraceServiceResponse) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescGZIP(), []int{3}
-}
-
-var File_opencensus_proto_agent_trace_v1_trace_service_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDesc = []byte{
- 0x0a, 0x33, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2f, 0x76,
- 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x63,
- 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75,
- 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x1a, 0x25, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72,
- 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,
- 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
- 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x06,
- 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x92, 0x01, 0x0a,
- 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
- 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64,
- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72,
- 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x22, 0xd2, 0x01, 0x0a, 0x19, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63,
- 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x3a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
- 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73,
- 0x70, 0x61, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x05, 0x73, 0x70, 0x61,
- 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
- 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x96, 0x02, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
- 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
- 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x28,
- 0x01, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x06, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3a,
- 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31,
- 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67,
- 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70,
- 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0xa9, 0x01,
- 0x0a, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
- 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75,
- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73,
- 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65,
- 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x2f, 0x76, 0x31, 0xea, 0x02, 0x23, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x3a,
- 0x54, 0x72, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
-}
-
-var (
- file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescOnce sync.Once
- file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescData = file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDesc
-)
-
-func file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescGZIP() []byte {
- file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescData)
- })
- return file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDescData
-}
-
-var file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_opencensus_proto_agent_trace_v1_trace_service_proto_goTypes = []interface{}{
- (*CurrentLibraryConfig)(nil), // 0: opencensus.proto.agent.trace.v1.CurrentLibraryConfig
- (*UpdatedLibraryConfig)(nil), // 1: opencensus.proto.agent.trace.v1.UpdatedLibraryConfig
- (*ExportTraceServiceRequest)(nil), // 2: opencensus.proto.agent.trace.v1.ExportTraceServiceRequest
- (*ExportTraceServiceResponse)(nil), // 3: opencensus.proto.agent.trace.v1.ExportTraceServiceResponse
- (*v1.Node)(nil), // 4: opencensus.proto.agent.common.v1.Node
- (*v11.TraceConfig)(nil), // 5: opencensus.proto.trace.v1.TraceConfig
- (*v11.Span)(nil), // 6: opencensus.proto.trace.v1.Span
- (*v12.Resource)(nil), // 7: opencensus.proto.resource.v1.Resource
-}
-var file_opencensus_proto_agent_trace_v1_trace_service_proto_depIdxs = []int32{
- 4, // 0: opencensus.proto.agent.trace.v1.CurrentLibraryConfig.node:type_name -> opencensus.proto.agent.common.v1.Node
- 5, // 1: opencensus.proto.agent.trace.v1.CurrentLibraryConfig.config:type_name -> opencensus.proto.trace.v1.TraceConfig
- 4, // 2: opencensus.proto.agent.trace.v1.UpdatedLibraryConfig.node:type_name -> opencensus.proto.agent.common.v1.Node
- 5, // 3: opencensus.proto.agent.trace.v1.UpdatedLibraryConfig.config:type_name -> opencensus.proto.trace.v1.TraceConfig
- 4, // 4: opencensus.proto.agent.trace.v1.ExportTraceServiceRequest.node:type_name -> opencensus.proto.agent.common.v1.Node
- 6, // 5: opencensus.proto.agent.trace.v1.ExportTraceServiceRequest.spans:type_name -> opencensus.proto.trace.v1.Span
- 7, // 6: opencensus.proto.agent.trace.v1.ExportTraceServiceRequest.resource:type_name -> opencensus.proto.resource.v1.Resource
- 0, // 7: opencensus.proto.agent.trace.v1.TraceService.Config:input_type -> opencensus.proto.agent.trace.v1.CurrentLibraryConfig
- 2, // 8: opencensus.proto.agent.trace.v1.TraceService.Export:input_type -> opencensus.proto.agent.trace.v1.ExportTraceServiceRequest
- 1, // 9: opencensus.proto.agent.trace.v1.TraceService.Config:output_type -> opencensus.proto.agent.trace.v1.UpdatedLibraryConfig
- 3, // 10: opencensus.proto.agent.trace.v1.TraceService.Export:output_type -> opencensus.proto.agent.trace.v1.ExportTraceServiceResponse
- 9, // [9:11] is the sub-list for method output_type
- 7, // [7:9] is the sub-list for method input_type
- 7, // [7:7] is the sub-list for extension type_name
- 7, // [7:7] is the sub-list for extension extendee
- 0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_agent_trace_v1_trace_service_proto_init() }
-func file_opencensus_proto_agent_trace_v1_trace_service_proto_init() {
- if File_opencensus_proto_agent_trace_v1_trace_service_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CurrentLibraryConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UpdatedLibraryConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExportTraceServiceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExportTraceServiceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 4,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_opencensus_proto_agent_trace_v1_trace_service_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_agent_trace_v1_trace_service_proto_depIdxs,
- MessageInfos: file_opencensus_proto_agent_trace_v1_trace_service_proto_msgTypes,
- }.Build()
- File_opencensus_proto_agent_trace_v1_trace_service_proto = out.File
- file_opencensus_proto_agent_trace_v1_trace_service_proto_rawDesc = nil
- file_opencensus_proto_agent_trace_v1_trace_service_proto_goTypes = nil
- file_opencensus_proto_agent_trace_v1_trace_service_proto_depIdxs = nil
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConnInterface
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion6
-
-// TraceServiceClient is the client API for TraceService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type TraceServiceClient interface {
- // After initialization, this RPC must be kept alive for the entire life of
- // the application. The agent pushes configs down to applications via a
- // stream.
- Config(ctx context.Context, opts ...grpc.CallOption) (TraceService_ConfigClient, error)
- // For performance reasons, it is recommended to keep this RPC
- // alive for the entire life of the application.
- Export(ctx context.Context, opts ...grpc.CallOption) (TraceService_ExportClient, error)
-}
-
-type traceServiceClient struct {
- cc grpc.ClientConnInterface
-}
-
-func NewTraceServiceClient(cc grpc.ClientConnInterface) TraceServiceClient {
- return &traceServiceClient{cc}
-}
-
-func (c *traceServiceClient) Config(ctx context.Context, opts ...grpc.CallOption) (TraceService_ConfigClient, error) {
- stream, err := c.cc.NewStream(ctx, &_TraceService_serviceDesc.Streams[0], "/opencensus.proto.agent.trace.v1.TraceService/Config", opts...)
- if err != nil {
- return nil, err
- }
- x := &traceServiceConfigClient{stream}
- return x, nil
-}
-
-type TraceService_ConfigClient interface {
- Send(*CurrentLibraryConfig) error
- Recv() (*UpdatedLibraryConfig, error)
- grpc.ClientStream
-}
-
-type traceServiceConfigClient struct {
- grpc.ClientStream
-}
-
-func (x *traceServiceConfigClient) Send(m *CurrentLibraryConfig) error {
- return x.ClientStream.SendMsg(m)
-}
-
-func (x *traceServiceConfigClient) Recv() (*UpdatedLibraryConfig, error) {
- m := new(UpdatedLibraryConfig)
- if err := x.ClientStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-func (c *traceServiceClient) Export(ctx context.Context, opts ...grpc.CallOption) (TraceService_ExportClient, error) {
- stream, err := c.cc.NewStream(ctx, &_TraceService_serviceDesc.Streams[1], "/opencensus.proto.agent.trace.v1.TraceService/Export", opts...)
- if err != nil {
- return nil, err
- }
- x := &traceServiceExportClient{stream}
- return x, nil
-}
-
-type TraceService_ExportClient interface {
- Send(*ExportTraceServiceRequest) error
- Recv() (*ExportTraceServiceResponse, error)
- grpc.ClientStream
-}
-
-type traceServiceExportClient struct {
- grpc.ClientStream
-}
-
-func (x *traceServiceExportClient) Send(m *ExportTraceServiceRequest) error {
- return x.ClientStream.SendMsg(m)
-}
-
-func (x *traceServiceExportClient) Recv() (*ExportTraceServiceResponse, error) {
- m := new(ExportTraceServiceResponse)
- if err := x.ClientStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-// TraceServiceServer is the server API for TraceService service.
-type TraceServiceServer interface {
- // After initialization, this RPC must be kept alive for the entire life of
- // the application. The agent pushes configs down to applications via a
- // stream.
- Config(TraceService_ConfigServer) error
- // For performance reasons, it is recommended to keep this RPC
- // alive for the entire life of the application.
- Export(TraceService_ExportServer) error
-}
-
-// UnimplementedTraceServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedTraceServiceServer struct {
-}
-
-func (*UnimplementedTraceServiceServer) Config(TraceService_ConfigServer) error {
- return status.Errorf(codes.Unimplemented, "method Config not implemented")
-}
-func (*UnimplementedTraceServiceServer) Export(TraceService_ExportServer) error {
- return status.Errorf(codes.Unimplemented, "method Export not implemented")
-}
-
-func RegisterTraceServiceServer(s *grpc.Server, srv TraceServiceServer) {
- s.RegisterService(&_TraceService_serviceDesc, srv)
-}
-
-func _TraceService_Config_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(TraceServiceServer).Config(&traceServiceConfigServer{stream})
-}
-
-type TraceService_ConfigServer interface {
- Send(*UpdatedLibraryConfig) error
- Recv() (*CurrentLibraryConfig, error)
- grpc.ServerStream
-}
-
-type traceServiceConfigServer struct {
- grpc.ServerStream
-}
-
-func (x *traceServiceConfigServer) Send(m *UpdatedLibraryConfig) error {
- return x.ServerStream.SendMsg(m)
-}
-
-func (x *traceServiceConfigServer) Recv() (*CurrentLibraryConfig, error) {
- m := new(CurrentLibraryConfig)
- if err := x.ServerStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-func _TraceService_Export_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(TraceServiceServer).Export(&traceServiceExportServer{stream})
-}
-
-type TraceService_ExportServer interface {
- Send(*ExportTraceServiceResponse) error
- Recv() (*ExportTraceServiceRequest, error)
- grpc.ServerStream
-}
-
-type traceServiceExportServer struct {
- grpc.ServerStream
-}
-
-func (x *traceServiceExportServer) Send(m *ExportTraceServiceResponse) error {
- return x.ServerStream.SendMsg(m)
-}
-
-func (x *traceServiceExportServer) Recv() (*ExportTraceServiceRequest, error) {
- m := new(ExportTraceServiceRequest)
- if err := x.ServerStream.RecvMsg(m); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-var _TraceService_serviceDesc = grpc.ServiceDesc{
- ServiceName: "opencensus.proto.agent.trace.v1.TraceService",
- HandlerType: (*TraceServiceServer)(nil),
- Methods: []grpc.MethodDesc{},
- Streams: []grpc.StreamDesc{
- {
- StreamName: "Config",
- Handler: _TraceService_Config_Handler,
- ServerStreams: true,
- ClientStreams: true,
- },
- {
- StreamName: "Export",
- Handler: _TraceService_Export_Handler,
- ServerStreams: true,
- ClientStreams: true,
- },
- },
- Metadata: "opencensus/proto/agent/trace/v1/trace_service.proto",
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.gw.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.gw.go
deleted file mode 100644
index 7808e9fb..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/agent/trace/v1/trace_service.pb.gw.go
+++ /dev/null
@@ -1,160 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: opencensus/proto/agent/trace/v1/trace_service.proto
-
-/*
-Package v1 is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package v1
-
-import (
- "context"
- "io"
- "net/http"
-
- "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
- "github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
- "google.golang.org/grpc"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/grpclog"
- "google.golang.org/grpc/metadata"
- "google.golang.org/grpc/status"
- "google.golang.org/protobuf/proto"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = metadata.Join
-
-func request_TraceService_Export_0(ctx context.Context, marshaler runtime.Marshaler, client TraceServiceClient, req *http.Request, pathParams map[string]string) (TraceService_ExportClient, runtime.ServerMetadata, error) {
- var metadata runtime.ServerMetadata
- stream, err := client.Export(ctx)
- if err != nil {
- grpclog.Infof("Failed to start streaming: %v", err)
- return nil, metadata, err
- }
- dec := marshaler.NewDecoder(req.Body)
- handleSend := func() error {
- var protoReq ExportTraceServiceRequest
- err := dec.Decode(&protoReq)
- if err == io.EOF {
- return err
- }
- if err != nil {
- grpclog.Infof("Failed to decode request: %v", err)
- return err
- }
- if err := stream.Send(&protoReq); err != nil {
- grpclog.Infof("Failed to send request: %v", err)
- return err
- }
- return nil
- }
- go func() {
- for {
- if err := handleSend(); err != nil {
- break
- }
- }
- if err := stream.CloseSend(); err != nil {
- grpclog.Infof("Failed to terminate client stream: %v", err)
- }
- }()
- header, err := stream.Header()
- if err != nil {
- grpclog.Infof("Failed to get header from client: %v", err)
- return nil, metadata, err
- }
- metadata.HeaderMD = header
- return stream, metadata, nil
-}
-
-// RegisterTraceServiceHandlerServer registers the http handlers for service TraceService to "mux".
-// UnaryRPC :call TraceServiceServer directly.
-// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterTraceServiceHandlerFromEndpoint instead.
-func RegisterTraceServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server TraceServiceServer) error {
-
- mux.Handle("POST", pattern_TraceService_Export_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport")
- _, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- })
-
- return nil
-}
-
-// RegisterTraceServiceHandlerFromEndpoint is same as RegisterTraceServiceHandler but
-// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterTraceServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
- conn, err := grpc.Dial(endpoint, opts...)
- if err != nil {
- return err
- }
- defer func() {
- if err != nil {
- if cerr := conn.Close(); cerr != nil {
- grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
- }
- return
- }
- go func() {
- <-ctx.Done()
- if cerr := conn.Close(); cerr != nil {
- grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
- }
- }()
- }()
-
- return RegisterTraceServiceHandler(ctx, mux, conn)
-}
-
-// RegisterTraceServiceHandler registers the http handlers for service TraceService to "mux".
-// The handlers forward requests to the grpc endpoint over "conn".
-func RegisterTraceServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
- return RegisterTraceServiceHandlerClient(ctx, mux, NewTraceServiceClient(conn))
-}
-
-// RegisterTraceServiceHandlerClient registers the http handlers for service TraceService
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "TraceServiceClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "TraceServiceClient"
-// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "TraceServiceClient" to call the correct interceptors.
-func RegisterTraceServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client TraceServiceClient) error {
-
- mux.Handle("POST", pattern_TraceService_Export_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
- ctx, cancel := context.WithCancel(req.Context())
- defer cancel()
- inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
- rctx, err := runtime.AnnotateContext(ctx, mux, req, "/opencensus.proto.agent.trace.v1.TraceService/Export", runtime.WithHTTPPathPattern("/v1/trace"))
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
- resp, md, err := request_TraceService_Export_0(rctx, inboundMarshaler, client, req, pathParams)
- ctx = runtime.NewServerMetadataContext(ctx, md)
- if err != nil {
- runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
- return
- }
-
- forward_TraceService_Export_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...)
-
- })
-
- return nil
-}
-
-var (
- pattern_TraceService_Export_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "trace"}, ""))
-)
-
-var (
- forward_TraceService_Export_0 = runtime.ForwardResponseStream
-)
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1/metrics.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1/metrics.pb.go
deleted file mode 100644
index 0cac88b2..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1/metrics.pb.go
+++ /dev/null
@@ -1,1632 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// This package describes the Metrics data model. It is currently experimental
-// but may eventually become the wire format for metrics. Please see
-// https://github.com/census-instrumentation/opencensus-specs/blob/master/stats/Metrics.md
-// for more details.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/metrics/v1/metrics.proto
-
-package v1
-
-import (
- v1 "github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- timestamppb "google.golang.org/protobuf/types/known/timestamppb"
- wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// The kind of metric. It describes how the data is reported.
-//
-// A gauge is an instantaneous measurement of a value.
-//
-// A cumulative measurement is a value accumulated over a time interval. In
-// a time series, cumulative measurements should have the same start time,
-// increasing values and increasing end times, until an event resets the
-// cumulative value to zero and sets a new start time for the following
-// points.
-type MetricDescriptor_Type int32
-
-const (
- // Do not use this default value.
- MetricDescriptor_UNSPECIFIED MetricDescriptor_Type = 0
- // Integer gauge. The value can go both up and down.
- MetricDescriptor_GAUGE_INT64 MetricDescriptor_Type = 1
- // Floating point gauge. The value can go both up and down.
- MetricDescriptor_GAUGE_DOUBLE MetricDescriptor_Type = 2
- // Distribution gauge measurement. The count and sum can go both up and
- // down. Recorded values are always >= 0.
- // Used in scenarios like a snapshot of time the current items in a queue
- // have spent there.
- MetricDescriptor_GAUGE_DISTRIBUTION MetricDescriptor_Type = 3
- // Integer cumulative measurement. The value cannot decrease, if resets
- // then the start_time should also be reset.
- MetricDescriptor_CUMULATIVE_INT64 MetricDescriptor_Type = 4
- // Floating point cumulative measurement. The value cannot decrease, if
- // resets then the start_time should also be reset. Recorded values are
- // always >= 0.
- MetricDescriptor_CUMULATIVE_DOUBLE MetricDescriptor_Type = 5
- // Distribution cumulative measurement. The count and sum cannot decrease,
- // if resets then the start_time should also be reset.
- MetricDescriptor_CUMULATIVE_DISTRIBUTION MetricDescriptor_Type = 6
- // Some frameworks implemented Histograms as a summary of observations
- // (usually things like request durations and response sizes). While it
- // also provides a total count of observations and a sum of all observed
- // values, it calculates configurable percentiles over a sliding time
- // window. This is not recommended, since it cannot be aggregated.
- MetricDescriptor_SUMMARY MetricDescriptor_Type = 7
-)
-
-// Enum value maps for MetricDescriptor_Type.
-var (
- MetricDescriptor_Type_name = map[int32]string{
- 0: "UNSPECIFIED",
- 1: "GAUGE_INT64",
- 2: "GAUGE_DOUBLE",
- 3: "GAUGE_DISTRIBUTION",
- 4: "CUMULATIVE_INT64",
- 5: "CUMULATIVE_DOUBLE",
- 6: "CUMULATIVE_DISTRIBUTION",
- 7: "SUMMARY",
- }
- MetricDescriptor_Type_value = map[string]int32{
- "UNSPECIFIED": 0,
- "GAUGE_INT64": 1,
- "GAUGE_DOUBLE": 2,
- "GAUGE_DISTRIBUTION": 3,
- "CUMULATIVE_INT64": 4,
- "CUMULATIVE_DOUBLE": 5,
- "CUMULATIVE_DISTRIBUTION": 6,
- "SUMMARY": 7,
- }
-)
-
-func (x MetricDescriptor_Type) Enum() *MetricDescriptor_Type {
- p := new(MetricDescriptor_Type)
- *p = x
- return p
-}
-
-func (x MetricDescriptor_Type) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (MetricDescriptor_Type) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_metrics_v1_metrics_proto_enumTypes[0].Descriptor()
-}
-
-func (MetricDescriptor_Type) Type() protoreflect.EnumType {
- return &file_opencensus_proto_metrics_v1_metrics_proto_enumTypes[0]
-}
-
-func (x MetricDescriptor_Type) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use MetricDescriptor_Type.Descriptor instead.
-func (MetricDescriptor_Type) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{1, 0}
-}
-
-// Defines a Metric which has one or more timeseries.
-type Metric struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The descriptor of the Metric.
- // TODO(issue #152): consider only sending the name of descriptor for
- // optimization.
- MetricDescriptor *MetricDescriptor `protobuf:"bytes,1,opt,name=metric_descriptor,json=metricDescriptor,proto3" json:"metric_descriptor,omitempty"`
- // One or more timeseries for a single metric, where each timeseries has
- // one or more points.
- Timeseries []*TimeSeries `protobuf:"bytes,2,rep,name=timeseries,proto3" json:"timeseries,omitempty"`
- // The resource for the metric. If unset, it may be set to a default value
- // provided for a sequence of messages in an RPC stream.
- Resource *v1.Resource `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"`
-}
-
-func (x *Metric) Reset() {
- *x = Metric{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Metric) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Metric) ProtoMessage() {}
-
-func (x *Metric) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Metric.ProtoReflect.Descriptor instead.
-func (*Metric) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Metric) GetMetricDescriptor() *MetricDescriptor {
- if x != nil {
- return x.MetricDescriptor
- }
- return nil
-}
-
-func (x *Metric) GetTimeseries() []*TimeSeries {
- if x != nil {
- return x.Timeseries
- }
- return nil
-}
-
-func (x *Metric) GetResource() *v1.Resource {
- if x != nil {
- return x.Resource
- }
- return nil
-}
-
-// Defines a metric type and its schema.
-type MetricDescriptor struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The metric type, including its DNS name prefix. It must be unique.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // A detailed description of the metric, which can be used in documentation.
- Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
- // The unit in which the metric value is reported. Follows the format
- // described by http://unitsofmeasure.org/ucum.html.
- Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
- Type MetricDescriptor_Type `protobuf:"varint,4,opt,name=type,proto3,enum=opencensus.proto.metrics.v1.MetricDescriptor_Type" json:"type,omitempty"`
- // The label keys associated with the metric descriptor.
- LabelKeys []*LabelKey `protobuf:"bytes,5,rep,name=label_keys,json=labelKeys,proto3" json:"label_keys,omitempty"`
-}
-
-func (x *MetricDescriptor) Reset() {
- *x = MetricDescriptor{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *MetricDescriptor) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*MetricDescriptor) ProtoMessage() {}
-
-func (x *MetricDescriptor) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use MetricDescriptor.ProtoReflect.Descriptor instead.
-func (*MetricDescriptor) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *MetricDescriptor) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *MetricDescriptor) GetDescription() string {
- if x != nil {
- return x.Description
- }
- return ""
-}
-
-func (x *MetricDescriptor) GetUnit() string {
- if x != nil {
- return x.Unit
- }
- return ""
-}
-
-func (x *MetricDescriptor) GetType() MetricDescriptor_Type {
- if x != nil {
- return x.Type
- }
- return MetricDescriptor_UNSPECIFIED
-}
-
-func (x *MetricDescriptor) GetLabelKeys() []*LabelKey {
- if x != nil {
- return x.LabelKeys
- }
- return nil
-}
-
-// Defines a label key associated with a metric descriptor.
-type LabelKey struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The key for the label.
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // A human-readable description of what this label key represents.
- Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
-}
-
-func (x *LabelKey) Reset() {
- *x = LabelKey{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LabelKey) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LabelKey) ProtoMessage() {}
-
-func (x *LabelKey) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use LabelKey.ProtoReflect.Descriptor instead.
-func (*LabelKey) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *LabelKey) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *LabelKey) GetDescription() string {
- if x != nil {
- return x.Description
- }
- return ""
-}
-
-// A collection of data points that describes the time-varying values
-// of a metric.
-type TimeSeries struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Must be present for cumulative metrics. The time when the cumulative value
- // was reset to zero. Exclusive. The cumulative value is over the time interval
- // (start_timestamp, timestamp]. If not specified, the backend can use the
- // previous recorded value.
- StartTimestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"`
- // The set of label values that uniquely identify this timeseries. Applies to
- // all points. The order of label values must match that of label keys in the
- // metric descriptor.
- LabelValues []*LabelValue `protobuf:"bytes,2,rep,name=label_values,json=labelValues,proto3" json:"label_values,omitempty"`
- // The data points of this timeseries. Point.value type MUST match the
- // MetricDescriptor.type.
- Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
-}
-
-func (x *TimeSeries) Reset() {
- *x = TimeSeries{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *TimeSeries) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TimeSeries) ProtoMessage() {}
-
-func (x *TimeSeries) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TimeSeries.ProtoReflect.Descriptor instead.
-func (*TimeSeries) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *TimeSeries) GetStartTimestamp() *timestamppb.Timestamp {
- if x != nil {
- return x.StartTimestamp
- }
- return nil
-}
-
-func (x *TimeSeries) GetLabelValues() []*LabelValue {
- if x != nil {
- return x.LabelValues
- }
- return nil
-}
-
-func (x *TimeSeries) GetPoints() []*Point {
- if x != nil {
- return x.Points
- }
- return nil
-}
-
-type LabelValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The value for the label.
- Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
- // If false the value field is ignored and considered not set.
- // This is used to differentiate a missing label from an empty string.
- HasValue bool `protobuf:"varint,2,opt,name=has_value,json=hasValue,proto3" json:"has_value,omitempty"`
-}
-
-func (x *LabelValue) Reset() {
- *x = LabelValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LabelValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LabelValue) ProtoMessage() {}
-
-func (x *LabelValue) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use LabelValue.ProtoReflect.Descriptor instead.
-func (*LabelValue) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *LabelValue) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-func (x *LabelValue) GetHasValue() bool {
- if x != nil {
- return x.HasValue
- }
- return false
-}
-
-// A timestamped measurement.
-type Point struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The moment when this point was recorded. Inclusive.
- // If not specified, the timestamp will be decided by the backend.
- Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
- // The actual point value.
- //
- // Types that are assignable to Value:
- // *Point_Int64Value
- // *Point_DoubleValue
- // *Point_DistributionValue
- // *Point_SummaryValue
- Value isPoint_Value `protobuf_oneof:"value"`
-}
-
-func (x *Point) Reset() {
- *x = Point{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Point) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Point) ProtoMessage() {}
-
-func (x *Point) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Point.ProtoReflect.Descriptor instead.
-func (*Point) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *Point) GetTimestamp() *timestamppb.Timestamp {
- if x != nil {
- return x.Timestamp
- }
- return nil
-}
-
-func (m *Point) GetValue() isPoint_Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-func (x *Point) GetInt64Value() int64 {
- if x, ok := x.GetValue().(*Point_Int64Value); ok {
- return x.Int64Value
- }
- return 0
-}
-
-func (x *Point) GetDoubleValue() float64 {
- if x, ok := x.GetValue().(*Point_DoubleValue); ok {
- return x.DoubleValue
- }
- return 0
-}
-
-func (x *Point) GetDistributionValue() *DistributionValue {
- if x, ok := x.GetValue().(*Point_DistributionValue); ok {
- return x.DistributionValue
- }
- return nil
-}
-
-func (x *Point) GetSummaryValue() *SummaryValue {
- if x, ok := x.GetValue().(*Point_SummaryValue); ok {
- return x.SummaryValue
- }
- return nil
-}
-
-type isPoint_Value interface {
- isPoint_Value()
-}
-
-type Point_Int64Value struct {
- // A 64-bit integer.
- Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,proto3,oneof"`
-}
-
-type Point_DoubleValue struct {
- // A 64-bit double-precision floating-point number.
- DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
-}
-
-type Point_DistributionValue struct {
- // A distribution value.
- DistributionValue *DistributionValue `protobuf:"bytes,4,opt,name=distribution_value,json=distributionValue,proto3,oneof"`
-}
-
-type Point_SummaryValue struct {
- // A summary value. This is not recommended, since it cannot be aggregated.
- SummaryValue *SummaryValue `protobuf:"bytes,5,opt,name=summary_value,json=summaryValue,proto3,oneof"`
-}
-
-func (*Point_Int64Value) isPoint_Value() {}
-
-func (*Point_DoubleValue) isPoint_Value() {}
-
-func (*Point_DistributionValue) isPoint_Value() {}
-
-func (*Point_SummaryValue) isPoint_Value() {}
-
-// Distribution contains summary statistics for a population of values. It
-// optionally contains a histogram representing the distribution of those
-// values across a set of buckets.
-type DistributionValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The number of values in the population. Must be non-negative. This value
- // must equal the sum of the values in bucket_counts if a histogram is
- // provided.
- Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
- // The sum of the values in the population. If count is zero then this field
- // must be zero.
- Sum float64 `protobuf:"fixed64,2,opt,name=sum,proto3" json:"sum,omitempty"`
- // The sum of squared deviations from the mean of the values in the
- // population. For values x_i this is:
- //
- // Sum[i=1..n]((x_i - mean)^2)
- //
- // Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
- // describes Welford's method for accumulating this sum in one pass.
- //
- // If count is zero then this field must be zero.
- SumOfSquaredDeviation float64 `protobuf:"fixed64,3,opt,name=sum_of_squared_deviation,json=sumOfSquaredDeviation,proto3" json:"sum_of_squared_deviation,omitempty"`
- // Don't change bucket boundaries within a TimeSeries if your backend doesn't
- // support this.
- // TODO(issue #152): consider not required to send bucket options for
- // optimization.
- BucketOptions *DistributionValue_BucketOptions `protobuf:"bytes,4,opt,name=bucket_options,json=bucketOptions,proto3" json:"bucket_options,omitempty"`
- // If the distribution does not have a histogram, then omit this field.
- // If there is a histogram, then the sum of the values in the Bucket counts
- // must equal the value in the count field of the distribution.
- Buckets []*DistributionValue_Bucket `protobuf:"bytes,5,rep,name=buckets,proto3" json:"buckets,omitempty"`
-}
-
-func (x *DistributionValue) Reset() {
- *x = DistributionValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DistributionValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DistributionValue) ProtoMessage() {}
-
-func (x *DistributionValue) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DistributionValue.ProtoReflect.Descriptor instead.
-func (*DistributionValue) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *DistributionValue) GetCount() int64 {
- if x != nil {
- return x.Count
- }
- return 0
-}
-
-func (x *DistributionValue) GetSum() float64 {
- if x != nil {
- return x.Sum
- }
- return 0
-}
-
-func (x *DistributionValue) GetSumOfSquaredDeviation() float64 {
- if x != nil {
- return x.SumOfSquaredDeviation
- }
- return 0
-}
-
-func (x *DistributionValue) GetBucketOptions() *DistributionValue_BucketOptions {
- if x != nil {
- return x.BucketOptions
- }
- return nil
-}
-
-func (x *DistributionValue) GetBuckets() []*DistributionValue_Bucket {
- if x != nil {
- return x.Buckets
- }
- return nil
-}
-
-// The start_timestamp only applies to the count and sum in the SummaryValue.
-type SummaryValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The total number of recorded values since start_time. Optional since
- // some systems don't expose this.
- Count *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=count,proto3" json:"count,omitempty"`
- // The total sum of recorded values since start_time. Optional since some
- // systems don't expose this. If count is zero then this field must be zero.
- // This field must be unset if the sum is not available.
- Sum *wrapperspb.DoubleValue `protobuf:"bytes,2,opt,name=sum,proto3" json:"sum,omitempty"`
- // Values calculated over an arbitrary time window.
- Snapshot *SummaryValue_Snapshot `protobuf:"bytes,3,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
-}
-
-func (x *SummaryValue) Reset() {
- *x = SummaryValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SummaryValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SummaryValue) ProtoMessage() {}
-
-func (x *SummaryValue) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SummaryValue.ProtoReflect.Descriptor instead.
-func (*SummaryValue) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *SummaryValue) GetCount() *wrapperspb.Int64Value {
- if x != nil {
- return x.Count
- }
- return nil
-}
-
-func (x *SummaryValue) GetSum() *wrapperspb.DoubleValue {
- if x != nil {
- return x.Sum
- }
- return nil
-}
-
-func (x *SummaryValue) GetSnapshot() *SummaryValue_Snapshot {
- if x != nil {
- return x.Snapshot
- }
- return nil
-}
-
-// A Distribution may optionally contain a histogram of the values in the
-// population. The bucket boundaries for that histogram are described by
-// BucketOptions.
-//
-// If bucket_options has no type, then there is no histogram associated with
-// the Distribution.
-type DistributionValue_BucketOptions struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to Type:
- // *DistributionValue_BucketOptions_Explicit_
- Type isDistributionValue_BucketOptions_Type `protobuf_oneof:"type"`
-}
-
-func (x *DistributionValue_BucketOptions) Reset() {
- *x = DistributionValue_BucketOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DistributionValue_BucketOptions) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DistributionValue_BucketOptions) ProtoMessage() {}
-
-func (x *DistributionValue_BucketOptions) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DistributionValue_BucketOptions.ProtoReflect.Descriptor instead.
-func (*DistributionValue_BucketOptions) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6, 0}
-}
-
-func (m *DistributionValue_BucketOptions) GetType() isDistributionValue_BucketOptions_Type {
- if m != nil {
- return m.Type
- }
- return nil
-}
-
-func (x *DistributionValue_BucketOptions) GetExplicit() *DistributionValue_BucketOptions_Explicit {
- if x, ok := x.GetType().(*DistributionValue_BucketOptions_Explicit_); ok {
- return x.Explicit
- }
- return nil
-}
-
-type isDistributionValue_BucketOptions_Type interface {
- isDistributionValue_BucketOptions_Type()
-}
-
-type DistributionValue_BucketOptions_Explicit_ struct {
- // Bucket with explicit bounds.
- Explicit *DistributionValue_BucketOptions_Explicit `protobuf:"bytes,1,opt,name=explicit,proto3,oneof"`
-}
-
-func (*DistributionValue_BucketOptions_Explicit_) isDistributionValue_BucketOptions_Type() {}
-
-type DistributionValue_Bucket struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The number of values in each bucket of the histogram, as described in
- // bucket_bounds.
- Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
- // If the distribution does not have a histogram, then omit this field.
- Exemplar *DistributionValue_Exemplar `protobuf:"bytes,2,opt,name=exemplar,proto3" json:"exemplar,omitempty"`
-}
-
-func (x *DistributionValue_Bucket) Reset() {
- *x = DistributionValue_Bucket{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DistributionValue_Bucket) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DistributionValue_Bucket) ProtoMessage() {}
-
-func (x *DistributionValue_Bucket) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DistributionValue_Bucket.ProtoReflect.Descriptor instead.
-func (*DistributionValue_Bucket) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6, 1}
-}
-
-func (x *DistributionValue_Bucket) GetCount() int64 {
- if x != nil {
- return x.Count
- }
- return 0
-}
-
-func (x *DistributionValue_Bucket) GetExemplar() *DistributionValue_Exemplar {
- if x != nil {
- return x.Exemplar
- }
- return nil
-}
-
-// Exemplars are example points that may be used to annotate aggregated
-// Distribution values. They are metadata that gives information about a
-// particular value added to a Distribution bucket.
-type DistributionValue_Exemplar struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Value of the exemplar point. It determines which bucket the exemplar
- // belongs to.
- Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
- // The observation (sampling) time of the above value.
- Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
- // Contextual information about the example value.
- Attachments map[string]string `protobuf:"bytes,3,rep,name=attachments,proto3" json:"attachments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-func (x *DistributionValue_Exemplar) Reset() {
- *x = DistributionValue_Exemplar{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DistributionValue_Exemplar) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DistributionValue_Exemplar) ProtoMessage() {}
-
-func (x *DistributionValue_Exemplar) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DistributionValue_Exemplar.ProtoReflect.Descriptor instead.
-func (*DistributionValue_Exemplar) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6, 2}
-}
-
-func (x *DistributionValue_Exemplar) GetValue() float64 {
- if x != nil {
- return x.Value
- }
- return 0
-}
-
-func (x *DistributionValue_Exemplar) GetTimestamp() *timestamppb.Timestamp {
- if x != nil {
- return x.Timestamp
- }
- return nil
-}
-
-func (x *DistributionValue_Exemplar) GetAttachments() map[string]string {
- if x != nil {
- return x.Attachments
- }
- return nil
-}
-
-// Specifies a set of buckets with arbitrary upper-bounds.
-// This defines size(bounds) + 1 (= N) buckets. The boundaries for bucket
-// index i are:
-//
-// [0, bucket_bounds[i]) for i == 0
-// [bucket_bounds[i-1], bucket_bounds[i]) for 0 < i < N-1
-// [bucket_bounds[i], +infinity) for i == N-1
-type DistributionValue_BucketOptions_Explicit struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The values must be strictly increasing and > 0.
- Bounds []float64 `protobuf:"fixed64,1,rep,packed,name=bounds,proto3" json:"bounds,omitempty"`
-}
-
-func (x *DistributionValue_BucketOptions_Explicit) Reset() {
- *x = DistributionValue_BucketOptions_Explicit{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DistributionValue_BucketOptions_Explicit) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DistributionValue_BucketOptions_Explicit) ProtoMessage() {}
-
-func (x *DistributionValue_BucketOptions_Explicit) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DistributionValue_BucketOptions_Explicit.ProtoReflect.Descriptor instead.
-func (*DistributionValue_BucketOptions_Explicit) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{6, 0, 0}
-}
-
-func (x *DistributionValue_BucketOptions_Explicit) GetBounds() []float64 {
- if x != nil {
- return x.Bounds
- }
- return nil
-}
-
-// The values in this message can be reset at arbitrary unknown times, with
-// the requirement that all of them are reset at the same time.
-type SummaryValue_Snapshot struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The number of values in the snapshot. Optional since some systems don't
- // expose this.
- Count *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=count,proto3" json:"count,omitempty"`
- // The sum of values in the snapshot. Optional since some systems don't
- // expose this. If count is zero then this field must be zero or not set
- // (if not supported).
- Sum *wrapperspb.DoubleValue `protobuf:"bytes,2,opt,name=sum,proto3" json:"sum,omitempty"`
- // A list of values at different percentiles of the distribution calculated
- // from the current snapshot. The percentiles must be strictly increasing.
- PercentileValues []*SummaryValue_Snapshot_ValueAtPercentile `protobuf:"bytes,3,rep,name=percentile_values,json=percentileValues,proto3" json:"percentile_values,omitempty"`
-}
-
-func (x *SummaryValue_Snapshot) Reset() {
- *x = SummaryValue_Snapshot{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SummaryValue_Snapshot) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SummaryValue_Snapshot) ProtoMessage() {}
-
-func (x *SummaryValue_Snapshot) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SummaryValue_Snapshot.ProtoReflect.Descriptor instead.
-func (*SummaryValue_Snapshot) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{7, 0}
-}
-
-func (x *SummaryValue_Snapshot) GetCount() *wrapperspb.Int64Value {
- if x != nil {
- return x.Count
- }
- return nil
-}
-
-func (x *SummaryValue_Snapshot) GetSum() *wrapperspb.DoubleValue {
- if x != nil {
- return x.Sum
- }
- return nil
-}
-
-func (x *SummaryValue_Snapshot) GetPercentileValues() []*SummaryValue_Snapshot_ValueAtPercentile {
- if x != nil {
- return x.PercentileValues
- }
- return nil
-}
-
-// Represents the value at a given percentile of a distribution.
-type SummaryValue_Snapshot_ValueAtPercentile struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The percentile of a distribution. Must be in the interval
- // (0.0, 100.0].
- Percentile float64 `protobuf:"fixed64,1,opt,name=percentile,proto3" json:"percentile,omitempty"`
- // The value at the given percentile of a distribution.
- Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *SummaryValue_Snapshot_ValueAtPercentile) Reset() {
- *x = SummaryValue_Snapshot_ValueAtPercentile{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SummaryValue_Snapshot_ValueAtPercentile) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SummaryValue_Snapshot_ValueAtPercentile) ProtoMessage() {}
-
-func (x *SummaryValue_Snapshot_ValueAtPercentile) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SummaryValue_Snapshot_ValueAtPercentile.ProtoReflect.Descriptor instead.
-func (*SummaryValue_Snapshot_ValueAtPercentile) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP(), []int{7, 0, 0}
-}
-
-func (x *SummaryValue_Snapshot_ValueAtPercentile) GetPercentile() float64 {
- if x != nil {
- return x.Percentile
- }
- return 0
-}
-
-func (x *SummaryValue_Snapshot_ValueAtPercentile) GetValue() float64 {
- if x != nil {
- return x.Value
- }
- return 0
-}
-
-var File_opencensus_proto_metrics_v1_metrics_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_metrics_v1_metrics_proto_rawDesc = []byte{
- 0x0a, 0x29, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
- 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x12, 0x5a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x64, 0x65, 0x73, 0x63,
- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x47, 0x0a,
- 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65,
- 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x65, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x96, 0x03, 0x0a, 0x10, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12,
- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65,
- 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63,
- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
- 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18,
- 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x6c, 0x61,
- 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
- 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34,
- 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42,
- 0x4c, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x44, 0x49,
- 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10,
- 0x43, 0x55, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34,
- 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x55, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45,
- 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x55, 0x4d,
- 0x55, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55,
- 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52,
- 0x59, 0x10, 0x07, 0x22, 0x3e, 0x0a, 0x08, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x22, 0xd9, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69,
- 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c,
- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x62, 0x65,
- 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76,
- 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22,
- 0x3f, 0x0a, 0x0a, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x22, 0xc5, 0x02, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74,
- 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c,
- 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52,
- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5f, 0x0a, 0x12,
- 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a,
- 0x0d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
- 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48,
- 0x00, 0x52, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
- 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcb, 0x06, 0x0a, 0x11, 0x44, 0x69, 0x73,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14,
- 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x01, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x5f, 0x6f, 0x66,
- 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x73, 0x75, 0x6d, 0x4f, 0x66, 0x53,
- 0x71, 0x75, 0x61, 0x72, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x63, 0x0a, 0x0e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65,
- 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
- 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
- 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x62, 0x75,
- 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0xa0, 0x01, 0x0a, 0x0d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69,
- 0x63, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
- 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
- 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74,
- 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x1a, 0x22, 0x0a, 0x08,
- 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x6e,
- 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73,
- 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x73, 0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b,
- 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d,
- 0x70, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70,
- 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x1a, 0x86, 0x02,
- 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
- 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x6a, 0x0a, 0x0b, 0x61, 0x74,
- 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x48, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69,
- 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e,
- 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d,
- 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63,
- 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68,
- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xef, 0x03, 0x0a, 0x0c, 0x53, 0x75, 0x6d, 0x6d, 0x61,
- 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x75,
- 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x4e, 0x0a, 0x08, 0x73, 0x6e,
- 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61,
- 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
- 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xab, 0x02, 0x0a, 0x08, 0x53,
- 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x75,
- 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x71, 0x0a, 0x11, 0x70, 0x65,
- 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41,
- 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x10, 0x70, 0x65, 0x72,
- 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x49, 0x0a,
- 0x11, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69,
- 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69,
- 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x97, 0x01, 0x0a, 0x1e, 0x69, 0x6f, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x69, 0x74,
- 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69,
- 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
- 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x76,
- 0x31, 0xea, 0x02, 0x1e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x3a, 0x3a,
- 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x3a, 0x3a,
- 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_metrics_v1_metrics_proto_rawDescOnce sync.Once
- file_opencensus_proto_metrics_v1_metrics_proto_rawDescData = file_opencensus_proto_metrics_v1_metrics_proto_rawDesc
-)
-
-func file_opencensus_proto_metrics_v1_metrics_proto_rawDescGZIP() []byte {
- file_opencensus_proto_metrics_v1_metrics_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_metrics_v1_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_metrics_v1_metrics_proto_rawDescData)
- })
- return file_opencensus_proto_metrics_v1_metrics_proto_rawDescData
-}
-
-var file_opencensus_proto_metrics_v1_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_opencensus_proto_metrics_v1_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_opencensus_proto_metrics_v1_metrics_proto_goTypes = []interface{}{
- (MetricDescriptor_Type)(0), // 0: opencensus.proto.metrics.v1.MetricDescriptor.Type
- (*Metric)(nil), // 1: opencensus.proto.metrics.v1.Metric
- (*MetricDescriptor)(nil), // 2: opencensus.proto.metrics.v1.MetricDescriptor
- (*LabelKey)(nil), // 3: opencensus.proto.metrics.v1.LabelKey
- (*TimeSeries)(nil), // 4: opencensus.proto.metrics.v1.TimeSeries
- (*LabelValue)(nil), // 5: opencensus.proto.metrics.v1.LabelValue
- (*Point)(nil), // 6: opencensus.proto.metrics.v1.Point
- (*DistributionValue)(nil), // 7: opencensus.proto.metrics.v1.DistributionValue
- (*SummaryValue)(nil), // 8: opencensus.proto.metrics.v1.SummaryValue
- (*DistributionValue_BucketOptions)(nil), // 9: opencensus.proto.metrics.v1.DistributionValue.BucketOptions
- (*DistributionValue_Bucket)(nil), // 10: opencensus.proto.metrics.v1.DistributionValue.Bucket
- (*DistributionValue_Exemplar)(nil), // 11: opencensus.proto.metrics.v1.DistributionValue.Exemplar
- (*DistributionValue_BucketOptions_Explicit)(nil), // 12: opencensus.proto.metrics.v1.DistributionValue.BucketOptions.Explicit
- nil, // 13: opencensus.proto.metrics.v1.DistributionValue.Exemplar.AttachmentsEntry
- (*SummaryValue_Snapshot)(nil), // 14: opencensus.proto.metrics.v1.SummaryValue.Snapshot
- (*SummaryValue_Snapshot_ValueAtPercentile)(nil), // 15: opencensus.proto.metrics.v1.SummaryValue.Snapshot.ValueAtPercentile
- (*v1.Resource)(nil), // 16: opencensus.proto.resource.v1.Resource
- (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
- (*wrapperspb.Int64Value)(nil), // 18: google.protobuf.Int64Value
- (*wrapperspb.DoubleValue)(nil), // 19: google.protobuf.DoubleValue
-}
-var file_opencensus_proto_metrics_v1_metrics_proto_depIdxs = []int32{
- 2, // 0: opencensus.proto.metrics.v1.Metric.metric_descriptor:type_name -> opencensus.proto.metrics.v1.MetricDescriptor
- 4, // 1: opencensus.proto.metrics.v1.Metric.timeseries:type_name -> opencensus.proto.metrics.v1.TimeSeries
- 16, // 2: opencensus.proto.metrics.v1.Metric.resource:type_name -> opencensus.proto.resource.v1.Resource
- 0, // 3: opencensus.proto.metrics.v1.MetricDescriptor.type:type_name -> opencensus.proto.metrics.v1.MetricDescriptor.Type
- 3, // 4: opencensus.proto.metrics.v1.MetricDescriptor.label_keys:type_name -> opencensus.proto.metrics.v1.LabelKey
- 17, // 5: opencensus.proto.metrics.v1.TimeSeries.start_timestamp:type_name -> google.protobuf.Timestamp
- 5, // 6: opencensus.proto.metrics.v1.TimeSeries.label_values:type_name -> opencensus.proto.metrics.v1.LabelValue
- 6, // 7: opencensus.proto.metrics.v1.TimeSeries.points:type_name -> opencensus.proto.metrics.v1.Point
- 17, // 8: opencensus.proto.metrics.v1.Point.timestamp:type_name -> google.protobuf.Timestamp
- 7, // 9: opencensus.proto.metrics.v1.Point.distribution_value:type_name -> opencensus.proto.metrics.v1.DistributionValue
- 8, // 10: opencensus.proto.metrics.v1.Point.summary_value:type_name -> opencensus.proto.metrics.v1.SummaryValue
- 9, // 11: opencensus.proto.metrics.v1.DistributionValue.bucket_options:type_name -> opencensus.proto.metrics.v1.DistributionValue.BucketOptions
- 10, // 12: opencensus.proto.metrics.v1.DistributionValue.buckets:type_name -> opencensus.proto.metrics.v1.DistributionValue.Bucket
- 18, // 13: opencensus.proto.metrics.v1.SummaryValue.count:type_name -> google.protobuf.Int64Value
- 19, // 14: opencensus.proto.metrics.v1.SummaryValue.sum:type_name -> google.protobuf.DoubleValue
- 14, // 15: opencensus.proto.metrics.v1.SummaryValue.snapshot:type_name -> opencensus.proto.metrics.v1.SummaryValue.Snapshot
- 12, // 16: opencensus.proto.metrics.v1.DistributionValue.BucketOptions.explicit:type_name -> opencensus.proto.metrics.v1.DistributionValue.BucketOptions.Explicit
- 11, // 17: opencensus.proto.metrics.v1.DistributionValue.Bucket.exemplar:type_name -> opencensus.proto.metrics.v1.DistributionValue.Exemplar
- 17, // 18: opencensus.proto.metrics.v1.DistributionValue.Exemplar.timestamp:type_name -> google.protobuf.Timestamp
- 13, // 19: opencensus.proto.metrics.v1.DistributionValue.Exemplar.attachments:type_name -> opencensus.proto.metrics.v1.DistributionValue.Exemplar.AttachmentsEntry
- 18, // 20: opencensus.proto.metrics.v1.SummaryValue.Snapshot.count:type_name -> google.protobuf.Int64Value
- 19, // 21: opencensus.proto.metrics.v1.SummaryValue.Snapshot.sum:type_name -> google.protobuf.DoubleValue
- 15, // 22: opencensus.proto.metrics.v1.SummaryValue.Snapshot.percentile_values:type_name -> opencensus.proto.metrics.v1.SummaryValue.Snapshot.ValueAtPercentile
- 23, // [23:23] is the sub-list for method output_type
- 23, // [23:23] is the sub-list for method input_type
- 23, // [23:23] is the sub-list for extension type_name
- 23, // [23:23] is the sub-list for extension extendee
- 0, // [0:23] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_metrics_v1_metrics_proto_init() }
-func file_opencensus_proto_metrics_v1_metrics_proto_init() {
- if File_opencensus_proto_metrics_v1_metrics_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Metric); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*MetricDescriptor); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LabelKey); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TimeSeries); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LabelValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Point); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DistributionValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SummaryValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DistributionValue_BucketOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DistributionValue_Bucket); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DistributionValue_Exemplar); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DistributionValue_BucketOptions_Explicit); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SummaryValue_Snapshot); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SummaryValue_Snapshot_ValueAtPercentile); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[5].OneofWrappers = []interface{}{
- (*Point_Int64Value)(nil),
- (*Point_DoubleValue)(nil),
- (*Point_DistributionValue)(nil),
- (*Point_SummaryValue)(nil),
- }
- file_opencensus_proto_metrics_v1_metrics_proto_msgTypes[8].OneofWrappers = []interface{}{
- (*DistributionValue_BucketOptions_Explicit_)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_metrics_v1_metrics_proto_rawDesc,
- NumEnums: 1,
- NumMessages: 15,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_opencensus_proto_metrics_v1_metrics_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_metrics_v1_metrics_proto_depIdxs,
- EnumInfos: file_opencensus_proto_metrics_v1_metrics_proto_enumTypes,
- MessageInfos: file_opencensus_proto_metrics_v1_metrics_proto_msgTypes,
- }.Build()
- File_opencensus_proto_metrics_v1_metrics_proto = out.File
- file_opencensus_proto_metrics_v1_metrics_proto_rawDesc = nil
- file_opencensus_proto_metrics_v1_metrics_proto_goTypes = nil
- file_opencensus_proto_metrics_v1_metrics_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1/resource.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1/resource.pb.go
deleted file mode 100644
index 194dd70d..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1/resource.pb.go
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/resource/v1/resource.proto
-
-package v1
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// Resource information.
-type Resource struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Type identifier for the resource.
- Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
- // Set of labels that describe the resource.
- Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-func (x *Resource) Reset() {
- *x = Resource{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_resource_v1_resource_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Resource) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Resource) ProtoMessage() {}
-
-func (x *Resource) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_resource_v1_resource_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Resource.ProtoReflect.Descriptor instead.
-func (*Resource) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_resource_v1_resource_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Resource) GetType() string {
- if x != nil {
- return x.Type
- }
- return ""
-}
-
-func (x *Resource) GetLabels() map[string]string {
- if x != nil {
- return x.Labels
- }
- return nil
-}
-
-var File_opencensus_proto_resource_v1_resource_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_resource_v1_resource_proto_rawDesc = []byte{
- 0x0a, 0x2b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72,
- 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x22, 0xa5, 0x01, 0x0a, 0x08,
- 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06,
- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
- 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x42, 0x9b, 0x01, 0x0a, 0x1f, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x65, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73, 0x74,
- 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e,
- 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e,
- 0x2d, 0x67, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31, 0xea,
- 0x02, 0x1f, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x3a, 0x3a, 0x50, 0x72,
- 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x3a, 0x56,
- 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_resource_v1_resource_proto_rawDescOnce sync.Once
- file_opencensus_proto_resource_v1_resource_proto_rawDescData = file_opencensus_proto_resource_v1_resource_proto_rawDesc
-)
-
-func file_opencensus_proto_resource_v1_resource_proto_rawDescGZIP() []byte {
- file_opencensus_proto_resource_v1_resource_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_resource_v1_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_resource_v1_resource_proto_rawDescData)
- })
- return file_opencensus_proto_resource_v1_resource_proto_rawDescData
-}
-
-var file_opencensus_proto_resource_v1_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_opencensus_proto_resource_v1_resource_proto_goTypes = []interface{}{
- (*Resource)(nil), // 0: opencensus.proto.resource.v1.Resource
- nil, // 1: opencensus.proto.resource.v1.Resource.LabelsEntry
-}
-var file_opencensus_proto_resource_v1_resource_proto_depIdxs = []int32{
- 1, // 0: opencensus.proto.resource.v1.Resource.labels:type_name -> opencensus.proto.resource.v1.Resource.LabelsEntry
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_resource_v1_resource_proto_init() }
-func file_opencensus_proto_resource_v1_resource_proto_init() {
- if File_opencensus_proto_resource_v1_resource_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_resource_v1_resource_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Resource); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_resource_v1_resource_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_opencensus_proto_resource_v1_resource_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_resource_v1_resource_proto_depIdxs,
- MessageInfos: file_opencensus_proto_resource_v1_resource_proto_msgTypes,
- }.Build()
- File_opencensus_proto_resource_v1_resource_proto = out.File
- file_opencensus_proto_resource_v1_resource_proto_rawDesc = nil
- file_opencensus_proto_resource_v1_resource_proto_goTypes = nil
- file_opencensus_proto_resource_v1_resource_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace.pb.go
deleted file mode 100644
index d35612ca..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace.pb.go
+++ /dev/null
@@ -1,2235 +0,0 @@
-// Copyright 2017, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/trace/v1/trace.proto
-
-package v1
-
-import (
- v1 "github.com/census-instrumentation/opencensus-proto/gen-go/resource/v1"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- timestamppb "google.golang.org/protobuf/types/known/timestamppb"
- wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// Type of span. Can be used to specify additional relationships between spans
-// in addition to a parent/child relationship.
-type Span_SpanKind int32
-
-const (
- // Unspecified.
- Span_SPAN_KIND_UNSPECIFIED Span_SpanKind = 0
- // Indicates that the span covers server-side handling of an RPC or other
- // remote network request.
- Span_SERVER Span_SpanKind = 1
- // Indicates that the span covers the client-side wrapper around an RPC or
- // other remote request.
- Span_CLIENT Span_SpanKind = 2
-)
-
-// Enum value maps for Span_SpanKind.
-var (
- Span_SpanKind_name = map[int32]string{
- 0: "SPAN_KIND_UNSPECIFIED",
- 1: "SERVER",
- 2: "CLIENT",
- }
- Span_SpanKind_value = map[string]int32{
- "SPAN_KIND_UNSPECIFIED": 0,
- "SERVER": 1,
- "CLIENT": 2,
- }
-)
-
-func (x Span_SpanKind) Enum() *Span_SpanKind {
- p := new(Span_SpanKind)
- *p = x
- return p
-}
-
-func (x Span_SpanKind) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Span_SpanKind) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_trace_v1_trace_proto_enumTypes[0].Descriptor()
-}
-
-func (Span_SpanKind) Type() protoreflect.EnumType {
- return &file_opencensus_proto_trace_v1_trace_proto_enumTypes[0]
-}
-
-func (x Span_SpanKind) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Span_SpanKind.Descriptor instead.
-func (Span_SpanKind) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 0}
-}
-
-// Indicates whether the message was sent or received.
-type Span_TimeEvent_MessageEvent_Type int32
-
-const (
- // Unknown event type.
- Span_TimeEvent_MessageEvent_TYPE_UNSPECIFIED Span_TimeEvent_MessageEvent_Type = 0
- // Indicates a sent message.
- Span_TimeEvent_MessageEvent_SENT Span_TimeEvent_MessageEvent_Type = 1
- // Indicates a received message.
- Span_TimeEvent_MessageEvent_RECEIVED Span_TimeEvent_MessageEvent_Type = 2
-)
-
-// Enum value maps for Span_TimeEvent_MessageEvent_Type.
-var (
- Span_TimeEvent_MessageEvent_Type_name = map[int32]string{
- 0: "TYPE_UNSPECIFIED",
- 1: "SENT",
- 2: "RECEIVED",
- }
- Span_TimeEvent_MessageEvent_Type_value = map[string]int32{
- "TYPE_UNSPECIFIED": 0,
- "SENT": 1,
- "RECEIVED": 2,
- }
-)
-
-func (x Span_TimeEvent_MessageEvent_Type) Enum() *Span_TimeEvent_MessageEvent_Type {
- p := new(Span_TimeEvent_MessageEvent_Type)
- *p = x
- return p
-}
-
-func (x Span_TimeEvent_MessageEvent_Type) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Span_TimeEvent_MessageEvent_Type) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_trace_v1_trace_proto_enumTypes[1].Descriptor()
-}
-
-func (Span_TimeEvent_MessageEvent_Type) Type() protoreflect.EnumType {
- return &file_opencensus_proto_trace_v1_trace_proto_enumTypes[1]
-}
-
-func (x Span_TimeEvent_MessageEvent_Type) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Span_TimeEvent_MessageEvent_Type.Descriptor instead.
-func (Span_TimeEvent_MessageEvent_Type) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 2, 1, 0}
-}
-
-// The relationship of the current span relative to the linked span: child,
-// parent, or unspecified.
-type Span_Link_Type int32
-
-const (
- // The relationship of the two spans is unknown, or known but other
- // than parent-child.
- Span_Link_TYPE_UNSPECIFIED Span_Link_Type = 0
- // The linked span is a child of the current span.
- Span_Link_CHILD_LINKED_SPAN Span_Link_Type = 1
- // The linked span is a parent of the current span.
- Span_Link_PARENT_LINKED_SPAN Span_Link_Type = 2
-)
-
-// Enum value maps for Span_Link_Type.
-var (
- Span_Link_Type_name = map[int32]string{
- 0: "TYPE_UNSPECIFIED",
- 1: "CHILD_LINKED_SPAN",
- 2: "PARENT_LINKED_SPAN",
- }
- Span_Link_Type_value = map[string]int32{
- "TYPE_UNSPECIFIED": 0,
- "CHILD_LINKED_SPAN": 1,
- "PARENT_LINKED_SPAN": 2,
- }
-)
-
-func (x Span_Link_Type) Enum() *Span_Link_Type {
- p := new(Span_Link_Type)
- *p = x
- return p
-}
-
-func (x Span_Link_Type) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Span_Link_Type) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_trace_v1_trace_proto_enumTypes[2].Descriptor()
-}
-
-func (Span_Link_Type) Type() protoreflect.EnumType {
- return &file_opencensus_proto_trace_v1_trace_proto_enumTypes[2]
-}
-
-func (x Span_Link_Type) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Span_Link_Type.Descriptor instead.
-func (Span_Link_Type) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 4, 0}
-}
-
-// A span represents a single operation within a trace. Spans can be
-// nested to form a trace tree. Spans may also be linked to other spans
-// from the same or different trace. And form graphs. Often, a trace
-// contains a root span that describes the end-to-end latency, and one
-// or more subspans for its sub-operations. A trace can also contain
-// multiple root spans, or none at all. Spans do not need to be
-// contiguous - there may be gaps or overlaps between spans in a trace.
-//
-// The next id is 17.
-// TODO(bdrutu): Add an example.
-type Span struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A unique identifier for a trace. All spans from the same trace share
- // the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes
- // is considered invalid.
- //
- // This field is semantically required. Receiver should generate new
- // random trace_id if empty or invalid trace_id was received.
- //
- // This field is required.
- TraceId []byte `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
- // A unique identifier for a span within a trace, assigned when the span
- // is created. The ID is an 8-byte array. An ID with all zeroes is considered
- // invalid.
- //
- // This field is semantically required. Receiver should generate new
- // random span_id if empty or invalid span_id was received.
- //
- // This field is required.
- SpanId []byte `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
- // The Tracestate on the span.
- Tracestate *Span_Tracestate `protobuf:"bytes,15,opt,name=tracestate,proto3" json:"tracestate,omitempty"`
- // The `span_id` of this span's parent span. If this is a root span, then this
- // field must be empty. The ID is an 8-byte array.
- ParentSpanId []byte `protobuf:"bytes,3,opt,name=parent_span_id,json=parentSpanId,proto3" json:"parent_span_id,omitempty"`
- // A description of the span's operation.
- //
- // For example, the name can be a qualified method name or a file name
- // and a line number where the operation is called. A best practice is to use
- // the same display name at the same call point in an application.
- // This makes it easier to correlate spans in different traces.
- //
- // This field is semantically required to be set to non-empty string.
- // When null or empty string received - receiver may use string "name"
- // as a replacement. There might be smarted algorithms implemented by
- // receiver to fix the empty span name.
- //
- // This field is required.
- Name *TruncatableString `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
- // Distinguishes between spans generated in a particular context. For example,
- // two spans with the same name may be distinguished using `CLIENT` (caller)
- // and `SERVER` (callee) to identify queueing latency associated with the span.
- Kind Span_SpanKind `protobuf:"varint,14,opt,name=kind,proto3,enum=opencensus.proto.trace.v1.Span_SpanKind" json:"kind,omitempty"`
- // The start time of the span. On the client side, this is the time kept by
- // the local machine where the span execution starts. On the server side, this
- // is the time when the server's application handler starts running.
- //
- // This field is semantically required. When not set on receive -
- // receiver should set it to the value of end_time field if it was
- // set. Or to the current time if neither was set. It is important to
- // keep end_time > start_time for consistency.
- //
- // This field is required.
- StartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
- // The end time of the span. On the client side, this is the time kept by
- // the local machine where the span execution ends. On the server side, this
- // is the time when the server application handler stops running.
- //
- // This field is semantically required. When not set on receive -
- // receiver should set it to start_time value. It is important to
- // keep end_time > start_time for consistency.
- //
- // This field is required.
- EndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
- // A set of attributes on the span.
- Attributes *Span_Attributes `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty"`
- // A stack trace captured at the start of the span.
- StackTrace *StackTrace `protobuf:"bytes,8,opt,name=stack_trace,json=stackTrace,proto3" json:"stack_trace,omitempty"`
- // The included time events.
- TimeEvents *Span_TimeEvents `protobuf:"bytes,9,opt,name=time_events,json=timeEvents,proto3" json:"time_events,omitempty"`
- // The included links.
- Links *Span_Links `protobuf:"bytes,10,opt,name=links,proto3" json:"links,omitempty"`
- // An optional final status for this span. Semantically when Status
- // wasn't set it is means span ended without errors and assume
- // Status.Ok (code = 0).
- Status *Status `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
- // An optional resource that is associated with this span. If not set, this span
- // should be part of a batch that does include the resource information, unless resource
- // information is unknown.
- Resource *v1.Resource `protobuf:"bytes,16,opt,name=resource,proto3" json:"resource,omitempty"`
- // A highly recommended but not required flag that identifies when a
- // trace crosses a process boundary. True when the parent_span belongs
- // to the same process as the current span. This flag is most commonly
- // used to indicate the need to adjust time as clocks in different
- // processes may not be synchronized.
- SameProcessAsParentSpan *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=same_process_as_parent_span,json=sameProcessAsParentSpan,proto3" json:"same_process_as_parent_span,omitempty"`
- // An optional number of child spans that were generated while this span
- // was active. If set, allows an implementation to detect missing child spans.
- ChildSpanCount *wrapperspb.UInt32Value `protobuf:"bytes,13,opt,name=child_span_count,json=childSpanCount,proto3" json:"child_span_count,omitempty"`
-}
-
-func (x *Span) Reset() {
- *x = Span{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span) ProtoMessage() {}
-
-func (x *Span) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span.ProtoReflect.Descriptor instead.
-func (*Span) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Span) GetTraceId() []byte {
- if x != nil {
- return x.TraceId
- }
- return nil
-}
-
-func (x *Span) GetSpanId() []byte {
- if x != nil {
- return x.SpanId
- }
- return nil
-}
-
-func (x *Span) GetTracestate() *Span_Tracestate {
- if x != nil {
- return x.Tracestate
- }
- return nil
-}
-
-func (x *Span) GetParentSpanId() []byte {
- if x != nil {
- return x.ParentSpanId
- }
- return nil
-}
-
-func (x *Span) GetName() *TruncatableString {
- if x != nil {
- return x.Name
- }
- return nil
-}
-
-func (x *Span) GetKind() Span_SpanKind {
- if x != nil {
- return x.Kind
- }
- return Span_SPAN_KIND_UNSPECIFIED
-}
-
-func (x *Span) GetStartTime() *timestamppb.Timestamp {
- if x != nil {
- return x.StartTime
- }
- return nil
-}
-
-func (x *Span) GetEndTime() *timestamppb.Timestamp {
- if x != nil {
- return x.EndTime
- }
- return nil
-}
-
-func (x *Span) GetAttributes() *Span_Attributes {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-func (x *Span) GetStackTrace() *StackTrace {
- if x != nil {
- return x.StackTrace
- }
- return nil
-}
-
-func (x *Span) GetTimeEvents() *Span_TimeEvents {
- if x != nil {
- return x.TimeEvents
- }
- return nil
-}
-
-func (x *Span) GetLinks() *Span_Links {
- if x != nil {
- return x.Links
- }
- return nil
-}
-
-func (x *Span) GetStatus() *Status {
- if x != nil {
- return x.Status
- }
- return nil
-}
-
-func (x *Span) GetResource() *v1.Resource {
- if x != nil {
- return x.Resource
- }
- return nil
-}
-
-func (x *Span) GetSameProcessAsParentSpan() *wrapperspb.BoolValue {
- if x != nil {
- return x.SameProcessAsParentSpan
- }
- return nil
-}
-
-func (x *Span) GetChildSpanCount() *wrapperspb.UInt32Value {
- if x != nil {
- return x.ChildSpanCount
- }
- return nil
-}
-
-// The `Status` type defines a logical error model that is suitable for different
-// programming environments, including REST APIs and RPC APIs. This proto's fields
-// are a subset of those of
-// [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto),
-// which is used by [gRPC](https://github.com/grpc).
-type Status struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The status code. This is optional field. It is safe to assume 0 (OK)
- // when not set.
- Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
- // A developer-facing error message, which should be in English.
- Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
-}
-
-func (x *Status) Reset() {
- *x = Status{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Status) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Status) ProtoMessage() {}
-
-func (x *Status) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Status.ProtoReflect.Descriptor instead.
-func (*Status) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Status) GetCode() int32 {
- if x != nil {
- return x.Code
- }
- return 0
-}
-
-func (x *Status) GetMessage() string {
- if x != nil {
- return x.Message
- }
- return ""
-}
-
-// The value of an Attribute.
-type AttributeValue struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The type of the value.
- //
- // Types that are assignable to Value:
- // *AttributeValue_StringValue
- // *AttributeValue_IntValue
- // *AttributeValue_BoolValue
- // *AttributeValue_DoubleValue
- Value isAttributeValue_Value `protobuf_oneof:"value"`
-}
-
-func (x *AttributeValue) Reset() {
- *x = AttributeValue{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AttributeValue) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AttributeValue) ProtoMessage() {}
-
-func (x *AttributeValue) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AttributeValue.ProtoReflect.Descriptor instead.
-func (*AttributeValue) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{2}
-}
-
-func (m *AttributeValue) GetValue() isAttributeValue_Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-func (x *AttributeValue) GetStringValue() *TruncatableString {
- if x, ok := x.GetValue().(*AttributeValue_StringValue); ok {
- return x.StringValue
- }
- return nil
-}
-
-func (x *AttributeValue) GetIntValue() int64 {
- if x, ok := x.GetValue().(*AttributeValue_IntValue); ok {
- return x.IntValue
- }
- return 0
-}
-
-func (x *AttributeValue) GetBoolValue() bool {
- if x, ok := x.GetValue().(*AttributeValue_BoolValue); ok {
- return x.BoolValue
- }
- return false
-}
-
-func (x *AttributeValue) GetDoubleValue() float64 {
- if x, ok := x.GetValue().(*AttributeValue_DoubleValue); ok {
- return x.DoubleValue
- }
- return 0
-}
-
-type isAttributeValue_Value interface {
- isAttributeValue_Value()
-}
-
-type AttributeValue_StringValue struct {
- // A string up to 256 bytes long.
- StringValue *TruncatableString `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
-}
-
-type AttributeValue_IntValue struct {
- // A 64-bit signed integer.
- IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"`
-}
-
-type AttributeValue_BoolValue struct {
- // A Boolean value represented by `true` or `false`.
- BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"`
-}
-
-type AttributeValue_DoubleValue struct {
- // A double value.
- DoubleValue float64 `protobuf:"fixed64,4,opt,name=double_value,json=doubleValue,proto3,oneof"`
-}
-
-func (*AttributeValue_StringValue) isAttributeValue_Value() {}
-
-func (*AttributeValue_IntValue) isAttributeValue_Value() {}
-
-func (*AttributeValue_BoolValue) isAttributeValue_Value() {}
-
-func (*AttributeValue_DoubleValue) isAttributeValue_Value() {}
-
-// The call stack which originated this span.
-type StackTrace struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Stack frames in this stack trace.
- StackFrames *StackTrace_StackFrames `protobuf:"bytes,1,opt,name=stack_frames,json=stackFrames,proto3" json:"stack_frames,omitempty"`
- // The hash ID is used to conserve network bandwidth for duplicate
- // stack traces within a single trace.
- //
- // Often multiple spans will have identical stack traces.
- // The first occurrence of a stack trace should contain both
- // `stack_frames` and a value in `stack_trace_hash_id`.
- //
- // Subsequent spans within the same request can refer
- // to that stack trace by setting only `stack_trace_hash_id`.
- //
- // TODO: describe how to deal with the case where stack_trace_hash_id is
- // zero because it was not set.
- StackTraceHashId uint64 `protobuf:"varint,2,opt,name=stack_trace_hash_id,json=stackTraceHashId,proto3" json:"stack_trace_hash_id,omitempty"`
-}
-
-func (x *StackTrace) Reset() {
- *x = StackTrace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *StackTrace) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StackTrace) ProtoMessage() {}
-
-func (x *StackTrace) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use StackTrace.ProtoReflect.Descriptor instead.
-func (*StackTrace) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *StackTrace) GetStackFrames() *StackTrace_StackFrames {
- if x != nil {
- return x.StackFrames
- }
- return nil
-}
-
-func (x *StackTrace) GetStackTraceHashId() uint64 {
- if x != nil {
- return x.StackTraceHashId
- }
- return 0
-}
-
-// A description of a binary module.
-type Module struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // TODO: document the meaning of this field.
- // For example: main binary, kernel modules, and dynamic libraries
- // such as libc.so, sharedlib.so.
- Module *TruncatableString `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"`
- // A unique identifier for the module, usually a hash of its
- // contents.
- BuildId *TruncatableString `protobuf:"bytes,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
-}
-
-func (x *Module) Reset() {
- *x = Module{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Module) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Module) ProtoMessage() {}
-
-func (x *Module) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Module.ProtoReflect.Descriptor instead.
-func (*Module) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *Module) GetModule() *TruncatableString {
- if x != nil {
- return x.Module
- }
- return nil
-}
-
-func (x *Module) GetBuildId() *TruncatableString {
- if x != nil {
- return x.BuildId
- }
- return nil
-}
-
-// A string that might be shortened to a specified length.
-type TruncatableString struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The shortened string. For example, if the original string was 500 bytes long and
- // the limit of the string was 128 bytes, then this value contains the first 128
- // bytes of the 500-byte string. Note that truncation always happens on a
- // character boundary, to ensure that a truncated string is still valid UTF-8.
- // Because it may contain multi-byte characters, the size of the truncated string
- // may be less than the truncation limit.
- Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
- // The number of bytes removed from the original string. If this
- // value is 0, then the string was not shortened.
- TruncatedByteCount int32 `protobuf:"varint,2,opt,name=truncated_byte_count,json=truncatedByteCount,proto3" json:"truncated_byte_count,omitempty"`
-}
-
-func (x *TruncatableString) Reset() {
- *x = TruncatableString{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *TruncatableString) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TruncatableString) ProtoMessage() {}
-
-func (x *TruncatableString) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TruncatableString.ProtoReflect.Descriptor instead.
-func (*TruncatableString) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *TruncatableString) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-func (x *TruncatableString) GetTruncatedByteCount() int32 {
- if x != nil {
- return x.TruncatedByteCount
- }
- return 0
-}
-
-// This field conveys information about request position in multiple distributed tracing graphs.
-// It is a list of Tracestate.Entry with a maximum of 32 members in the list.
-//
-// See the https://github.com/w3c/distributed-tracing for more details about this field.
-type Span_Tracestate struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A list of entries that represent the Tracestate.
- Entries []*Span_Tracestate_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
-}
-
-func (x *Span_Tracestate) Reset() {
- *x = Span_Tracestate{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_Tracestate) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_Tracestate) ProtoMessage() {}
-
-func (x *Span_Tracestate) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_Tracestate.ProtoReflect.Descriptor instead.
-func (*Span_Tracestate) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Span_Tracestate) GetEntries() []*Span_Tracestate_Entry {
- if x != nil {
- return x.Entries
- }
- return nil
-}
-
-// A set of attributes, each with a key and a value.
-type Span_Attributes struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The set of attributes. The value can be a string, an integer, a double
- // or the Boolean values `true` or `false`. Note, global attributes like
- // server name can be set as tags using resource API. Examples of attributes:
- //
- // "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
- // "/http/server_latency": 300
- // "abc.com/myattribute": true
- // "abc.com/score": 10.239
- AttributeMap map[string]*AttributeValue `protobuf:"bytes,1,rep,name=attribute_map,json=attributeMap,proto3" json:"attribute_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
- // The number of attributes that were discarded. Attributes can be discarded
- // because their keys are too long or because there are too many attributes.
- // If this value is 0, then no attributes were dropped.
- DroppedAttributesCount int32 `protobuf:"varint,2,opt,name=dropped_attributes_count,json=droppedAttributesCount,proto3" json:"dropped_attributes_count,omitempty"`
-}
-
-func (x *Span_Attributes) Reset() {
- *x = Span_Attributes{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_Attributes) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_Attributes) ProtoMessage() {}
-
-func (x *Span_Attributes) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_Attributes.ProtoReflect.Descriptor instead.
-func (*Span_Attributes) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 1}
-}
-
-func (x *Span_Attributes) GetAttributeMap() map[string]*AttributeValue {
- if x != nil {
- return x.AttributeMap
- }
- return nil
-}
-
-func (x *Span_Attributes) GetDroppedAttributesCount() int32 {
- if x != nil {
- return x.DroppedAttributesCount
- }
- return 0
-}
-
-// A time-stamped annotation or message event in the Span.
-type Span_TimeEvent struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The time the event occurred.
- Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
- // A `TimeEvent` can contain either an `Annotation` object or a
- // `MessageEvent` object, but not both.
- //
- // Types that are assignable to Value:
- // *Span_TimeEvent_Annotation_
- // *Span_TimeEvent_MessageEvent_
- Value isSpan_TimeEvent_Value `protobuf_oneof:"value"`
-}
-
-func (x *Span_TimeEvent) Reset() {
- *x = Span_TimeEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_TimeEvent) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_TimeEvent) ProtoMessage() {}
-
-func (x *Span_TimeEvent) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_TimeEvent.ProtoReflect.Descriptor instead.
-func (*Span_TimeEvent) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 2}
-}
-
-func (x *Span_TimeEvent) GetTime() *timestamppb.Timestamp {
- if x != nil {
- return x.Time
- }
- return nil
-}
-
-func (m *Span_TimeEvent) GetValue() isSpan_TimeEvent_Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-func (x *Span_TimeEvent) GetAnnotation() *Span_TimeEvent_Annotation {
- if x, ok := x.GetValue().(*Span_TimeEvent_Annotation_); ok {
- return x.Annotation
- }
- return nil
-}
-
-func (x *Span_TimeEvent) GetMessageEvent() *Span_TimeEvent_MessageEvent {
- if x, ok := x.GetValue().(*Span_TimeEvent_MessageEvent_); ok {
- return x.MessageEvent
- }
- return nil
-}
-
-type isSpan_TimeEvent_Value interface {
- isSpan_TimeEvent_Value()
-}
-
-type Span_TimeEvent_Annotation_ struct {
- // A text annotation with a set of attributes.
- Annotation *Span_TimeEvent_Annotation `protobuf:"bytes,2,opt,name=annotation,proto3,oneof"`
-}
-
-type Span_TimeEvent_MessageEvent_ struct {
- // An event describing a message sent/received between Spans.
- MessageEvent *Span_TimeEvent_MessageEvent `protobuf:"bytes,3,opt,name=message_event,json=messageEvent,proto3,oneof"`
-}
-
-func (*Span_TimeEvent_Annotation_) isSpan_TimeEvent_Value() {}
-
-func (*Span_TimeEvent_MessageEvent_) isSpan_TimeEvent_Value() {}
-
-// A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation
-// on the span, consisting of either user-supplied key-value pairs, or
-// details of a message sent/received between Spans.
-type Span_TimeEvents struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A collection of `TimeEvent`s.
- TimeEvent []*Span_TimeEvent `protobuf:"bytes,1,rep,name=time_event,json=timeEvent,proto3" json:"time_event,omitempty"`
- // The number of dropped annotations in all the included time events.
- // If the value is 0, then no annotations were dropped.
- DroppedAnnotationsCount int32 `protobuf:"varint,2,opt,name=dropped_annotations_count,json=droppedAnnotationsCount,proto3" json:"dropped_annotations_count,omitempty"`
- // The number of dropped message events in all the included time events.
- // If the value is 0, then no message events were dropped.
- DroppedMessageEventsCount int32 `protobuf:"varint,3,opt,name=dropped_message_events_count,json=droppedMessageEventsCount,proto3" json:"dropped_message_events_count,omitempty"`
-}
-
-func (x *Span_TimeEvents) Reset() {
- *x = Span_TimeEvents{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_TimeEvents) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_TimeEvents) ProtoMessage() {}
-
-func (x *Span_TimeEvents) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_TimeEvents.ProtoReflect.Descriptor instead.
-func (*Span_TimeEvents) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 3}
-}
-
-func (x *Span_TimeEvents) GetTimeEvent() []*Span_TimeEvent {
- if x != nil {
- return x.TimeEvent
- }
- return nil
-}
-
-func (x *Span_TimeEvents) GetDroppedAnnotationsCount() int32 {
- if x != nil {
- return x.DroppedAnnotationsCount
- }
- return 0
-}
-
-func (x *Span_TimeEvents) GetDroppedMessageEventsCount() int32 {
- if x != nil {
- return x.DroppedMessageEventsCount
- }
- return 0
-}
-
-// A pointer from the current span to another span in the same trace or in a
-// different trace. For example, this can be used in batching operations,
-// where a single batch handler processes multiple requests from different
-// traces or when the handler receives a request from a different project.
-type Span_Link struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A unique identifier of a trace that this linked span is part of. The ID is a
- // 16-byte array.
- TraceId []byte `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
- // A unique identifier for the linked span. The ID is an 8-byte array.
- SpanId []byte `protobuf:"bytes,2,opt,name=span_id,json=spanId,proto3" json:"span_id,omitempty"`
- // The relationship of the current span relative to the linked span.
- Type Span_Link_Type `protobuf:"varint,3,opt,name=type,proto3,enum=opencensus.proto.trace.v1.Span_Link_Type" json:"type,omitempty"`
- // A set of attributes on the link.
- Attributes *Span_Attributes `protobuf:"bytes,4,opt,name=attributes,proto3" json:"attributes,omitempty"`
- // The Tracestate associated with the link.
- Tracestate *Span_Tracestate `protobuf:"bytes,5,opt,name=tracestate,proto3" json:"tracestate,omitempty"`
-}
-
-func (x *Span_Link) Reset() {
- *x = Span_Link{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_Link) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_Link) ProtoMessage() {}
-
-func (x *Span_Link) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_Link.ProtoReflect.Descriptor instead.
-func (*Span_Link) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 4}
-}
-
-func (x *Span_Link) GetTraceId() []byte {
- if x != nil {
- return x.TraceId
- }
- return nil
-}
-
-func (x *Span_Link) GetSpanId() []byte {
- if x != nil {
- return x.SpanId
- }
- return nil
-}
-
-func (x *Span_Link) GetType() Span_Link_Type {
- if x != nil {
- return x.Type
- }
- return Span_Link_TYPE_UNSPECIFIED
-}
-
-func (x *Span_Link) GetAttributes() *Span_Attributes {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-func (x *Span_Link) GetTracestate() *Span_Tracestate {
- if x != nil {
- return x.Tracestate
- }
- return nil
-}
-
-// A collection of links, which are references from this span to a span
-// in the same or different trace.
-type Span_Links struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A collection of links.
- Link []*Span_Link `protobuf:"bytes,1,rep,name=link,proto3" json:"link,omitempty"`
- // The number of dropped links after the maximum size was enforced. If
- // this value is 0, then no links were dropped.
- DroppedLinksCount int32 `protobuf:"varint,2,opt,name=dropped_links_count,json=droppedLinksCount,proto3" json:"dropped_links_count,omitempty"`
-}
-
-func (x *Span_Links) Reset() {
- *x = Span_Links{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_Links) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_Links) ProtoMessage() {}
-
-func (x *Span_Links) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_Links.ProtoReflect.Descriptor instead.
-func (*Span_Links) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 5}
-}
-
-func (x *Span_Links) GetLink() []*Span_Link {
- if x != nil {
- return x.Link
- }
- return nil
-}
-
-func (x *Span_Links) GetDroppedLinksCount() int32 {
- if x != nil {
- return x.DroppedLinksCount
- }
- return 0
-}
-
-type Span_Tracestate_Entry struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The key must begin with a lowercase letter, and can only contain
- // lowercase letters 'a'-'z', digits '0'-'9', underscores '_', dashes
- // '-', asterisks '*', and forward slashes '/'.
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // The value is opaque string up to 256 characters printable ASCII
- // RFC0020 characters (i.e., the range 0x20 to 0x7E) except ',' and '='.
- // Note that this also excludes tabs, newlines, carriage returns, etc.
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Span_Tracestate_Entry) Reset() {
- *x = Span_Tracestate_Entry{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_Tracestate_Entry) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_Tracestate_Entry) ProtoMessage() {}
-
-func (x *Span_Tracestate_Entry) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_Tracestate_Entry.ProtoReflect.Descriptor instead.
-func (*Span_Tracestate_Entry) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 0, 0}
-}
-
-func (x *Span_Tracestate_Entry) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *Span_Tracestate_Entry) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-// A text annotation with a set of attributes.
-type Span_TimeEvent_Annotation struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A user-supplied message describing the event.
- Description *TruncatableString `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
- // A set of attributes on the annotation.
- Attributes *Span_Attributes `protobuf:"bytes,2,opt,name=attributes,proto3" json:"attributes,omitempty"`
-}
-
-func (x *Span_TimeEvent_Annotation) Reset() {
- *x = Span_TimeEvent_Annotation{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_TimeEvent_Annotation) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_TimeEvent_Annotation) ProtoMessage() {}
-
-func (x *Span_TimeEvent_Annotation) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_TimeEvent_Annotation.ProtoReflect.Descriptor instead.
-func (*Span_TimeEvent_Annotation) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 2, 0}
-}
-
-func (x *Span_TimeEvent_Annotation) GetDescription() *TruncatableString {
- if x != nil {
- return x.Description
- }
- return nil
-}
-
-func (x *Span_TimeEvent_Annotation) GetAttributes() *Span_Attributes {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-// An event describing a message sent/received between Spans.
-type Span_TimeEvent_MessageEvent struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The type of MessageEvent. Indicates whether the message was sent or
- // received.
- Type Span_TimeEvent_MessageEvent_Type `protobuf:"varint,1,opt,name=type,proto3,enum=opencensus.proto.trace.v1.Span_TimeEvent_MessageEvent_Type" json:"type,omitempty"`
- // An identifier for the MessageEvent's message that can be used to match
- // SENT and RECEIVED MessageEvents. For example, this field could
- // represent a sequence ID for a streaming RPC. It is recommended to be
- // unique within a Span.
- Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
- // The number of uncompressed bytes sent or received.
- UncompressedSize uint64 `protobuf:"varint,3,opt,name=uncompressed_size,json=uncompressedSize,proto3" json:"uncompressed_size,omitempty"`
- // The number of compressed bytes sent or received. If zero, assumed to
- // be the same size as uncompressed.
- CompressedSize uint64 `protobuf:"varint,4,opt,name=compressed_size,json=compressedSize,proto3" json:"compressed_size,omitempty"`
-}
-
-func (x *Span_TimeEvent_MessageEvent) Reset() {
- *x = Span_TimeEvent_MessageEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Span_TimeEvent_MessageEvent) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Span_TimeEvent_MessageEvent) ProtoMessage() {}
-
-func (x *Span_TimeEvent_MessageEvent) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Span_TimeEvent_MessageEvent.ProtoReflect.Descriptor instead.
-func (*Span_TimeEvent_MessageEvent) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{0, 2, 1}
-}
-
-func (x *Span_TimeEvent_MessageEvent) GetType() Span_TimeEvent_MessageEvent_Type {
- if x != nil {
- return x.Type
- }
- return Span_TimeEvent_MessageEvent_TYPE_UNSPECIFIED
-}
-
-func (x *Span_TimeEvent_MessageEvent) GetId() uint64 {
- if x != nil {
- return x.Id
- }
- return 0
-}
-
-func (x *Span_TimeEvent_MessageEvent) GetUncompressedSize() uint64 {
- if x != nil {
- return x.UncompressedSize
- }
- return 0
-}
-
-func (x *Span_TimeEvent_MessageEvent) GetCompressedSize() uint64 {
- if x != nil {
- return x.CompressedSize
- }
- return 0
-}
-
-// A single stack frame in a stack trace.
-type StackTrace_StackFrame struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The fully-qualified name that uniquely identifies the function or
- // method that is active in this frame.
- FunctionName *TruncatableString `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
- // An un-mangled function name, if `function_name` is
- // [mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can
- // be fully qualified.
- OriginalFunctionName *TruncatableString `protobuf:"bytes,2,opt,name=original_function_name,json=originalFunctionName,proto3" json:"original_function_name,omitempty"`
- // The name of the source file where the function call appears.
- FileName *TruncatableString `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
- // The line number in `file_name` where the function call appears.
- LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
- // The column number where the function call appears, if available.
- // This is important in JavaScript because of its anonymous functions.
- ColumnNumber int64 `protobuf:"varint,5,opt,name=column_number,json=columnNumber,proto3" json:"column_number,omitempty"`
- // The binary module from where the code was loaded.
- LoadModule *Module `protobuf:"bytes,6,opt,name=load_module,json=loadModule,proto3" json:"load_module,omitempty"`
- // The version of the deployed source code.
- SourceVersion *TruncatableString `protobuf:"bytes,7,opt,name=source_version,json=sourceVersion,proto3" json:"source_version,omitempty"`
-}
-
-func (x *StackTrace_StackFrame) Reset() {
- *x = StackTrace_StackFrame{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *StackTrace_StackFrame) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StackTrace_StackFrame) ProtoMessage() {}
-
-func (x *StackTrace_StackFrame) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use StackTrace_StackFrame.ProtoReflect.Descriptor instead.
-func (*StackTrace_StackFrame) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{3, 0}
-}
-
-func (x *StackTrace_StackFrame) GetFunctionName() *TruncatableString {
- if x != nil {
- return x.FunctionName
- }
- return nil
-}
-
-func (x *StackTrace_StackFrame) GetOriginalFunctionName() *TruncatableString {
- if x != nil {
- return x.OriginalFunctionName
- }
- return nil
-}
-
-func (x *StackTrace_StackFrame) GetFileName() *TruncatableString {
- if x != nil {
- return x.FileName
- }
- return nil
-}
-
-func (x *StackTrace_StackFrame) GetLineNumber() int64 {
- if x != nil {
- return x.LineNumber
- }
- return 0
-}
-
-func (x *StackTrace_StackFrame) GetColumnNumber() int64 {
- if x != nil {
- return x.ColumnNumber
- }
- return 0
-}
-
-func (x *StackTrace_StackFrame) GetLoadModule() *Module {
- if x != nil {
- return x.LoadModule
- }
- return nil
-}
-
-func (x *StackTrace_StackFrame) GetSourceVersion() *TruncatableString {
- if x != nil {
- return x.SourceVersion
- }
- return nil
-}
-
-// A collection of stack frames, which can be truncated.
-type StackTrace_StackFrames struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Stack frames in this call stack.
- Frame []*StackTrace_StackFrame `protobuf:"bytes,1,rep,name=frame,proto3" json:"frame,omitempty"`
- // The number of stack frames that were dropped because there
- // were too many stack frames.
- // If this value is 0, then no stack frames were dropped.
- DroppedFramesCount int32 `protobuf:"varint,2,opt,name=dropped_frames_count,json=droppedFramesCount,proto3" json:"dropped_frames_count,omitempty"`
-}
-
-func (x *StackTrace_StackFrames) Reset() {
- *x = StackTrace_StackFrames{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *StackTrace_StackFrames) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StackTrace_StackFrames) ProtoMessage() {}
-
-func (x *StackTrace_StackFrames) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use StackTrace_StackFrames.ProtoReflect.Descriptor instead.
-func (*StackTrace_StackFrames) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP(), []int{3, 1}
-}
-
-func (x *StackTrace_StackFrames) GetFrame() []*StackTrace_StackFrame {
- if x != nil {
- return x.Frame
- }
- return nil
-}
-
-func (x *StackTrace_StackFrames) GetDroppedFramesCount() int32 {
- if x != nil {
- return x.DroppedFramesCount
- }
- return 0
-}
-
-var File_opencensus_proto_trace_v1_trace_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_trace_v1_trace_proto_rawDesc = []byte{
- 0x0a, 0x25, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e,
- 0x76, 0x31, 0x1a, 0x2b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x76, 0x31,
- 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
- 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x22, 0x91, 0x16, 0x0a, 0x04, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x4a, 0x0a,
- 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70,
- 0x61, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12,
- 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d,
- 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e,
- 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12,
- 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
- 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e,
- 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
- 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18,
- 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
- 0x73, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a,
- 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
- 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b,
- 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70,
- 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12,
- 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x58,
- 0x0a, 0x1b, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61,
- 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x0c, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
- 0x17, 0x73, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x41, 0x73, 0x50, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x46, 0x0a, 0x10, 0x63, 0x68, 0x69, 0x6c,
- 0x64, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x52, 0x0e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x53, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
- 0x1a, 0x89, 0x01, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
- 0x4a, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61,
- 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x2f, 0x0a, 0x05, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x95, 0x02, 0x0a,
- 0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x0d, 0x61,
- 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
- 0x70, 0x61, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x41,
- 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x0c, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x38,
- 0x0a, 0x18, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x16, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
- 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x6a, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
- 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xa4, 0x05, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69,
- 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e,
- 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a,
- 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0d, 0x6d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70,
- 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0xa8, 0x01, 0x0a, 0x0a, 0x41, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
- 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x64, 0x65, 0x73,
- 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x41, 0x74,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x65, 0x73, 0x1a, 0xfb, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
- 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70,
- 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53,
- 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65,
- 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f,
- 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x34, 0x0a, 0x04,
- 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
- 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45,
- 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44,
- 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xd3, 0x01, 0x0a, 0x0a,
- 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x74, 0x69,
- 0x6d, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
- 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f,
- 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64,
- 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x3f, 0x0a, 0x1c, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e,
- 0x74, 0x1a, 0xde, 0x02, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3d,
- 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f,
- 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x4c, 0x69,
- 0x6e, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a,
- 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70,
- 0x61, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0a, 0x61,
- 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x54,
- 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
- 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
- 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x49, 0x4c, 0x44, 0x5f, 0x4c, 0x49, 0x4e,
- 0x4b, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41,
- 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x4e,
- 0x10, 0x02, 0x1a, 0x71, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x6c,
- 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
- 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x52,
- 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64,
- 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x11, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x73,
- 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3d, 0x0a, 0x08, 0x53, 0x70, 0x61, 0x6e, 0x4b, 0x69, 0x6e,
- 0x64, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x50, 0x41, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55,
- 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
- 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x49, 0x45,
- 0x4e, 0x54, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12,
- 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
- 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd1, 0x01, 0x0a,
- 0x0e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
- 0x51, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72,
- 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62,
- 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x22, 0x8b, 0x06, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12,
- 0x54, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61,
- 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x46,
- 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x10, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61,
- 0x73, 0x68, 0x49, 0x64, 0x1a, 0xed, 0x03, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x72,
- 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x62, 0x0a, 0x16, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
- 0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e,
- 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74,
- 0x72, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x46, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x09, 0x66, 0x69,
- 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x66, 0x69, 0x6c,
- 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75,
- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65,
- 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
- 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63,
- 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0b, 0x6c,
- 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64,
- 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12,
- 0x53, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65,
- 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53,
- 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x46, 0x72,
- 0x61, 0x6d, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x05, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
- 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b,
- 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14,
- 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x72, 0x6f, 0x70,
- 0x70, 0x65, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97,
- 0x01, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x6d, 0x6f, 0x64,
- 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
- 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12,
- 0x47, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72,
- 0x75, 0x6e, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
- 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x11, 0x54, 0x72, 0x75, 0x6e,
- 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64,
- 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x12, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65,
- 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x8f, 0x01, 0x0a, 0x1c, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65,
- 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x6f,
- 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
- 0x2f, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65,
- 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0xea, 0x02, 0x1c, 0x4f, 0x70, 0x65, 0x6e, 0x43,
- 0x65, 0x6e, 0x73, 0x75, 0x73, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x54, 0x72,
- 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_trace_v1_trace_proto_rawDescOnce sync.Once
- file_opencensus_proto_trace_v1_trace_proto_rawDescData = file_opencensus_proto_trace_v1_trace_proto_rawDesc
-)
-
-func file_opencensus_proto_trace_v1_trace_proto_rawDescGZIP() []byte {
- file_opencensus_proto_trace_v1_trace_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_trace_v1_trace_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_trace_v1_trace_proto_rawDescData)
- })
- return file_opencensus_proto_trace_v1_trace_proto_rawDescData
-}
-
-var file_opencensus_proto_trace_v1_trace_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_opencensus_proto_trace_v1_trace_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
-var file_opencensus_proto_trace_v1_trace_proto_goTypes = []interface{}{
- (Span_SpanKind)(0), // 0: opencensus.proto.trace.v1.Span.SpanKind
- (Span_TimeEvent_MessageEvent_Type)(0), // 1: opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type
- (Span_Link_Type)(0), // 2: opencensus.proto.trace.v1.Span.Link.Type
- (*Span)(nil), // 3: opencensus.proto.trace.v1.Span
- (*Status)(nil), // 4: opencensus.proto.trace.v1.Status
- (*AttributeValue)(nil), // 5: opencensus.proto.trace.v1.AttributeValue
- (*StackTrace)(nil), // 6: opencensus.proto.trace.v1.StackTrace
- (*Module)(nil), // 7: opencensus.proto.trace.v1.Module
- (*TruncatableString)(nil), // 8: opencensus.proto.trace.v1.TruncatableString
- (*Span_Tracestate)(nil), // 9: opencensus.proto.trace.v1.Span.Tracestate
- (*Span_Attributes)(nil), // 10: opencensus.proto.trace.v1.Span.Attributes
- (*Span_TimeEvent)(nil), // 11: opencensus.proto.trace.v1.Span.TimeEvent
- (*Span_TimeEvents)(nil), // 12: opencensus.proto.trace.v1.Span.TimeEvents
- (*Span_Link)(nil), // 13: opencensus.proto.trace.v1.Span.Link
- (*Span_Links)(nil), // 14: opencensus.proto.trace.v1.Span.Links
- (*Span_Tracestate_Entry)(nil), // 15: opencensus.proto.trace.v1.Span.Tracestate.Entry
- nil, // 16: opencensus.proto.trace.v1.Span.Attributes.AttributeMapEntry
- (*Span_TimeEvent_Annotation)(nil), // 17: opencensus.proto.trace.v1.Span.TimeEvent.Annotation
- (*Span_TimeEvent_MessageEvent)(nil), // 18: opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent
- (*StackTrace_StackFrame)(nil), // 19: opencensus.proto.trace.v1.StackTrace.StackFrame
- (*StackTrace_StackFrames)(nil), // 20: opencensus.proto.trace.v1.StackTrace.StackFrames
- (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp
- (*v1.Resource)(nil), // 22: opencensus.proto.resource.v1.Resource
- (*wrapperspb.BoolValue)(nil), // 23: google.protobuf.BoolValue
- (*wrapperspb.UInt32Value)(nil), // 24: google.protobuf.UInt32Value
-}
-var file_opencensus_proto_trace_v1_trace_proto_depIdxs = []int32{
- 9, // 0: opencensus.proto.trace.v1.Span.tracestate:type_name -> opencensus.proto.trace.v1.Span.Tracestate
- 8, // 1: opencensus.proto.trace.v1.Span.name:type_name -> opencensus.proto.trace.v1.TruncatableString
- 0, // 2: opencensus.proto.trace.v1.Span.kind:type_name -> opencensus.proto.trace.v1.Span.SpanKind
- 21, // 3: opencensus.proto.trace.v1.Span.start_time:type_name -> google.protobuf.Timestamp
- 21, // 4: opencensus.proto.trace.v1.Span.end_time:type_name -> google.protobuf.Timestamp
- 10, // 5: opencensus.proto.trace.v1.Span.attributes:type_name -> opencensus.proto.trace.v1.Span.Attributes
- 6, // 6: opencensus.proto.trace.v1.Span.stack_trace:type_name -> opencensus.proto.trace.v1.StackTrace
- 12, // 7: opencensus.proto.trace.v1.Span.time_events:type_name -> opencensus.proto.trace.v1.Span.TimeEvents
- 14, // 8: opencensus.proto.trace.v1.Span.links:type_name -> opencensus.proto.trace.v1.Span.Links
- 4, // 9: opencensus.proto.trace.v1.Span.status:type_name -> opencensus.proto.trace.v1.Status
- 22, // 10: opencensus.proto.trace.v1.Span.resource:type_name -> opencensus.proto.resource.v1.Resource
- 23, // 11: opencensus.proto.trace.v1.Span.same_process_as_parent_span:type_name -> google.protobuf.BoolValue
- 24, // 12: opencensus.proto.trace.v1.Span.child_span_count:type_name -> google.protobuf.UInt32Value
- 8, // 13: opencensus.proto.trace.v1.AttributeValue.string_value:type_name -> opencensus.proto.trace.v1.TruncatableString
- 20, // 14: opencensus.proto.trace.v1.StackTrace.stack_frames:type_name -> opencensus.proto.trace.v1.StackTrace.StackFrames
- 8, // 15: opencensus.proto.trace.v1.Module.module:type_name -> opencensus.proto.trace.v1.TruncatableString
- 8, // 16: opencensus.proto.trace.v1.Module.build_id:type_name -> opencensus.proto.trace.v1.TruncatableString
- 15, // 17: opencensus.proto.trace.v1.Span.Tracestate.entries:type_name -> opencensus.proto.trace.v1.Span.Tracestate.Entry
- 16, // 18: opencensus.proto.trace.v1.Span.Attributes.attribute_map:type_name -> opencensus.proto.trace.v1.Span.Attributes.AttributeMapEntry
- 21, // 19: opencensus.proto.trace.v1.Span.TimeEvent.time:type_name -> google.protobuf.Timestamp
- 17, // 20: opencensus.proto.trace.v1.Span.TimeEvent.annotation:type_name -> opencensus.proto.trace.v1.Span.TimeEvent.Annotation
- 18, // 21: opencensus.proto.trace.v1.Span.TimeEvent.message_event:type_name -> opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent
- 11, // 22: opencensus.proto.trace.v1.Span.TimeEvents.time_event:type_name -> opencensus.proto.trace.v1.Span.TimeEvent
- 2, // 23: opencensus.proto.trace.v1.Span.Link.type:type_name -> opencensus.proto.trace.v1.Span.Link.Type
- 10, // 24: opencensus.proto.trace.v1.Span.Link.attributes:type_name -> opencensus.proto.trace.v1.Span.Attributes
- 9, // 25: opencensus.proto.trace.v1.Span.Link.tracestate:type_name -> opencensus.proto.trace.v1.Span.Tracestate
- 13, // 26: opencensus.proto.trace.v1.Span.Links.link:type_name -> opencensus.proto.trace.v1.Span.Link
- 5, // 27: opencensus.proto.trace.v1.Span.Attributes.AttributeMapEntry.value:type_name -> opencensus.proto.trace.v1.AttributeValue
- 8, // 28: opencensus.proto.trace.v1.Span.TimeEvent.Annotation.description:type_name -> opencensus.proto.trace.v1.TruncatableString
- 10, // 29: opencensus.proto.trace.v1.Span.TimeEvent.Annotation.attributes:type_name -> opencensus.proto.trace.v1.Span.Attributes
- 1, // 30: opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.type:type_name -> opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type
- 8, // 31: opencensus.proto.trace.v1.StackTrace.StackFrame.function_name:type_name -> opencensus.proto.trace.v1.TruncatableString
- 8, // 32: opencensus.proto.trace.v1.StackTrace.StackFrame.original_function_name:type_name -> opencensus.proto.trace.v1.TruncatableString
- 8, // 33: opencensus.proto.trace.v1.StackTrace.StackFrame.file_name:type_name -> opencensus.proto.trace.v1.TruncatableString
- 7, // 34: opencensus.proto.trace.v1.StackTrace.StackFrame.load_module:type_name -> opencensus.proto.trace.v1.Module
- 8, // 35: opencensus.proto.trace.v1.StackTrace.StackFrame.source_version:type_name -> opencensus.proto.trace.v1.TruncatableString
- 19, // 36: opencensus.proto.trace.v1.StackTrace.StackFrames.frame:type_name -> opencensus.proto.trace.v1.StackTrace.StackFrame
- 37, // [37:37] is the sub-list for method output_type
- 37, // [37:37] is the sub-list for method input_type
- 37, // [37:37] is the sub-list for extension type_name
- 37, // [37:37] is the sub-list for extension extendee
- 0, // [0:37] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_trace_v1_trace_proto_init() }
-func file_opencensus_proto_trace_v1_trace_proto_init() {
- if File_opencensus_proto_trace_v1_trace_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Status); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AttributeValue); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StackTrace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Module); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TruncatableString); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_Tracestate); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_Attributes); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_TimeEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_TimeEvents); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_Link); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_Links); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_Tracestate_Entry); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_TimeEvent_Annotation); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span_TimeEvent_MessageEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StackTrace_StackFrame); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StackTrace_StackFrames); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[2].OneofWrappers = []interface{}{
- (*AttributeValue_StringValue)(nil),
- (*AttributeValue_IntValue)(nil),
- (*AttributeValue_BoolValue)(nil),
- (*AttributeValue_DoubleValue)(nil),
- }
- file_opencensus_proto_trace_v1_trace_proto_msgTypes[8].OneofWrappers = []interface{}{
- (*Span_TimeEvent_Annotation_)(nil),
- (*Span_TimeEvent_MessageEvent_)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_trace_v1_trace_proto_rawDesc,
- NumEnums: 3,
- NumMessages: 18,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_opencensus_proto_trace_v1_trace_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_trace_v1_trace_proto_depIdxs,
- EnumInfos: file_opencensus_proto_trace_v1_trace_proto_enumTypes,
- MessageInfos: file_opencensus_proto_trace_v1_trace_proto_msgTypes,
- }.Build()
- File_opencensus_proto_trace_v1_trace_proto = out.File
- file_opencensus_proto_trace_v1_trace_proto_rawDesc = nil
- file_opencensus_proto_trace_v1_trace_proto_goTypes = nil
- file_opencensus_proto_trace_v1_trace_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace_config.pb.go b/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace_config.pb.go
deleted file mode 100644
index ee62b2e3..00000000
--- a/upstream/image/git-init/vendor/github.com/census-instrumentation/opencensus-proto/gen-go/trace/v1/trace_config.pb.go
+++ /dev/null
@@ -1,555 +0,0 @@
-// Copyright 2018, OpenCensus Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.26.0
-// protoc v3.17.3
-// source: opencensus/proto/trace/v1/trace_config.proto
-
-package v1
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- reflect "reflect"
- sync "sync"
-)
-
-const (
- // Verify that this generated code is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
- // Verify that runtime/protoimpl is sufficiently up-to-date.
- _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// How spans should be sampled:
-// - Always off
-// - Always on
-// - Always follow the parent Span's decision (off if no parent).
-type ConstantSampler_ConstantDecision int32
-
-const (
- ConstantSampler_ALWAYS_OFF ConstantSampler_ConstantDecision = 0
- ConstantSampler_ALWAYS_ON ConstantSampler_ConstantDecision = 1
- ConstantSampler_ALWAYS_PARENT ConstantSampler_ConstantDecision = 2
-)
-
-// Enum value maps for ConstantSampler_ConstantDecision.
-var (
- ConstantSampler_ConstantDecision_name = map[int32]string{
- 0: "ALWAYS_OFF",
- 1: "ALWAYS_ON",
- 2: "ALWAYS_PARENT",
- }
- ConstantSampler_ConstantDecision_value = map[string]int32{
- "ALWAYS_OFF": 0,
- "ALWAYS_ON": 1,
- "ALWAYS_PARENT": 2,
- }
-)
-
-func (x ConstantSampler_ConstantDecision) Enum() *ConstantSampler_ConstantDecision {
- p := new(ConstantSampler_ConstantDecision)
- *p = x
- return p
-}
-
-func (x ConstantSampler_ConstantDecision) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ConstantSampler_ConstantDecision) Descriptor() protoreflect.EnumDescriptor {
- return file_opencensus_proto_trace_v1_trace_config_proto_enumTypes[0].Descriptor()
-}
-
-func (ConstantSampler_ConstantDecision) Type() protoreflect.EnumType {
- return &file_opencensus_proto_trace_v1_trace_config_proto_enumTypes[0]
-}
-
-func (x ConstantSampler_ConstantDecision) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ConstantSampler_ConstantDecision.Descriptor instead.
-func (ConstantSampler_ConstantDecision) EnumDescriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP(), []int{2, 0}
-}
-
-// Global configuration of the trace service. All fields must be specified, or
-// the default (zero) values will be used for each type.
-type TraceConfig struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The global default sampler used to make decisions on span sampling.
- //
- // Types that are assignable to Sampler:
- // *TraceConfig_ProbabilitySampler
- // *TraceConfig_ConstantSampler
- // *TraceConfig_RateLimitingSampler
- Sampler isTraceConfig_Sampler `protobuf_oneof:"sampler"`
- // The global default max number of attributes per span.
- MaxNumberOfAttributes int64 `protobuf:"varint,4,opt,name=max_number_of_attributes,json=maxNumberOfAttributes,proto3" json:"max_number_of_attributes,omitempty"`
- // The global default max number of annotation events per span.
- MaxNumberOfAnnotations int64 `protobuf:"varint,5,opt,name=max_number_of_annotations,json=maxNumberOfAnnotations,proto3" json:"max_number_of_annotations,omitempty"`
- // The global default max number of message events per span.
- MaxNumberOfMessageEvents int64 `protobuf:"varint,6,opt,name=max_number_of_message_events,json=maxNumberOfMessageEvents,proto3" json:"max_number_of_message_events,omitempty"`
- // The global default max number of link entries per span.
- MaxNumberOfLinks int64 `protobuf:"varint,7,opt,name=max_number_of_links,json=maxNumberOfLinks,proto3" json:"max_number_of_links,omitempty"`
-}
-
-func (x *TraceConfig) Reset() {
- *x = TraceConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *TraceConfig) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TraceConfig) ProtoMessage() {}
-
-func (x *TraceConfig) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use TraceConfig.ProtoReflect.Descriptor instead.
-func (*TraceConfig) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP(), []int{0}
-}
-
-func (m *TraceConfig) GetSampler() isTraceConfig_Sampler {
- if m != nil {
- return m.Sampler
- }
- return nil
-}
-
-func (x *TraceConfig) GetProbabilitySampler() *ProbabilitySampler {
- if x, ok := x.GetSampler().(*TraceConfig_ProbabilitySampler); ok {
- return x.ProbabilitySampler
- }
- return nil
-}
-
-func (x *TraceConfig) GetConstantSampler() *ConstantSampler {
- if x, ok := x.GetSampler().(*TraceConfig_ConstantSampler); ok {
- return x.ConstantSampler
- }
- return nil
-}
-
-func (x *TraceConfig) GetRateLimitingSampler() *RateLimitingSampler {
- if x, ok := x.GetSampler().(*TraceConfig_RateLimitingSampler); ok {
- return x.RateLimitingSampler
- }
- return nil
-}
-
-func (x *TraceConfig) GetMaxNumberOfAttributes() int64 {
- if x != nil {
- return x.MaxNumberOfAttributes
- }
- return 0
-}
-
-func (x *TraceConfig) GetMaxNumberOfAnnotations() int64 {
- if x != nil {
- return x.MaxNumberOfAnnotations
- }
- return 0
-}
-
-func (x *TraceConfig) GetMaxNumberOfMessageEvents() int64 {
- if x != nil {
- return x.MaxNumberOfMessageEvents
- }
- return 0
-}
-
-func (x *TraceConfig) GetMaxNumberOfLinks() int64 {
- if x != nil {
- return x.MaxNumberOfLinks
- }
- return 0
-}
-
-type isTraceConfig_Sampler interface {
- isTraceConfig_Sampler()
-}
-
-type TraceConfig_ProbabilitySampler struct {
- ProbabilitySampler *ProbabilitySampler `protobuf:"bytes,1,opt,name=probability_sampler,json=probabilitySampler,proto3,oneof"`
-}
-
-type TraceConfig_ConstantSampler struct {
- ConstantSampler *ConstantSampler `protobuf:"bytes,2,opt,name=constant_sampler,json=constantSampler,proto3,oneof"`
-}
-
-type TraceConfig_RateLimitingSampler struct {
- RateLimitingSampler *RateLimitingSampler `protobuf:"bytes,3,opt,name=rate_limiting_sampler,json=rateLimitingSampler,proto3,oneof"`
-}
-
-func (*TraceConfig_ProbabilitySampler) isTraceConfig_Sampler() {}
-
-func (*TraceConfig_ConstantSampler) isTraceConfig_Sampler() {}
-
-func (*TraceConfig_RateLimitingSampler) isTraceConfig_Sampler() {}
-
-// Sampler that tries to uniformly sample traces with a given probability.
-// The probability of sampling a trace is equal to that of the specified probability.
-type ProbabilitySampler struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The desired probability of sampling. Must be within [0.0, 1.0].
- SamplingProbability float64 `protobuf:"fixed64,1,opt,name=samplingProbability,proto3" json:"samplingProbability,omitempty"`
-}
-
-func (x *ProbabilitySampler) Reset() {
- *x = ProbabilitySampler{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ProbabilitySampler) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProbabilitySampler) ProtoMessage() {}
-
-func (x *ProbabilitySampler) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ProbabilitySampler.ProtoReflect.Descriptor instead.
-func (*ProbabilitySampler) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ProbabilitySampler) GetSamplingProbability() float64 {
- if x != nil {
- return x.SamplingProbability
- }
- return 0
-}
-
-// Sampler that always makes a constant decision on span sampling.
-type ConstantSampler struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Decision ConstantSampler_ConstantDecision `protobuf:"varint,1,opt,name=decision,proto3,enum=opencensus.proto.trace.v1.ConstantSampler_ConstantDecision" json:"decision,omitempty"`
-}
-
-func (x *ConstantSampler) Reset() {
- *x = ConstantSampler{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ConstantSampler) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ConstantSampler) ProtoMessage() {}
-
-func (x *ConstantSampler) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ConstantSampler.ProtoReflect.Descriptor instead.
-func (*ConstantSampler) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ConstantSampler) GetDecision() ConstantSampler_ConstantDecision {
- if x != nil {
- return x.Decision
- }
- return ConstantSampler_ALWAYS_OFF
-}
-
-// Sampler that tries to sample with a rate per time window.
-type RateLimitingSampler struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Rate per second.
- Qps int64 `protobuf:"varint,1,opt,name=qps,proto3" json:"qps,omitempty"`
-}
-
-func (x *RateLimitingSampler) Reset() {
- *x = RateLimitingSampler{}
- if protoimpl.UnsafeEnabled {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RateLimitingSampler) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RateLimitingSampler) ProtoMessage() {}
-
-func (x *RateLimitingSampler) ProtoReflect() protoreflect.Message {
- mi := &file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use RateLimitingSampler.ProtoReflect.Descriptor instead.
-func (*RateLimitingSampler) Descriptor() ([]byte, []int) {
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *RateLimitingSampler) GetQps() int64 {
- if x != nil {
- return x.Qps
- }
- return 0
-}
-
-var File_opencensus_proto_trace_v1_trace_config_proto protoreflect.FileDescriptor
-
-var file_opencensus_proto_trace_v1_trace_config_proto_rawDesc = []byte{
- 0x0a, 0x2c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19,
- 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x22, 0x9c, 0x04, 0x0a, 0x0b, 0x54, 0x72,
- 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x13, 0x70, 0x72, 0x6f,
- 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e,
- 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x61,
- 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69,
- 0x6c, 0x69, 0x74, 0x79, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x10, 0x63,
- 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76,
- 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65,
- 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x53, 0x61, 0x6d,
- 0x70, 0x6c, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x15, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d,
- 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
- 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6d, 0x70,
- 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x13, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
- 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61,
- 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61,
- 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
- 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
- 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65,
- 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e,
- 0x0a, 0x1c, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f,
- 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d,
- 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f,
- 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78,
- 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x42, 0x09, 0x0a,
- 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x62,
- 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x30,
- 0x0a, 0x13, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62,
- 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x73, 0x61, 0x6d,
- 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
- 0x22, 0xb0, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x53, 0x61, 0x6d,
- 0x70, 0x6c, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e,
- 0x73, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e,
- 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c,
- 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73,
- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a,
- 0x10, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x10,
- 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x4f, 0x4e, 0x10, 0x01,
- 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x45, 0x4e,
- 0x54, 0x10, 0x02, 0x22, 0x27, 0x0a, 0x13, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
- 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70,
- 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x71, 0x70, 0x73, 0x42, 0x95, 0x01, 0x0a,
- 0x1c, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x54,
- 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
- 0x01, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65,
- 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x2f, 0x76, 0x31, 0xea, 0x02, 0x1c, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x65, 0x6e, 0x73,
- 0x75, 0x73, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x63, 0x65,
- 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_opencensus_proto_trace_v1_trace_config_proto_rawDescOnce sync.Once
- file_opencensus_proto_trace_v1_trace_config_proto_rawDescData = file_opencensus_proto_trace_v1_trace_config_proto_rawDesc
-)
-
-func file_opencensus_proto_trace_v1_trace_config_proto_rawDescGZIP() []byte {
- file_opencensus_proto_trace_v1_trace_config_proto_rawDescOnce.Do(func() {
- file_opencensus_proto_trace_v1_trace_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_opencensus_proto_trace_v1_trace_config_proto_rawDescData)
- })
- return file_opencensus_proto_trace_v1_trace_config_proto_rawDescData
-}
-
-var file_opencensus_proto_trace_v1_trace_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_opencensus_proto_trace_v1_trace_config_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_opencensus_proto_trace_v1_trace_config_proto_goTypes = []interface{}{
- (ConstantSampler_ConstantDecision)(0), // 0: opencensus.proto.trace.v1.ConstantSampler.ConstantDecision
- (*TraceConfig)(nil), // 1: opencensus.proto.trace.v1.TraceConfig
- (*ProbabilitySampler)(nil), // 2: opencensus.proto.trace.v1.ProbabilitySampler
- (*ConstantSampler)(nil), // 3: opencensus.proto.trace.v1.ConstantSampler
- (*RateLimitingSampler)(nil), // 4: opencensus.proto.trace.v1.RateLimitingSampler
-}
-var file_opencensus_proto_trace_v1_trace_config_proto_depIdxs = []int32{
- 2, // 0: opencensus.proto.trace.v1.TraceConfig.probability_sampler:type_name -> opencensus.proto.trace.v1.ProbabilitySampler
- 3, // 1: opencensus.proto.trace.v1.TraceConfig.constant_sampler:type_name -> opencensus.proto.trace.v1.ConstantSampler
- 4, // 2: opencensus.proto.trace.v1.TraceConfig.rate_limiting_sampler:type_name -> opencensus.proto.trace.v1.RateLimitingSampler
- 0, // 3: opencensus.proto.trace.v1.ConstantSampler.decision:type_name -> opencensus.proto.trace.v1.ConstantSampler.ConstantDecision
- 4, // [4:4] is the sub-list for method output_type
- 4, // [4:4] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
-}
-
-func init() { file_opencensus_proto_trace_v1_trace_config_proto_init() }
-func file_opencensus_proto_trace_v1_trace_config_proto_init() {
- if File_opencensus_proto_trace_v1_trace_config_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TraceConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProbabilitySampler); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ConstantSampler); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RateLimitingSampler); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_opencensus_proto_trace_v1_trace_config_proto_msgTypes[0].OneofWrappers = []interface{}{
- (*TraceConfig_ProbabilitySampler)(nil),
- (*TraceConfig_ConstantSampler)(nil),
- (*TraceConfig_RateLimitingSampler)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_opencensus_proto_trace_v1_trace_config_proto_rawDesc,
- NumEnums: 1,
- NumMessages: 4,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_opencensus_proto_trace_v1_trace_config_proto_goTypes,
- DependencyIndexes: file_opencensus_proto_trace_v1_trace_config_proto_depIdxs,
- EnumInfos: file_opencensus_proto_trace_v1_trace_config_proto_enumTypes,
- MessageInfos: file_opencensus_proto_trace_v1_trace_config_proto_msgTypes,
- }.Build()
- File_opencensus_proto_trace_v1_trace_config_proto = out.File
- file_opencensus_proto_trace_v1_trace_config_proto_rawDesc = nil
- file_opencensus_proto_trace_v1_trace_config_proto_goTypes = nil
- file_opencensus_proto_trace_v1_trace_config_proto_depIdxs = nil
-}
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/LICENSE.txt b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/LICENSE.txt
deleted file mode 100644
index 24b53065..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2016 Caleb Spare
-
-MIT License
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/README.md b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/README.md
deleted file mode 100644
index 33c88305..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# xxhash
-
-[](https://pkg.go.dev/github.com/cespare/xxhash/v2)
-[](https://github.com/cespare/xxhash/actions/workflows/test.yml)
-
-xxhash is a Go implementation of the 64-bit [xxHash] algorithm, XXH64. This is a
-high-quality hashing algorithm that is much faster than anything in the Go
-standard library.
-
-This package provides a straightforward API:
-
-```
-func Sum64(b []byte) uint64
-func Sum64String(s string) uint64
-type Digest struct{ ... }
- func New() *Digest
-```
-
-The `Digest` type implements hash.Hash64. Its key methods are:
-
-```
-func (*Digest) Write([]byte) (int, error)
-func (*Digest) WriteString(string) (int, error)
-func (*Digest) Sum64() uint64
-```
-
-The package is written with optimized pure Go and also contains even faster
-assembly implementations for amd64 and arm64. If desired, the `purego` build tag
-opts into using the Go code even on those architectures.
-
-[xxHash]: http://cyan4973.github.io/xxHash/
-
-## Compatibility
-
-This package is in a module and the latest code is in version 2 of the module.
-You need a version of Go with at least "minimal module compatibility" to use
-github.com/cespare/xxhash/v2:
-
-* 1.9.7+ for Go 1.9
-* 1.10.3+ for Go 1.10
-* Go 1.11 or later
-
-I recommend using the latest release of Go.
-
-## Benchmarks
-
-Here are some quick benchmarks comparing the pure-Go and assembly
-implementations of Sum64.
-
-| input size | purego | asm |
-| ---------- | --------- | --------- |
-| 4 B | 1.3 GB/s | 1.2 GB/s |
-| 16 B | 2.9 GB/s | 3.5 GB/s |
-| 100 B | 6.9 GB/s | 8.1 GB/s |
-| 4 KB | 11.7 GB/s | 16.7 GB/s |
-| 10 MB | 12.0 GB/s | 17.3 GB/s |
-
-These numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C
-CPU using the following commands under Go 1.19.2:
-
-```
-benchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$')
-benchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$')
-```
-
-## Projects using this package
-
-- [InfluxDB](https://github.com/influxdata/influxdb)
-- [Prometheus](https://github.com/prometheus/prometheus)
-- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)
-- [FreeCache](https://github.com/coocood/freecache)
-- [FastCache](https://github.com/VictoriaMetrics/fastcache)
-- [Ristretto](https://github.com/dgraph-io/ristretto)
-- [Badger](https://github.com/dgraph-io/badger)
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/testall.sh b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/testall.sh
deleted file mode 100644
index 94b9c443..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/testall.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-set -eu -o pipefail
-
-# Small convenience script for running the tests with various combinations of
-# arch/tags. This assumes we're running on amd64 and have qemu available.
-
-go test ./...
-go test -tags purego ./...
-GOARCH=arm64 go test
-GOARCH=arm64 go test -tags purego
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash.go b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash.go
deleted file mode 100644
index 78bddf1c..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash.go
+++ /dev/null
@@ -1,243 +0,0 @@
-// Package xxhash implements the 64-bit variant of xxHash (XXH64) as described
-// at http://cyan4973.github.io/xxHash/.
-package xxhash
-
-import (
- "encoding/binary"
- "errors"
- "math/bits"
-)
-
-const (
- prime1 uint64 = 11400714785074694791
- prime2 uint64 = 14029467366897019727
- prime3 uint64 = 1609587929392839161
- prime4 uint64 = 9650029242287828579
- prime5 uint64 = 2870177450012600261
-)
-
-// Store the primes in an array as well.
-//
-// The consts are used when possible in Go code to avoid MOVs but we need a
-// contiguous array for the assembly code.
-var primes = [...]uint64{prime1, prime2, prime3, prime4, prime5}
-
-// Digest implements hash.Hash64.
-//
-// Note that a zero-valued Digest is not ready to receive writes.
-// Call Reset or create a Digest using New before calling other methods.
-type Digest struct {
- v1 uint64
- v2 uint64
- v3 uint64
- v4 uint64
- total uint64
- mem [32]byte
- n int // how much of mem is used
-}
-
-// New creates a new Digest with a zero seed.
-func New() *Digest {
- return NewWithSeed(0)
-}
-
-// NewWithSeed creates a new Digest with the given seed.
-func NewWithSeed(seed uint64) *Digest {
- var d Digest
- d.ResetWithSeed(seed)
- return &d
-}
-
-// Reset clears the Digest's state so that it can be reused.
-// It uses a seed value of zero.
-func (d *Digest) Reset() {
- d.ResetWithSeed(0)
-}
-
-// ResetWithSeed clears the Digest's state so that it can be reused.
-// It uses the given seed to initialize the state.
-func (d *Digest) ResetWithSeed(seed uint64) {
- d.v1 = seed + prime1 + prime2
- d.v2 = seed + prime2
- d.v3 = seed
- d.v4 = seed - prime1
- d.total = 0
- d.n = 0
-}
-
-// Size always returns 8 bytes.
-func (d *Digest) Size() int { return 8 }
-
-// BlockSize always returns 32 bytes.
-func (d *Digest) BlockSize() int { return 32 }
-
-// Write adds more data to d. It always returns len(b), nil.
-func (d *Digest) Write(b []byte) (n int, err error) {
- n = len(b)
- d.total += uint64(n)
-
- memleft := d.mem[d.n&(len(d.mem)-1):]
-
- if d.n+n < 32 {
- // This new data doesn't even fill the current block.
- copy(memleft, b)
- d.n += n
- return
- }
-
- if d.n > 0 {
- // Finish off the partial block.
- c := copy(memleft, b)
- d.v1 = round(d.v1, u64(d.mem[0:8]))
- d.v2 = round(d.v2, u64(d.mem[8:16]))
- d.v3 = round(d.v3, u64(d.mem[16:24]))
- d.v4 = round(d.v4, u64(d.mem[24:32]))
- b = b[c:]
- d.n = 0
- }
-
- if len(b) >= 32 {
- // One or more full blocks left.
- nw := writeBlocks(d, b)
- b = b[nw:]
- }
-
- // Store any remaining partial block.
- copy(d.mem[:], b)
- d.n = len(b)
-
- return
-}
-
-// Sum appends the current hash to b and returns the resulting slice.
-func (d *Digest) Sum(b []byte) []byte {
- s := d.Sum64()
- return append(
- b,
- byte(s>>56),
- byte(s>>48),
- byte(s>>40),
- byte(s>>32),
- byte(s>>24),
- byte(s>>16),
- byte(s>>8),
- byte(s),
- )
-}
-
-// Sum64 returns the current hash.
-func (d *Digest) Sum64() uint64 {
- var h uint64
-
- if d.total >= 32 {
- v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4
- h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)
- h = mergeRound(h, v1)
- h = mergeRound(h, v2)
- h = mergeRound(h, v3)
- h = mergeRound(h, v4)
- } else {
- h = d.v3 + prime5
- }
-
- h += d.total
-
- b := d.mem[:d.n&(len(d.mem)-1)]
- for ; len(b) >= 8; b = b[8:] {
- k1 := round(0, u64(b[:8]))
- h ^= k1
- h = rol27(h)*prime1 + prime4
- }
- if len(b) >= 4 {
- h ^= uint64(u32(b[:4])) * prime1
- h = rol23(h)*prime2 + prime3
- b = b[4:]
- }
- for ; len(b) > 0; b = b[1:] {
- h ^= uint64(b[0]) * prime5
- h = rol11(h) * prime1
- }
-
- h ^= h >> 33
- h *= prime2
- h ^= h >> 29
- h *= prime3
- h ^= h >> 32
-
- return h
-}
-
-const (
- magic = "xxh\x06"
- marshaledSize = len(magic) + 8*5 + 32
-)
-
-// MarshalBinary implements the encoding.BinaryMarshaler interface.
-func (d *Digest) MarshalBinary() ([]byte, error) {
- b := make([]byte, 0, marshaledSize)
- b = append(b, magic...)
- b = appendUint64(b, d.v1)
- b = appendUint64(b, d.v2)
- b = appendUint64(b, d.v3)
- b = appendUint64(b, d.v4)
- b = appendUint64(b, d.total)
- b = append(b, d.mem[:d.n]...)
- b = b[:len(b)+len(d.mem)-d.n]
- return b, nil
-}
-
-// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
-func (d *Digest) UnmarshalBinary(b []byte) error {
- if len(b) < len(magic) || string(b[:len(magic)]) != magic {
- return errors.New("xxhash: invalid hash state identifier")
- }
- if len(b) != marshaledSize {
- return errors.New("xxhash: invalid hash state size")
- }
- b = b[len(magic):]
- b, d.v1 = consumeUint64(b)
- b, d.v2 = consumeUint64(b)
- b, d.v3 = consumeUint64(b)
- b, d.v4 = consumeUint64(b)
- b, d.total = consumeUint64(b)
- copy(d.mem[:], b)
- d.n = int(d.total % uint64(len(d.mem)))
- return nil
-}
-
-func appendUint64(b []byte, x uint64) []byte {
- var a [8]byte
- binary.LittleEndian.PutUint64(a[:], x)
- return append(b, a[:]...)
-}
-
-func consumeUint64(b []byte) ([]byte, uint64) {
- x := u64(b)
- return b[8:], x
-}
-
-func u64(b []byte) uint64 { return binary.LittleEndian.Uint64(b) }
-func u32(b []byte) uint32 { return binary.LittleEndian.Uint32(b) }
-
-func round(acc, input uint64) uint64 {
- acc += input * prime2
- acc = rol31(acc)
- acc *= prime1
- return acc
-}
-
-func mergeRound(acc, val uint64) uint64 {
- val = round(0, val)
- acc ^= val
- acc = acc*prime1 + prime4
- return acc
-}
-
-func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) }
-func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) }
-func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }
-func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }
-func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }
-func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }
-func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }
-func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
deleted file mode 100644
index 3e8b1325..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
+++ /dev/null
@@ -1,209 +0,0 @@
-//go:build !appengine && gc && !purego
-// +build !appengine
-// +build gc
-// +build !purego
-
-#include "textflag.h"
-
-// Registers:
-#define h AX
-#define d AX
-#define p SI // pointer to advance through b
-#define n DX
-#define end BX // loop end
-#define v1 R8
-#define v2 R9
-#define v3 R10
-#define v4 R11
-#define x R12
-#define prime1 R13
-#define prime2 R14
-#define prime4 DI
-
-#define round(acc, x) \
- IMULQ prime2, x \
- ADDQ x, acc \
- ROLQ $31, acc \
- IMULQ prime1, acc
-
-// round0 performs the operation x = round(0, x).
-#define round0(x) \
- IMULQ prime2, x \
- ROLQ $31, x \
- IMULQ prime1, x
-
-// mergeRound applies a merge round on the two registers acc and x.
-// It assumes that prime1, prime2, and prime4 have been loaded.
-#define mergeRound(acc, x) \
- round0(x) \
- XORQ x, acc \
- IMULQ prime1, acc \
- ADDQ prime4, acc
-
-// blockLoop processes as many 32-byte blocks as possible,
-// updating v1, v2, v3, and v4. It assumes that there is at least one block
-// to process.
-#define blockLoop() \
-loop: \
- MOVQ +0(p), x \
- round(v1, x) \
- MOVQ +8(p), x \
- round(v2, x) \
- MOVQ +16(p), x \
- round(v3, x) \
- MOVQ +24(p), x \
- round(v4, x) \
- ADDQ $32, p \
- CMPQ p, end \
- JLE loop
-
-// func Sum64(b []byte) uint64
-TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32
- // Load fixed primes.
- MOVQ ·primes+0(SB), prime1
- MOVQ ·primes+8(SB), prime2
- MOVQ ·primes+24(SB), prime4
-
- // Load slice.
- MOVQ b_base+0(FP), p
- MOVQ b_len+8(FP), n
- LEAQ (p)(n*1), end
-
- // The first loop limit will be len(b)-32.
- SUBQ $32, end
-
- // Check whether we have at least one block.
- CMPQ n, $32
- JLT noBlocks
-
- // Set up initial state (v1, v2, v3, v4).
- MOVQ prime1, v1
- ADDQ prime2, v1
- MOVQ prime2, v2
- XORQ v3, v3
- XORQ v4, v4
- SUBQ prime1, v4
-
- blockLoop()
-
- MOVQ v1, h
- ROLQ $1, h
- MOVQ v2, x
- ROLQ $7, x
- ADDQ x, h
- MOVQ v3, x
- ROLQ $12, x
- ADDQ x, h
- MOVQ v4, x
- ROLQ $18, x
- ADDQ x, h
-
- mergeRound(h, v1)
- mergeRound(h, v2)
- mergeRound(h, v3)
- mergeRound(h, v4)
-
- JMP afterBlocks
-
-noBlocks:
- MOVQ ·primes+32(SB), h
-
-afterBlocks:
- ADDQ n, h
-
- ADDQ $24, end
- CMPQ p, end
- JG try4
-
-loop8:
- MOVQ (p), x
- ADDQ $8, p
- round0(x)
- XORQ x, h
- ROLQ $27, h
- IMULQ prime1, h
- ADDQ prime4, h
-
- CMPQ p, end
- JLE loop8
-
-try4:
- ADDQ $4, end
- CMPQ p, end
- JG try1
-
- MOVL (p), x
- ADDQ $4, p
- IMULQ prime1, x
- XORQ x, h
-
- ROLQ $23, h
- IMULQ prime2, h
- ADDQ ·primes+16(SB), h
-
-try1:
- ADDQ $4, end
- CMPQ p, end
- JGE finalize
-
-loop1:
- MOVBQZX (p), x
- ADDQ $1, p
- IMULQ ·primes+32(SB), x
- XORQ x, h
- ROLQ $11, h
- IMULQ prime1, h
-
- CMPQ p, end
- JL loop1
-
-finalize:
- MOVQ h, x
- SHRQ $33, x
- XORQ x, h
- IMULQ prime2, h
- MOVQ h, x
- SHRQ $29, x
- XORQ x, h
- IMULQ ·primes+16(SB), h
- MOVQ h, x
- SHRQ $32, x
- XORQ x, h
-
- MOVQ h, ret+24(FP)
- RET
-
-// func writeBlocks(d *Digest, b []byte) int
-TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40
- // Load fixed primes needed for round.
- MOVQ ·primes+0(SB), prime1
- MOVQ ·primes+8(SB), prime2
-
- // Load slice.
- MOVQ b_base+8(FP), p
- MOVQ b_len+16(FP), n
- LEAQ (p)(n*1), end
- SUBQ $32, end
-
- // Load vN from d.
- MOVQ s+0(FP), d
- MOVQ 0(d), v1
- MOVQ 8(d), v2
- MOVQ 16(d), v3
- MOVQ 24(d), v4
-
- // We don't need to check the loop condition here; this function is
- // always called with at least one block of data to process.
- blockLoop()
-
- // Copy vN back to d.
- MOVQ v1, 0(d)
- MOVQ v2, 8(d)
- MOVQ v3, 16(d)
- MOVQ v4, 24(d)
-
- // The number of bytes written is p minus the old base pointer.
- SUBQ b_base+8(FP), p
- MOVQ p, ret+32(FP)
-
- RET
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s
deleted file mode 100644
index 7e3145a2..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_arm64.s
+++ /dev/null
@@ -1,183 +0,0 @@
-//go:build !appengine && gc && !purego
-// +build !appengine
-// +build gc
-// +build !purego
-
-#include "textflag.h"
-
-// Registers:
-#define digest R1
-#define h R2 // return value
-#define p R3 // input pointer
-#define n R4 // input length
-#define nblocks R5 // n / 32
-#define prime1 R7
-#define prime2 R8
-#define prime3 R9
-#define prime4 R10
-#define prime5 R11
-#define v1 R12
-#define v2 R13
-#define v3 R14
-#define v4 R15
-#define x1 R20
-#define x2 R21
-#define x3 R22
-#define x4 R23
-
-#define round(acc, x) \
- MADD prime2, acc, x, acc \
- ROR $64-31, acc \
- MUL prime1, acc
-
-// round0 performs the operation x = round(0, x).
-#define round0(x) \
- MUL prime2, x \
- ROR $64-31, x \
- MUL prime1, x
-
-#define mergeRound(acc, x) \
- round0(x) \
- EOR x, acc \
- MADD acc, prime4, prime1, acc
-
-// blockLoop processes as many 32-byte blocks as possible,
-// updating v1, v2, v3, and v4. It assumes that n >= 32.
-#define blockLoop() \
- LSR $5, n, nblocks \
- PCALIGN $16 \
- loop: \
- LDP.P 16(p), (x1, x2) \
- LDP.P 16(p), (x3, x4) \
- round(v1, x1) \
- round(v2, x2) \
- round(v3, x3) \
- round(v4, x4) \
- SUB $1, nblocks \
- CBNZ nblocks, loop
-
-// func Sum64(b []byte) uint64
-TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32
- LDP b_base+0(FP), (p, n)
-
- LDP ·primes+0(SB), (prime1, prime2)
- LDP ·primes+16(SB), (prime3, prime4)
- MOVD ·primes+32(SB), prime5
-
- CMP $32, n
- CSEL LT, prime5, ZR, h // if n < 32 { h = prime5 } else { h = 0 }
- BLT afterLoop
-
- ADD prime1, prime2, v1
- MOVD prime2, v2
- MOVD $0, v3
- NEG prime1, v4
-
- blockLoop()
-
- ROR $64-1, v1, x1
- ROR $64-7, v2, x2
- ADD x1, x2
- ROR $64-12, v3, x3
- ROR $64-18, v4, x4
- ADD x3, x4
- ADD x2, x4, h
-
- mergeRound(h, v1)
- mergeRound(h, v2)
- mergeRound(h, v3)
- mergeRound(h, v4)
-
-afterLoop:
- ADD n, h
-
- TBZ $4, n, try8
- LDP.P 16(p), (x1, x2)
-
- round0(x1)
-
- // NOTE: here and below, sequencing the EOR after the ROR (using a
- // rotated register) is worth a small but measurable speedup for small
- // inputs.
- ROR $64-27, h
- EOR x1 @> 64-27, h, h
- MADD h, prime4, prime1, h
-
- round0(x2)
- ROR $64-27, h
- EOR x2 @> 64-27, h, h
- MADD h, prime4, prime1, h
-
-try8:
- TBZ $3, n, try4
- MOVD.P 8(p), x1
-
- round0(x1)
- ROR $64-27, h
- EOR x1 @> 64-27, h, h
- MADD h, prime4, prime1, h
-
-try4:
- TBZ $2, n, try2
- MOVWU.P 4(p), x2
-
- MUL prime1, x2
- ROR $64-23, h
- EOR x2 @> 64-23, h, h
- MADD h, prime3, prime2, h
-
-try2:
- TBZ $1, n, try1
- MOVHU.P 2(p), x3
- AND $255, x3, x1
- LSR $8, x3, x2
-
- MUL prime5, x1
- ROR $64-11, h
- EOR x1 @> 64-11, h, h
- MUL prime1, h
-
- MUL prime5, x2
- ROR $64-11, h
- EOR x2 @> 64-11, h, h
- MUL prime1, h
-
-try1:
- TBZ $0, n, finalize
- MOVBU (p), x4
-
- MUL prime5, x4
- ROR $64-11, h
- EOR x4 @> 64-11, h, h
- MUL prime1, h
-
-finalize:
- EOR h >> 33, h
- MUL prime2, h
- EOR h >> 29, h
- MUL prime3, h
- EOR h >> 32, h
-
- MOVD h, ret+24(FP)
- RET
-
-// func writeBlocks(d *Digest, b []byte) int
-TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40
- LDP ·primes+0(SB), (prime1, prime2)
-
- // Load state. Assume v[1-4] are stored contiguously.
- MOVD d+0(FP), digest
- LDP 0(digest), (v1, v2)
- LDP 16(digest), (v3, v4)
-
- LDP b_base+8(FP), (p, n)
-
- blockLoop()
-
- // Store updated state.
- STP (v1, v2), 0(digest)
- STP (v3, v4), 16(digest)
-
- BIC $31, n
- MOVD n, ret+32(FP)
- RET
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
deleted file mode 100644
index 78f95f25..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go
+++ /dev/null
@@ -1,15 +0,0 @@
-//go:build (amd64 || arm64) && !appengine && gc && !purego
-// +build amd64 arm64
-// +build !appengine
-// +build gc
-// +build !purego
-
-package xxhash
-
-// Sum64 computes the 64-bit xxHash digest of b with a zero seed.
-//
-//go:noescape
-func Sum64(b []byte) uint64
-
-//go:noescape
-func writeBlocks(d *Digest, b []byte) int
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_other.go b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
deleted file mode 100644
index 118e49e8..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_other.go
+++ /dev/null
@@ -1,76 +0,0 @@
-//go:build (!amd64 && !arm64) || appengine || !gc || purego
-// +build !amd64,!arm64 appengine !gc purego
-
-package xxhash
-
-// Sum64 computes the 64-bit xxHash digest of b with a zero seed.
-func Sum64(b []byte) uint64 {
- // A simpler version would be
- // d := New()
- // d.Write(b)
- // return d.Sum64()
- // but this is faster, particularly for small inputs.
-
- n := len(b)
- var h uint64
-
- if n >= 32 {
- v1 := primes[0] + prime2
- v2 := prime2
- v3 := uint64(0)
- v4 := -primes[0]
- for len(b) >= 32 {
- v1 = round(v1, u64(b[0:8:len(b)]))
- v2 = round(v2, u64(b[8:16:len(b)]))
- v3 = round(v3, u64(b[16:24:len(b)]))
- v4 = round(v4, u64(b[24:32:len(b)]))
- b = b[32:len(b):len(b)]
- }
- h = rol1(v1) + rol7(v2) + rol12(v3) + rol18(v4)
- h = mergeRound(h, v1)
- h = mergeRound(h, v2)
- h = mergeRound(h, v3)
- h = mergeRound(h, v4)
- } else {
- h = prime5
- }
-
- h += uint64(n)
-
- for ; len(b) >= 8; b = b[8:] {
- k1 := round(0, u64(b[:8]))
- h ^= k1
- h = rol27(h)*prime1 + prime4
- }
- if len(b) >= 4 {
- h ^= uint64(u32(b[:4])) * prime1
- h = rol23(h)*prime2 + prime3
- b = b[4:]
- }
- for ; len(b) > 0; b = b[1:] {
- h ^= uint64(b[0]) * prime5
- h = rol11(h) * prime1
- }
-
- h ^= h >> 33
- h *= prime2
- h ^= h >> 29
- h *= prime3
- h ^= h >> 32
-
- return h
-}
-
-func writeBlocks(d *Digest, b []byte) int {
- v1, v2, v3, v4 := d.v1, d.v2, d.v3, d.v4
- n := len(b)
- for len(b) >= 32 {
- v1 = round(v1, u64(b[0:8:len(b)]))
- v2 = round(v2, u64(b[8:16:len(b)]))
- v3 = round(v3, u64(b[16:24:len(b)]))
- v4 = round(v4, u64(b[24:32:len(b)]))
- b = b[32:len(b):len(b)]
- }
- d.v1, d.v2, d.v3, d.v4 = v1, v2, v3, v4
- return n - len(b)
-}
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
deleted file mode 100644
index 05f5e7df..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go
+++ /dev/null
@@ -1,16 +0,0 @@
-//go:build appengine
-// +build appengine
-
-// This file contains the safe implementations of otherwise unsafe-using code.
-
-package xxhash
-
-// Sum64String computes the 64-bit xxHash digest of s with a zero seed.
-func Sum64String(s string) uint64 {
- return Sum64([]byte(s))
-}
-
-// WriteString adds more data to d. It always returns len(s), nil.
-func (d *Digest) WriteString(s string) (n int, err error) {
- return d.Write([]byte(s))
-}
diff --git a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go b/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
deleted file mode 100644
index cf9d42ae..00000000
--- a/upstream/image/git-init/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
+++ /dev/null
@@ -1,58 +0,0 @@
-//go:build !appengine
-// +build !appengine
-
-// This file encapsulates usage of unsafe.
-// xxhash_safe.go contains the safe implementations.
-
-package xxhash
-
-import (
- "unsafe"
-)
-
-// In the future it's possible that compiler optimizations will make these
-// XxxString functions unnecessary by realizing that calls such as
-// Sum64([]byte(s)) don't need to copy s. See https://go.dev/issue/2205.
-// If that happens, even if we keep these functions they can be replaced with
-// the trivial safe code.
-
-// NOTE: The usual way of doing an unsafe string-to-[]byte conversion is:
-//
-// var b []byte
-// bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
-// bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
-// bh.Len = len(s)
-// bh.Cap = len(s)
-//
-// Unfortunately, as of Go 1.15.3 the inliner's cost model assigns a high enough
-// weight to this sequence of expressions that any function that uses it will
-// not be inlined. Instead, the functions below use a different unsafe
-// conversion designed to minimize the inliner weight and allow both to be
-// inlined. There is also a test (TestInlining) which verifies that these are
-// inlined.
-//
-// See https://github.com/golang/go/issues/42739 for discussion.
-
-// Sum64String computes the 64-bit xxHash digest of s with a zero seed.
-// It may be faster than Sum64([]byte(s)) by avoiding a copy.
-func Sum64String(s string) uint64 {
- b := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)}))
- return Sum64(b)
-}
-
-// WriteString adds more data to d. It always returns len(s), nil.
-// It may be faster than Write([]byte(s)) by avoiding a copy.
-func (d *Digest) WriteString(s string) (n int, err error) {
- d.Write(*(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})))
- // d.Write always returns len(s), nil.
- // Ignoring the return output and returning these fixed values buys a
- // savings of 6 in the inliner's cost model.
- return len(s), nil
-}
-
-// sliceHeader is similar to reflect.SliceHeader, but it assumes that the layout
-// of the first two words is the same as the layout of a string.
-type sliceHeader struct {
- s string
- cap int
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/LICENSE b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/LICENSE
deleted file mode 100644
index bc52e96f..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2012-2016 Dave Collins
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypass.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypass.go
deleted file mode 100644
index 79299478..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypass.go
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright (c) 2015-2016 Dave Collins
-//
-// Permission to use, copy, modify, and distribute this software for any
-// purpose with or without fee is hereby granted, provided that the above
-// copyright notice and this permission notice appear in all copies.
-//
-// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-// NOTE: Due to the following build constraints, this file will only be compiled
-// when the code is not running on Google App Engine, compiled by GopherJS, and
-// "-tags safe" is not added to the go build command line. The "disableunsafe"
-// tag is deprecated and thus should not be used.
-// Go versions prior to 1.4 are disabled because they use a different layout
-// for interfaces which make the implementation of unsafeReflectValue more complex.
-// +build !js,!appengine,!safe,!disableunsafe,go1.4
-
-package spew
-
-import (
- "reflect"
- "unsafe"
-)
-
-const (
- // UnsafeDisabled is a build-time constant which specifies whether or
- // not access to the unsafe package is available.
- UnsafeDisabled = false
-
- // ptrSize is the size of a pointer on the current arch.
- ptrSize = unsafe.Sizeof((*byte)(nil))
-)
-
-type flag uintptr
-
-var (
- // flagRO indicates whether the value field of a reflect.Value
- // is read-only.
- flagRO flag
-
- // flagAddr indicates whether the address of the reflect.Value's
- // value may be taken.
- flagAddr flag
-)
-
-// flagKindMask holds the bits that make up the kind
-// part of the flags field. In all the supported versions,
-// it is in the lower 5 bits.
-const flagKindMask = flag(0x1f)
-
-// Different versions of Go have used different
-// bit layouts for the flags type. This table
-// records the known combinations.
-var okFlags = []struct {
- ro, addr flag
-}{{
- // From Go 1.4 to 1.5
- ro: 1 << 5,
- addr: 1 << 7,
-}, {
- // Up to Go tip.
- ro: 1<<5 | 1<<6,
- addr: 1 << 8,
-}}
-
-var flagValOffset = func() uintptr {
- field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag")
- if !ok {
- panic("reflect.Value has no flag field")
- }
- return field.Offset
-}()
-
-// flagField returns a pointer to the flag field of a reflect.Value.
-func flagField(v *reflect.Value) *flag {
- return (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset))
-}
-
-// unsafeReflectValue converts the passed reflect.Value into a one that bypasses
-// the typical safety restrictions preventing access to unaddressable and
-// unexported data. It works by digging the raw pointer to the underlying
-// value out of the protected value and generating a new unprotected (unsafe)
-// reflect.Value to it.
-//
-// This allows us to check for implementations of the Stringer and error
-// interfaces to be used for pretty printing ordinarily unaddressable and
-// inaccessible values such as unexported struct fields.
-func unsafeReflectValue(v reflect.Value) reflect.Value {
- if !v.IsValid() || (v.CanInterface() && v.CanAddr()) {
- return v
- }
- flagFieldPtr := flagField(&v)
- *flagFieldPtr &^= flagRO
- *flagFieldPtr |= flagAddr
- return v
-}
-
-// Sanity checks against future reflect package changes
-// to the type or semantics of the Value.flag field.
-func init() {
- field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag")
- if !ok {
- panic("reflect.Value has no flag field")
- }
- if field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() {
- panic("reflect.Value flag field has changed kind")
- }
- type t0 int
- var t struct {
- A t0
- // t0 will have flagEmbedRO set.
- t0
- // a will have flagStickyRO set
- a t0
- }
- vA := reflect.ValueOf(t).FieldByName("A")
- va := reflect.ValueOf(t).FieldByName("a")
- vt0 := reflect.ValueOf(t).FieldByName("t0")
-
- // Infer flagRO from the difference between the flags
- // for the (otherwise identical) fields in t.
- flagPublic := *flagField(&vA)
- flagWithRO := *flagField(&va) | *flagField(&vt0)
- flagRO = flagPublic ^ flagWithRO
-
- // Infer flagAddr from the difference between a value
- // taken from a pointer and not.
- vPtrA := reflect.ValueOf(&t).Elem().FieldByName("A")
- flagNoPtr := *flagField(&vA)
- flagPtr := *flagField(&vPtrA)
- flagAddr = flagNoPtr ^ flagPtr
-
- // Check that the inferred flags tally with one of the known versions.
- for _, f := range okFlags {
- if flagRO == f.ro && flagAddr == f.addr {
- return
- }
- }
- panic("reflect.Value read-only flag has changed semantics")
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
deleted file mode 100644
index 205c28d6..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2015-2016 Dave Collins
-//
-// Permission to use, copy, modify, and distribute this software for any
-// purpose with or without fee is hereby granted, provided that the above
-// copyright notice and this permission notice appear in all copies.
-//
-// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-// NOTE: Due to the following build constraints, this file will only be compiled
-// when the code is running on Google App Engine, compiled by GopherJS, or
-// "-tags safe" is added to the go build command line. The "disableunsafe"
-// tag is deprecated and thus should not be used.
-// +build js appengine safe disableunsafe !go1.4
-
-package spew
-
-import "reflect"
-
-const (
- // UnsafeDisabled is a build-time constant which specifies whether or
- // not access to the unsafe package is available.
- UnsafeDisabled = true
-)
-
-// unsafeReflectValue typically converts the passed reflect.Value into a one
-// that bypasses the typical safety restrictions preventing access to
-// unaddressable and unexported data. However, doing this relies on access to
-// the unsafe package. This is a stub version which simply returns the passed
-// reflect.Value when the unsafe package is not available.
-func unsafeReflectValue(v reflect.Value) reflect.Value {
- return v
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/common.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/common.go
deleted file mode 100644
index 1be8ce94..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/common.go
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-package spew
-
-import (
- "bytes"
- "fmt"
- "io"
- "reflect"
- "sort"
- "strconv"
-)
-
-// Some constants in the form of bytes to avoid string overhead. This mirrors
-// the technique used in the fmt package.
-var (
- panicBytes = []byte("(PANIC=")
- plusBytes = []byte("+")
- iBytes = []byte("i")
- trueBytes = []byte("true")
- falseBytes = []byte("false")
- interfaceBytes = []byte("(interface {})")
- commaNewlineBytes = []byte(",\n")
- newlineBytes = []byte("\n")
- openBraceBytes = []byte("{")
- openBraceNewlineBytes = []byte("{\n")
- closeBraceBytes = []byte("}")
- asteriskBytes = []byte("*")
- colonBytes = []byte(":")
- colonSpaceBytes = []byte(": ")
- openParenBytes = []byte("(")
- closeParenBytes = []byte(")")
- spaceBytes = []byte(" ")
- pointerChainBytes = []byte("->")
- nilAngleBytes = []byte("")
- maxNewlineBytes = []byte("\n")
- maxShortBytes = []byte("")
- circularBytes = []byte("")
- circularShortBytes = []byte("")
- invalidAngleBytes = []byte("")
- openBracketBytes = []byte("[")
- closeBracketBytes = []byte("]")
- percentBytes = []byte("%")
- precisionBytes = []byte(".")
- openAngleBytes = []byte("<")
- closeAngleBytes = []byte(">")
- openMapBytes = []byte("map[")
- closeMapBytes = []byte("]")
- lenEqualsBytes = []byte("len=")
- capEqualsBytes = []byte("cap=")
-)
-
-// hexDigits is used to map a decimal value to a hex digit.
-var hexDigits = "0123456789abcdef"
-
-// catchPanic handles any panics that might occur during the handleMethods
-// calls.
-func catchPanic(w io.Writer, v reflect.Value) {
- if err := recover(); err != nil {
- w.Write(panicBytes)
- fmt.Fprintf(w, "%v", err)
- w.Write(closeParenBytes)
- }
-}
-
-// handleMethods attempts to call the Error and String methods on the underlying
-// type the passed reflect.Value represents and outputes the result to Writer w.
-//
-// It handles panics in any called methods by catching and displaying the error
-// as the formatted value.
-func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) {
- // We need an interface to check if the type implements the error or
- // Stringer interface. However, the reflect package won't give us an
- // interface on certain things like unexported struct fields in order
- // to enforce visibility rules. We use unsafe, when it's available,
- // to bypass these restrictions since this package does not mutate the
- // values.
- if !v.CanInterface() {
- if UnsafeDisabled {
- return false
- }
-
- v = unsafeReflectValue(v)
- }
-
- // Choose whether or not to do error and Stringer interface lookups against
- // the base type or a pointer to the base type depending on settings.
- // Technically calling one of these methods with a pointer receiver can
- // mutate the value, however, types which choose to satisify an error or
- // Stringer interface with a pointer receiver should not be mutating their
- // state inside these interface methods.
- if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() {
- v = unsafeReflectValue(v)
- }
- if v.CanAddr() {
- v = v.Addr()
- }
-
- // Is it an error or Stringer?
- switch iface := v.Interface().(type) {
- case error:
- defer catchPanic(w, v)
- if cs.ContinueOnMethod {
- w.Write(openParenBytes)
- w.Write([]byte(iface.Error()))
- w.Write(closeParenBytes)
- w.Write(spaceBytes)
- return false
- }
-
- w.Write([]byte(iface.Error()))
- return true
-
- case fmt.Stringer:
- defer catchPanic(w, v)
- if cs.ContinueOnMethod {
- w.Write(openParenBytes)
- w.Write([]byte(iface.String()))
- w.Write(closeParenBytes)
- w.Write(spaceBytes)
- return false
- }
- w.Write([]byte(iface.String()))
- return true
- }
- return false
-}
-
-// printBool outputs a boolean value as true or false to Writer w.
-func printBool(w io.Writer, val bool) {
- if val {
- w.Write(trueBytes)
- } else {
- w.Write(falseBytes)
- }
-}
-
-// printInt outputs a signed integer value to Writer w.
-func printInt(w io.Writer, val int64, base int) {
- w.Write([]byte(strconv.FormatInt(val, base)))
-}
-
-// printUint outputs an unsigned integer value to Writer w.
-func printUint(w io.Writer, val uint64, base int) {
- w.Write([]byte(strconv.FormatUint(val, base)))
-}
-
-// printFloat outputs a floating point value using the specified precision,
-// which is expected to be 32 or 64bit, to Writer w.
-func printFloat(w io.Writer, val float64, precision int) {
- w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))
-}
-
-// printComplex outputs a complex value using the specified float precision
-// for the real and imaginary parts to Writer w.
-func printComplex(w io.Writer, c complex128, floatPrecision int) {
- r := real(c)
- w.Write(openParenBytes)
- w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))
- i := imag(c)
- if i >= 0 {
- w.Write(plusBytes)
- }
- w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))
- w.Write(iBytes)
- w.Write(closeParenBytes)
-}
-
-// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x'
-// prefix to Writer w.
-func printHexPtr(w io.Writer, p uintptr) {
- // Null pointer.
- num := uint64(p)
- if num == 0 {
- w.Write(nilAngleBytes)
- return
- }
-
- // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix
- buf := make([]byte, 18)
-
- // It's simpler to construct the hex string right to left.
- base := uint64(16)
- i := len(buf) - 1
- for num >= base {
- buf[i] = hexDigits[num%base]
- num /= base
- i--
- }
- buf[i] = hexDigits[num]
-
- // Add '0x' prefix.
- i--
- buf[i] = 'x'
- i--
- buf[i] = '0'
-
- // Strip unused leading bytes.
- buf = buf[i:]
- w.Write(buf)
-}
-
-// valuesSorter implements sort.Interface to allow a slice of reflect.Value
-// elements to be sorted.
-type valuesSorter struct {
- values []reflect.Value
- strings []string // either nil or same len and values
- cs *ConfigState
-}
-
-// newValuesSorter initializes a valuesSorter instance, which holds a set of
-// surrogate keys on which the data should be sorted. It uses flags in
-// ConfigState to decide if and how to populate those surrogate keys.
-func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface {
- vs := &valuesSorter{values: values, cs: cs}
- if canSortSimply(vs.values[0].Kind()) {
- return vs
- }
- if !cs.DisableMethods {
- vs.strings = make([]string, len(values))
- for i := range vs.values {
- b := bytes.Buffer{}
- if !handleMethods(cs, &b, vs.values[i]) {
- vs.strings = nil
- break
- }
- vs.strings[i] = b.String()
- }
- }
- if vs.strings == nil && cs.SpewKeys {
- vs.strings = make([]string, len(values))
- for i := range vs.values {
- vs.strings[i] = Sprintf("%#v", vs.values[i].Interface())
- }
- }
- return vs
-}
-
-// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted
-// directly, or whether it should be considered for sorting by surrogate keys
-// (if the ConfigState allows it).
-func canSortSimply(kind reflect.Kind) bool {
- // This switch parallels valueSortLess, except for the default case.
- switch kind {
- case reflect.Bool:
- return true
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
- return true
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
- return true
- case reflect.Float32, reflect.Float64:
- return true
- case reflect.String:
- return true
- case reflect.Uintptr:
- return true
- case reflect.Array:
- return true
- }
- return false
-}
-
-// Len returns the number of values in the slice. It is part of the
-// sort.Interface implementation.
-func (s *valuesSorter) Len() int {
- return len(s.values)
-}
-
-// Swap swaps the values at the passed indices. It is part of the
-// sort.Interface implementation.
-func (s *valuesSorter) Swap(i, j int) {
- s.values[i], s.values[j] = s.values[j], s.values[i]
- if s.strings != nil {
- s.strings[i], s.strings[j] = s.strings[j], s.strings[i]
- }
-}
-
-// valueSortLess returns whether the first value should sort before the second
-// value. It is used by valueSorter.Less as part of the sort.Interface
-// implementation.
-func valueSortLess(a, b reflect.Value) bool {
- switch a.Kind() {
- case reflect.Bool:
- return !a.Bool() && b.Bool()
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
- return a.Int() < b.Int()
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
- return a.Uint() < b.Uint()
- case reflect.Float32, reflect.Float64:
- return a.Float() < b.Float()
- case reflect.String:
- return a.String() < b.String()
- case reflect.Uintptr:
- return a.Uint() < b.Uint()
- case reflect.Array:
- // Compare the contents of both arrays.
- l := a.Len()
- for i := 0; i < l; i++ {
- av := a.Index(i)
- bv := b.Index(i)
- if av.Interface() == bv.Interface() {
- continue
- }
- return valueSortLess(av, bv)
- }
- }
- return a.String() < b.String()
-}
-
-// Less returns whether the value at index i should sort before the
-// value at index j. It is part of the sort.Interface implementation.
-func (s *valuesSorter) Less(i, j int) bool {
- if s.strings == nil {
- return valueSortLess(s.values[i], s.values[j])
- }
- return s.strings[i] < s.strings[j]
-}
-
-// sortValues is a sort function that handles both native types and any type that
-// can be converted to error or Stringer. Other inputs are sorted according to
-// their Value.String() value to ensure display stability.
-func sortValues(values []reflect.Value, cs *ConfigState) {
- if len(values) == 0 {
- return
- }
- sort.Sort(newValuesSorter(values, cs))
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/config.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/config.go
deleted file mode 100644
index 2e3d22f3..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/config.go
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-package spew
-
-import (
- "bytes"
- "fmt"
- "io"
- "os"
-)
-
-// ConfigState houses the configuration options used by spew to format and
-// display values. There is a global instance, Config, that is used to control
-// all top-level Formatter and Dump functionality. Each ConfigState instance
-// provides methods equivalent to the top-level functions.
-//
-// The zero value for ConfigState provides no indentation. You would typically
-// want to set it to a space or a tab.
-//
-// Alternatively, you can use NewDefaultConfig to get a ConfigState instance
-// with default settings. See the documentation of NewDefaultConfig for default
-// values.
-type ConfigState struct {
- // Indent specifies the string to use for each indentation level. The
- // global config instance that all top-level functions use set this to a
- // single space by default. If you would like more indentation, you might
- // set this to a tab with "\t" or perhaps two spaces with " ".
- Indent string
-
- // MaxDepth controls the maximum number of levels to descend into nested
- // data structures. The default, 0, means there is no limit.
- //
- // NOTE: Circular data structures are properly detected, so it is not
- // necessary to set this value unless you specifically want to limit deeply
- // nested data structures.
- MaxDepth int
-
- // DisableMethods specifies whether or not error and Stringer interfaces are
- // invoked for types that implement them.
- DisableMethods bool
-
- // DisablePointerMethods specifies whether or not to check for and invoke
- // error and Stringer interfaces on types which only accept a pointer
- // receiver when the current type is not a pointer.
- //
- // NOTE: This might be an unsafe action since calling one of these methods
- // with a pointer receiver could technically mutate the value, however,
- // in practice, types which choose to satisify an error or Stringer
- // interface with a pointer receiver should not be mutating their state
- // inside these interface methods. As a result, this option relies on
- // access to the unsafe package, so it will not have any effect when
- // running in environments without access to the unsafe package such as
- // Google App Engine or with the "safe" build tag specified.
- DisablePointerMethods bool
-
- // DisablePointerAddresses specifies whether to disable the printing of
- // pointer addresses. This is useful when diffing data structures in tests.
- DisablePointerAddresses bool
-
- // DisableCapacities specifies whether to disable the printing of capacities
- // for arrays, slices, maps and channels. This is useful when diffing
- // data structures in tests.
- DisableCapacities bool
-
- // ContinueOnMethod specifies whether or not recursion should continue once
- // a custom error or Stringer interface is invoked. The default, false,
- // means it will print the results of invoking the custom error or Stringer
- // interface and return immediately instead of continuing to recurse into
- // the internals of the data type.
- //
- // NOTE: This flag does not have any effect if method invocation is disabled
- // via the DisableMethods or DisablePointerMethods options.
- ContinueOnMethod bool
-
- // SortKeys specifies map keys should be sorted before being printed. Use
- // this to have a more deterministic, diffable output. Note that only
- // native types (bool, int, uint, floats, uintptr and string) and types
- // that support the error or Stringer interfaces (if methods are
- // enabled) are supported, with other types sorted according to the
- // reflect.Value.String() output which guarantees display stability.
- SortKeys bool
-
- // SpewKeys specifies that, as a last resort attempt, map keys should
- // be spewed to strings and sorted by those strings. This is only
- // considered if SortKeys is true.
- SpewKeys bool
-}
-
-// Config is the active configuration of the top-level functions.
-// The configuration can be changed by modifying the contents of spew.Config.
-var Config = ConfigState{Indent: " "}
-
-// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the formatted string as a value that satisfies error. See NewFormatter
-// for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) {
- return fmt.Errorf(format, c.convertArgs(a)...)
-}
-
-// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) {
- return fmt.Fprint(w, c.convertArgs(a)...)
-}
-
-// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
- return fmt.Fprintf(w, format, c.convertArgs(a)...)
-}
-
-// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it
-// passed with a Formatter interface returned by c.NewFormatter. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
- return fmt.Fprintln(w, c.convertArgs(a)...)
-}
-
-// Print is a wrapper for fmt.Print that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Print(c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Print(a ...interface{}) (n int, err error) {
- return fmt.Print(c.convertArgs(a)...)
-}
-
-// Printf is a wrapper for fmt.Printf that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) {
- return fmt.Printf(format, c.convertArgs(a)...)
-}
-
-// Println is a wrapper for fmt.Println that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Println(c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Println(a ...interface{}) (n int, err error) {
- return fmt.Println(c.convertArgs(a)...)
-}
-
-// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Sprint(a ...interface{}) string {
- return fmt.Sprint(c.convertArgs(a)...)
-}
-
-// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were
-// passed with a Formatter interface returned by c.NewFormatter. It returns
-// the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Sprintf(format string, a ...interface{}) string {
- return fmt.Sprintf(format, c.convertArgs(a)...)
-}
-
-// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it
-// were passed with a Formatter interface returned by c.NewFormatter. It
-// returns the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b))
-func (c *ConfigState) Sprintln(a ...interface{}) string {
- return fmt.Sprintln(c.convertArgs(a)...)
-}
-
-/*
-NewFormatter returns a custom formatter that satisfies the fmt.Formatter
-interface. As a result, it integrates cleanly with standard fmt package
-printing functions. The formatter is useful for inline printing of smaller data
-types similar to the standard %v format specifier.
-
-The custom formatter only responds to the %v (most compact), %+v (adds pointer
-addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb
-combinations. Any other verbs such as %x and %q will be sent to the the
-standard fmt package for formatting. In addition, the custom formatter ignores
-the width and precision arguments (however they will still work on the format
-specifiers not handled by the custom formatter).
-
-Typically this function shouldn't be called directly. It is much easier to make
-use of the custom formatter by calling one of the convenience functions such as
-c.Printf, c.Println, or c.Printf.
-*/
-func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {
- return newFormatter(c, v)
-}
-
-// Fdump formats and displays the passed arguments to io.Writer w. It formats
-// exactly the same as Dump.
-func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {
- fdump(c, w, a...)
-}
-
-/*
-Dump displays the passed parameters to standard out with newlines, customizable
-indentation, and additional debug information such as complete types and all
-pointer addresses used to indirect to the final value. It provides the
-following features over the built-in printing facilities provided by the fmt
-package:
-
- * Pointers are dereferenced and followed
- * Circular data structures are detected and handled properly
- * Custom Stringer/error interfaces are optionally invoked, including
- on unexported types
- * Custom types which only implement the Stringer/error interfaces via
- a pointer receiver are optionally invoked when passing non-pointer
- variables
- * Byte arrays and slices are dumped like the hexdump -C command which
- includes offsets, byte values in hex, and ASCII output
-
-The configuration options are controlled by modifying the public members
-of c. See ConfigState for options documentation.
-
-See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to
-get the formatted result as a string.
-*/
-func (c *ConfigState) Dump(a ...interface{}) {
- fdump(c, os.Stdout, a...)
-}
-
-// Sdump returns a string with the passed arguments formatted exactly the same
-// as Dump.
-func (c *ConfigState) Sdump(a ...interface{}) string {
- var buf bytes.Buffer
- fdump(c, &buf, a...)
- return buf.String()
-}
-
-// convertArgs accepts a slice of arguments and returns a slice of the same
-// length with each argument converted to a spew Formatter interface using
-// the ConfigState associated with s.
-func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) {
- formatters = make([]interface{}, len(args))
- for index, arg := range args {
- formatters[index] = newFormatter(c, arg)
- }
- return formatters
-}
-
-// NewDefaultConfig returns a ConfigState with the following default settings.
-//
-// Indent: " "
-// MaxDepth: 0
-// DisableMethods: false
-// DisablePointerMethods: false
-// ContinueOnMethod: false
-// SortKeys: false
-func NewDefaultConfig() *ConfigState {
- return &ConfigState{Indent: " "}
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/doc.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/doc.go
deleted file mode 100644
index aacaac6f..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/doc.go
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
-Package spew implements a deep pretty printer for Go data structures to aid in
-debugging.
-
-A quick overview of the additional features spew provides over the built-in
-printing facilities for Go data types are as follows:
-
- * Pointers are dereferenced and followed
- * Circular data structures are detected and handled properly
- * Custom Stringer/error interfaces are optionally invoked, including
- on unexported types
- * Custom types which only implement the Stringer/error interfaces via
- a pointer receiver are optionally invoked when passing non-pointer
- variables
- * Byte arrays and slices are dumped like the hexdump -C command which
- includes offsets, byte values in hex, and ASCII output (only when using
- Dump style)
-
-There are two different approaches spew allows for dumping Go data structures:
-
- * Dump style which prints with newlines, customizable indentation,
- and additional debug information such as types and all pointer addresses
- used to indirect to the final value
- * A custom Formatter interface that integrates cleanly with the standard fmt
- package and replaces %v, %+v, %#v, and %#+v to provide inline printing
- similar to the default %v while providing the additional functionality
- outlined above and passing unsupported format verbs such as %x and %q
- along to fmt
-
-Quick Start
-
-This section demonstrates how to quickly get started with spew. See the
-sections below for further details on formatting and configuration options.
-
-To dump a variable with full newlines, indentation, type, and pointer
-information use Dump, Fdump, or Sdump:
- spew.Dump(myVar1, myVar2, ...)
- spew.Fdump(someWriter, myVar1, myVar2, ...)
- str := spew.Sdump(myVar1, myVar2, ...)
-
-Alternatively, if you would prefer to use format strings with a compacted inline
-printing style, use the convenience wrappers Printf, Fprintf, etc with
-%v (most compact), %+v (adds pointer addresses), %#v (adds types), or
-%#+v (adds types and pointer addresses):
- spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2)
- spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
- spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2)
- spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
-
-Configuration Options
-
-Configuration of spew is handled by fields in the ConfigState type. For
-convenience, all of the top-level functions use a global state available
-via the spew.Config global.
-
-It is also possible to create a ConfigState instance that provides methods
-equivalent to the top-level functions. This allows concurrent configuration
-options. See the ConfigState documentation for more details.
-
-The following configuration options are available:
- * Indent
- String to use for each indentation level for Dump functions.
- It is a single space by default. A popular alternative is "\t".
-
- * MaxDepth
- Maximum number of levels to descend into nested data structures.
- There is no limit by default.
-
- * DisableMethods
- Disables invocation of error and Stringer interface methods.
- Method invocation is enabled by default.
-
- * DisablePointerMethods
- Disables invocation of error and Stringer interface methods on types
- which only accept pointer receivers from non-pointer variables.
- Pointer method invocation is enabled by default.
-
- * DisablePointerAddresses
- DisablePointerAddresses specifies whether to disable the printing of
- pointer addresses. This is useful when diffing data structures in tests.
-
- * DisableCapacities
- DisableCapacities specifies whether to disable the printing of
- capacities for arrays, slices, maps and channels. This is useful when
- diffing data structures in tests.
-
- * ContinueOnMethod
- Enables recursion into types after invoking error and Stringer interface
- methods. Recursion after method invocation is disabled by default.
-
- * SortKeys
- Specifies map keys should be sorted before being printed. Use
- this to have a more deterministic, diffable output. Note that
- only native types (bool, int, uint, floats, uintptr and string)
- and types which implement error or Stringer interfaces are
- supported with other types sorted according to the
- reflect.Value.String() output which guarantees display
- stability. Natural map order is used by default.
-
- * SpewKeys
- Specifies that, as a last resort attempt, map keys should be
- spewed to strings and sorted by those strings. This is only
- considered if SortKeys is true.
-
-Dump Usage
-
-Simply call spew.Dump with a list of variables you want to dump:
-
- spew.Dump(myVar1, myVar2, ...)
-
-You may also call spew.Fdump if you would prefer to output to an arbitrary
-io.Writer. For example, to dump to standard error:
-
- spew.Fdump(os.Stderr, myVar1, myVar2, ...)
-
-A third option is to call spew.Sdump to get the formatted output as a string:
-
- str := spew.Sdump(myVar1, myVar2, ...)
-
-Sample Dump Output
-
-See the Dump example for details on the setup of the types and variables being
-shown here.
-
- (main.Foo) {
- unexportedField: (*main.Bar)(0xf84002e210)({
- flag: (main.Flag) flagTwo,
- data: (uintptr)
- }),
- ExportedField: (map[interface {}]interface {}) (len=1) {
- (string) (len=3) "one": (bool) true
- }
- }
-
-Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C
-command as shown.
- ([]uint8) (len=32 cap=32) {
- 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... |
- 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0|
- 00000020 31 32 |12|
- }
-
-Custom Formatter
-
-Spew provides a custom formatter that implements the fmt.Formatter interface
-so that it integrates cleanly with standard fmt package printing functions. The
-formatter is useful for inline printing of smaller data types similar to the
-standard %v format specifier.
-
-The custom formatter only responds to the %v (most compact), %+v (adds pointer
-addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb
-combinations. Any other verbs such as %x and %q will be sent to the the
-standard fmt package for formatting. In addition, the custom formatter ignores
-the width and precision arguments (however they will still work on the format
-specifiers not handled by the custom formatter).
-
-Custom Formatter Usage
-
-The simplest way to make use of the spew custom formatter is to call one of the
-convenience functions such as spew.Printf, spew.Println, or spew.Printf. The
-functions have syntax you are most likely already familiar with:
-
- spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2)
- spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
- spew.Println(myVar, myVar2)
- spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2)
- spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
-
-See the Index for the full list convenience functions.
-
-Sample Formatter Output
-
-Double pointer to a uint8:
- %v: <**>5
- %+v: <**>(0xf8400420d0->0xf8400420c8)5
- %#v: (**uint8)5
- %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5
-
-Pointer to circular struct with a uint8 field and a pointer to itself:
- %v: <*>{1 <*>}
- %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)}
- %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)}
- %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)}
-
-See the Printf example for details on the setup of variables being shown
-here.
-
-Errors
-
-Since it is possible for custom Stringer/error interfaces to panic, spew
-detects them and handles them internally by printing the panic information
-inline with the output. Since spew is intended to provide deep pretty printing
-capabilities on structures, it intentionally does not return any errors.
-*/
-package spew
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/dump.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/dump.go
deleted file mode 100644
index f78d89fc..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/dump.go
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-package spew
-
-import (
- "bytes"
- "encoding/hex"
- "fmt"
- "io"
- "os"
- "reflect"
- "regexp"
- "strconv"
- "strings"
-)
-
-var (
- // uint8Type is a reflect.Type representing a uint8. It is used to
- // convert cgo types to uint8 slices for hexdumping.
- uint8Type = reflect.TypeOf(uint8(0))
-
- // cCharRE is a regular expression that matches a cgo char.
- // It is used to detect character arrays to hexdump them.
- cCharRE = regexp.MustCompile(`^.*\._Ctype_char$`)
-
- // cUnsignedCharRE is a regular expression that matches a cgo unsigned
- // char. It is used to detect unsigned character arrays to hexdump
- // them.
- cUnsignedCharRE = regexp.MustCompile(`^.*\._Ctype_unsignedchar$`)
-
- // cUint8tCharRE is a regular expression that matches a cgo uint8_t.
- // It is used to detect uint8_t arrays to hexdump them.
- cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`)
-)
-
-// dumpState contains information about the state of a dump operation.
-type dumpState struct {
- w io.Writer
- depth int
- pointers map[uintptr]int
- ignoreNextType bool
- ignoreNextIndent bool
- cs *ConfigState
-}
-
-// indent performs indentation according to the depth level and cs.Indent
-// option.
-func (d *dumpState) indent() {
- if d.ignoreNextIndent {
- d.ignoreNextIndent = false
- return
- }
- d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth))
-}
-
-// unpackValue returns values inside of non-nil interfaces when possible.
-// This is useful for data types like structs, arrays, slices, and maps which
-// can contain varying types packed inside an interface.
-func (d *dumpState) unpackValue(v reflect.Value) reflect.Value {
- if v.Kind() == reflect.Interface && !v.IsNil() {
- v = v.Elem()
- }
- return v
-}
-
-// dumpPtr handles formatting of pointers by indirecting them as necessary.
-func (d *dumpState) dumpPtr(v reflect.Value) {
- // Remove pointers at or below the current depth from map used to detect
- // circular refs.
- for k, depth := range d.pointers {
- if depth >= d.depth {
- delete(d.pointers, k)
- }
- }
-
- // Keep list of all dereferenced pointers to show later.
- pointerChain := make([]uintptr, 0)
-
- // Figure out how many levels of indirection there are by dereferencing
- // pointers and unpacking interfaces down the chain while detecting circular
- // references.
- nilFound := false
- cycleFound := false
- indirects := 0
- ve := v
- for ve.Kind() == reflect.Ptr {
- if ve.IsNil() {
- nilFound = true
- break
- }
- indirects++
- addr := ve.Pointer()
- pointerChain = append(pointerChain, addr)
- if pd, ok := d.pointers[addr]; ok && pd < d.depth {
- cycleFound = true
- indirects--
- break
- }
- d.pointers[addr] = d.depth
-
- ve = ve.Elem()
- if ve.Kind() == reflect.Interface {
- if ve.IsNil() {
- nilFound = true
- break
- }
- ve = ve.Elem()
- }
- }
-
- // Display type information.
- d.w.Write(openParenBytes)
- d.w.Write(bytes.Repeat(asteriskBytes, indirects))
- d.w.Write([]byte(ve.Type().String()))
- d.w.Write(closeParenBytes)
-
- // Display pointer information.
- if !d.cs.DisablePointerAddresses && len(pointerChain) > 0 {
- d.w.Write(openParenBytes)
- for i, addr := range pointerChain {
- if i > 0 {
- d.w.Write(pointerChainBytes)
- }
- printHexPtr(d.w, addr)
- }
- d.w.Write(closeParenBytes)
- }
-
- // Display dereferenced value.
- d.w.Write(openParenBytes)
- switch {
- case nilFound:
- d.w.Write(nilAngleBytes)
-
- case cycleFound:
- d.w.Write(circularBytes)
-
- default:
- d.ignoreNextType = true
- d.dump(ve)
- }
- d.w.Write(closeParenBytes)
-}
-
-// dumpSlice handles formatting of arrays and slices. Byte (uint8 under
-// reflection) arrays and slices are dumped in hexdump -C fashion.
-func (d *dumpState) dumpSlice(v reflect.Value) {
- // Determine whether this type should be hex dumped or not. Also,
- // for types which should be hexdumped, try to use the underlying data
- // first, then fall back to trying to convert them to a uint8 slice.
- var buf []uint8
- doConvert := false
- doHexDump := false
- numEntries := v.Len()
- if numEntries > 0 {
- vt := v.Index(0).Type()
- vts := vt.String()
- switch {
- // C types that need to be converted.
- case cCharRE.MatchString(vts):
- fallthrough
- case cUnsignedCharRE.MatchString(vts):
- fallthrough
- case cUint8tCharRE.MatchString(vts):
- doConvert = true
-
- // Try to use existing uint8 slices and fall back to converting
- // and copying if that fails.
- case vt.Kind() == reflect.Uint8:
- // We need an addressable interface to convert the type
- // to a byte slice. However, the reflect package won't
- // give us an interface on certain things like
- // unexported struct fields in order to enforce
- // visibility rules. We use unsafe, when available, to
- // bypass these restrictions since this package does not
- // mutate the values.
- vs := v
- if !vs.CanInterface() || !vs.CanAddr() {
- vs = unsafeReflectValue(vs)
- }
- if !UnsafeDisabled {
- vs = vs.Slice(0, numEntries)
-
- // Use the existing uint8 slice if it can be
- // type asserted.
- iface := vs.Interface()
- if slice, ok := iface.([]uint8); ok {
- buf = slice
- doHexDump = true
- break
- }
- }
-
- // The underlying data needs to be converted if it can't
- // be type asserted to a uint8 slice.
- doConvert = true
- }
-
- // Copy and convert the underlying type if needed.
- if doConvert && vt.ConvertibleTo(uint8Type) {
- // Convert and copy each element into a uint8 byte
- // slice.
- buf = make([]uint8, numEntries)
- for i := 0; i < numEntries; i++ {
- vv := v.Index(i)
- buf[i] = uint8(vv.Convert(uint8Type).Uint())
- }
- doHexDump = true
- }
- }
-
- // Hexdump the entire slice as needed.
- if doHexDump {
- indent := strings.Repeat(d.cs.Indent, d.depth)
- str := indent + hex.Dump(buf)
- str = strings.Replace(str, "\n", "\n"+indent, -1)
- str = strings.TrimRight(str, d.cs.Indent)
- d.w.Write([]byte(str))
- return
- }
-
- // Recursively call dump for each item.
- for i := 0; i < numEntries; i++ {
- d.dump(d.unpackValue(v.Index(i)))
- if i < (numEntries - 1) {
- d.w.Write(commaNewlineBytes)
- } else {
- d.w.Write(newlineBytes)
- }
- }
-}
-
-// dump is the main workhorse for dumping a value. It uses the passed reflect
-// value to figure out what kind of object we are dealing with and formats it
-// appropriately. It is a recursive function, however circular data structures
-// are detected and handled properly.
-func (d *dumpState) dump(v reflect.Value) {
- // Handle invalid reflect values immediately.
- kind := v.Kind()
- if kind == reflect.Invalid {
- d.w.Write(invalidAngleBytes)
- return
- }
-
- // Handle pointers specially.
- if kind == reflect.Ptr {
- d.indent()
- d.dumpPtr(v)
- return
- }
-
- // Print type information unless already handled elsewhere.
- if !d.ignoreNextType {
- d.indent()
- d.w.Write(openParenBytes)
- d.w.Write([]byte(v.Type().String()))
- d.w.Write(closeParenBytes)
- d.w.Write(spaceBytes)
- }
- d.ignoreNextType = false
-
- // Display length and capacity if the built-in len and cap functions
- // work with the value's kind and the len/cap itself is non-zero.
- valueLen, valueCap := 0, 0
- switch v.Kind() {
- case reflect.Array, reflect.Slice, reflect.Chan:
- valueLen, valueCap = v.Len(), v.Cap()
- case reflect.Map, reflect.String:
- valueLen = v.Len()
- }
- if valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 {
- d.w.Write(openParenBytes)
- if valueLen != 0 {
- d.w.Write(lenEqualsBytes)
- printInt(d.w, int64(valueLen), 10)
- }
- if !d.cs.DisableCapacities && valueCap != 0 {
- if valueLen != 0 {
- d.w.Write(spaceBytes)
- }
- d.w.Write(capEqualsBytes)
- printInt(d.w, int64(valueCap), 10)
- }
- d.w.Write(closeParenBytes)
- d.w.Write(spaceBytes)
- }
-
- // Call Stringer/error interfaces if they exist and the handle methods flag
- // is enabled
- if !d.cs.DisableMethods {
- if (kind != reflect.Invalid) && (kind != reflect.Interface) {
- if handled := handleMethods(d.cs, d.w, v); handled {
- return
- }
- }
- }
-
- switch kind {
- case reflect.Invalid:
- // Do nothing. We should never get here since invalid has already
- // been handled above.
-
- case reflect.Bool:
- printBool(d.w, v.Bool())
-
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
- printInt(d.w, v.Int(), 10)
-
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
- printUint(d.w, v.Uint(), 10)
-
- case reflect.Float32:
- printFloat(d.w, v.Float(), 32)
-
- case reflect.Float64:
- printFloat(d.w, v.Float(), 64)
-
- case reflect.Complex64:
- printComplex(d.w, v.Complex(), 32)
-
- case reflect.Complex128:
- printComplex(d.w, v.Complex(), 64)
-
- case reflect.Slice:
- if v.IsNil() {
- d.w.Write(nilAngleBytes)
- break
- }
- fallthrough
-
- case reflect.Array:
- d.w.Write(openBraceNewlineBytes)
- d.depth++
- if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
- d.indent()
- d.w.Write(maxNewlineBytes)
- } else {
- d.dumpSlice(v)
- }
- d.depth--
- d.indent()
- d.w.Write(closeBraceBytes)
-
- case reflect.String:
- d.w.Write([]byte(strconv.Quote(v.String())))
-
- case reflect.Interface:
- // The only time we should get here is for nil interfaces due to
- // unpackValue calls.
- if v.IsNil() {
- d.w.Write(nilAngleBytes)
- }
-
- case reflect.Ptr:
- // Do nothing. We should never get here since pointers have already
- // been handled above.
-
- case reflect.Map:
- // nil maps should be indicated as different than empty maps
- if v.IsNil() {
- d.w.Write(nilAngleBytes)
- break
- }
-
- d.w.Write(openBraceNewlineBytes)
- d.depth++
- if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
- d.indent()
- d.w.Write(maxNewlineBytes)
- } else {
- numEntries := v.Len()
- keys := v.MapKeys()
- if d.cs.SortKeys {
- sortValues(keys, d.cs)
- }
- for i, key := range keys {
- d.dump(d.unpackValue(key))
- d.w.Write(colonSpaceBytes)
- d.ignoreNextIndent = true
- d.dump(d.unpackValue(v.MapIndex(key)))
- if i < (numEntries - 1) {
- d.w.Write(commaNewlineBytes)
- } else {
- d.w.Write(newlineBytes)
- }
- }
- }
- d.depth--
- d.indent()
- d.w.Write(closeBraceBytes)
-
- case reflect.Struct:
- d.w.Write(openBraceNewlineBytes)
- d.depth++
- if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
- d.indent()
- d.w.Write(maxNewlineBytes)
- } else {
- vt := v.Type()
- numFields := v.NumField()
- for i := 0; i < numFields; i++ {
- d.indent()
- vtf := vt.Field(i)
- d.w.Write([]byte(vtf.Name))
- d.w.Write(colonSpaceBytes)
- d.ignoreNextIndent = true
- d.dump(d.unpackValue(v.Field(i)))
- if i < (numFields - 1) {
- d.w.Write(commaNewlineBytes)
- } else {
- d.w.Write(newlineBytes)
- }
- }
- }
- d.depth--
- d.indent()
- d.w.Write(closeBraceBytes)
-
- case reflect.Uintptr:
- printHexPtr(d.w, uintptr(v.Uint()))
-
- case reflect.UnsafePointer, reflect.Chan, reflect.Func:
- printHexPtr(d.w, v.Pointer())
-
- // There were not any other types at the time this code was written, but
- // fall back to letting the default fmt package handle it in case any new
- // types are added.
- default:
- if v.CanInterface() {
- fmt.Fprintf(d.w, "%v", v.Interface())
- } else {
- fmt.Fprintf(d.w, "%v", v.String())
- }
- }
-}
-
-// fdump is a helper function to consolidate the logic from the various public
-// methods which take varying writers and config states.
-func fdump(cs *ConfigState, w io.Writer, a ...interface{}) {
- for _, arg := range a {
- if arg == nil {
- w.Write(interfaceBytes)
- w.Write(spaceBytes)
- w.Write(nilAngleBytes)
- w.Write(newlineBytes)
- continue
- }
-
- d := dumpState{w: w, cs: cs}
- d.pointers = make(map[uintptr]int)
- d.dump(reflect.ValueOf(arg))
- d.w.Write(newlineBytes)
- }
-}
-
-// Fdump formats and displays the passed arguments to io.Writer w. It formats
-// exactly the same as Dump.
-func Fdump(w io.Writer, a ...interface{}) {
- fdump(&Config, w, a...)
-}
-
-// Sdump returns a string with the passed arguments formatted exactly the same
-// as Dump.
-func Sdump(a ...interface{}) string {
- var buf bytes.Buffer
- fdump(&Config, &buf, a...)
- return buf.String()
-}
-
-/*
-Dump displays the passed parameters to standard out with newlines, customizable
-indentation, and additional debug information such as complete types and all
-pointer addresses used to indirect to the final value. It provides the
-following features over the built-in printing facilities provided by the fmt
-package:
-
- * Pointers are dereferenced and followed
- * Circular data structures are detected and handled properly
- * Custom Stringer/error interfaces are optionally invoked, including
- on unexported types
- * Custom types which only implement the Stringer/error interfaces via
- a pointer receiver are optionally invoked when passing non-pointer
- variables
- * Byte arrays and slices are dumped like the hexdump -C command which
- includes offsets, byte values in hex, and ASCII output
-
-The configuration options are controlled by an exported package global,
-spew.Config. See ConfigState for options documentation.
-
-See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to
-get the formatted result as a string.
-*/
-func Dump(a ...interface{}) {
- fdump(&Config, os.Stdout, a...)
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/format.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/format.go
deleted file mode 100644
index b04edb7d..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/format.go
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-package spew
-
-import (
- "bytes"
- "fmt"
- "reflect"
- "strconv"
- "strings"
-)
-
-// supportedFlags is a list of all the character flags supported by fmt package.
-const supportedFlags = "0-+# "
-
-// formatState implements the fmt.Formatter interface and contains information
-// about the state of a formatting operation. The NewFormatter function can
-// be used to get a new Formatter which can be used directly as arguments
-// in standard fmt package printing calls.
-type formatState struct {
- value interface{}
- fs fmt.State
- depth int
- pointers map[uintptr]int
- ignoreNextType bool
- cs *ConfigState
-}
-
-// buildDefaultFormat recreates the original format string without precision
-// and width information to pass in to fmt.Sprintf in the case of an
-// unrecognized type. Unless new types are added to the language, this
-// function won't ever be called.
-func (f *formatState) buildDefaultFormat() (format string) {
- buf := bytes.NewBuffer(percentBytes)
-
- for _, flag := range supportedFlags {
- if f.fs.Flag(int(flag)) {
- buf.WriteRune(flag)
- }
- }
-
- buf.WriteRune('v')
-
- format = buf.String()
- return format
-}
-
-// constructOrigFormat recreates the original format string including precision
-// and width information to pass along to the standard fmt package. This allows
-// automatic deferral of all format strings this package doesn't support.
-func (f *formatState) constructOrigFormat(verb rune) (format string) {
- buf := bytes.NewBuffer(percentBytes)
-
- for _, flag := range supportedFlags {
- if f.fs.Flag(int(flag)) {
- buf.WriteRune(flag)
- }
- }
-
- if width, ok := f.fs.Width(); ok {
- buf.WriteString(strconv.Itoa(width))
- }
-
- if precision, ok := f.fs.Precision(); ok {
- buf.Write(precisionBytes)
- buf.WriteString(strconv.Itoa(precision))
- }
-
- buf.WriteRune(verb)
-
- format = buf.String()
- return format
-}
-
-// unpackValue returns values inside of non-nil interfaces when possible and
-// ensures that types for values which have been unpacked from an interface
-// are displayed when the show types flag is also set.
-// This is useful for data types like structs, arrays, slices, and maps which
-// can contain varying types packed inside an interface.
-func (f *formatState) unpackValue(v reflect.Value) reflect.Value {
- if v.Kind() == reflect.Interface {
- f.ignoreNextType = false
- if !v.IsNil() {
- v = v.Elem()
- }
- }
- return v
-}
-
-// formatPtr handles formatting of pointers by indirecting them as necessary.
-func (f *formatState) formatPtr(v reflect.Value) {
- // Display nil if top level pointer is nil.
- showTypes := f.fs.Flag('#')
- if v.IsNil() && (!showTypes || f.ignoreNextType) {
- f.fs.Write(nilAngleBytes)
- return
- }
-
- // Remove pointers at or below the current depth from map used to detect
- // circular refs.
- for k, depth := range f.pointers {
- if depth >= f.depth {
- delete(f.pointers, k)
- }
- }
-
- // Keep list of all dereferenced pointers to possibly show later.
- pointerChain := make([]uintptr, 0)
-
- // Figure out how many levels of indirection there are by derferencing
- // pointers and unpacking interfaces down the chain while detecting circular
- // references.
- nilFound := false
- cycleFound := false
- indirects := 0
- ve := v
- for ve.Kind() == reflect.Ptr {
- if ve.IsNil() {
- nilFound = true
- break
- }
- indirects++
- addr := ve.Pointer()
- pointerChain = append(pointerChain, addr)
- if pd, ok := f.pointers[addr]; ok && pd < f.depth {
- cycleFound = true
- indirects--
- break
- }
- f.pointers[addr] = f.depth
-
- ve = ve.Elem()
- if ve.Kind() == reflect.Interface {
- if ve.IsNil() {
- nilFound = true
- break
- }
- ve = ve.Elem()
- }
- }
-
- // Display type or indirection level depending on flags.
- if showTypes && !f.ignoreNextType {
- f.fs.Write(openParenBytes)
- f.fs.Write(bytes.Repeat(asteriskBytes, indirects))
- f.fs.Write([]byte(ve.Type().String()))
- f.fs.Write(closeParenBytes)
- } else {
- if nilFound || cycleFound {
- indirects += strings.Count(ve.Type().String(), "*")
- }
- f.fs.Write(openAngleBytes)
- f.fs.Write([]byte(strings.Repeat("*", indirects)))
- f.fs.Write(closeAngleBytes)
- }
-
- // Display pointer information depending on flags.
- if f.fs.Flag('+') && (len(pointerChain) > 0) {
- f.fs.Write(openParenBytes)
- for i, addr := range pointerChain {
- if i > 0 {
- f.fs.Write(pointerChainBytes)
- }
- printHexPtr(f.fs, addr)
- }
- f.fs.Write(closeParenBytes)
- }
-
- // Display dereferenced value.
- switch {
- case nilFound:
- f.fs.Write(nilAngleBytes)
-
- case cycleFound:
- f.fs.Write(circularShortBytes)
-
- default:
- f.ignoreNextType = true
- f.format(ve)
- }
-}
-
-// format is the main workhorse for providing the Formatter interface. It
-// uses the passed reflect value to figure out what kind of object we are
-// dealing with and formats it appropriately. It is a recursive function,
-// however circular data structures are detected and handled properly.
-func (f *formatState) format(v reflect.Value) {
- // Handle invalid reflect values immediately.
- kind := v.Kind()
- if kind == reflect.Invalid {
- f.fs.Write(invalidAngleBytes)
- return
- }
-
- // Handle pointers specially.
- if kind == reflect.Ptr {
- f.formatPtr(v)
- return
- }
-
- // Print type information unless already handled elsewhere.
- if !f.ignoreNextType && f.fs.Flag('#') {
- f.fs.Write(openParenBytes)
- f.fs.Write([]byte(v.Type().String()))
- f.fs.Write(closeParenBytes)
- }
- f.ignoreNextType = false
-
- // Call Stringer/error interfaces if they exist and the handle methods
- // flag is enabled.
- if !f.cs.DisableMethods {
- if (kind != reflect.Invalid) && (kind != reflect.Interface) {
- if handled := handleMethods(f.cs, f.fs, v); handled {
- return
- }
- }
- }
-
- switch kind {
- case reflect.Invalid:
- // Do nothing. We should never get here since invalid has already
- // been handled above.
-
- case reflect.Bool:
- printBool(f.fs, v.Bool())
-
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
- printInt(f.fs, v.Int(), 10)
-
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
- printUint(f.fs, v.Uint(), 10)
-
- case reflect.Float32:
- printFloat(f.fs, v.Float(), 32)
-
- case reflect.Float64:
- printFloat(f.fs, v.Float(), 64)
-
- case reflect.Complex64:
- printComplex(f.fs, v.Complex(), 32)
-
- case reflect.Complex128:
- printComplex(f.fs, v.Complex(), 64)
-
- case reflect.Slice:
- if v.IsNil() {
- f.fs.Write(nilAngleBytes)
- break
- }
- fallthrough
-
- case reflect.Array:
- f.fs.Write(openBracketBytes)
- f.depth++
- if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
- f.fs.Write(maxShortBytes)
- } else {
- numEntries := v.Len()
- for i := 0; i < numEntries; i++ {
- if i > 0 {
- f.fs.Write(spaceBytes)
- }
- f.ignoreNextType = true
- f.format(f.unpackValue(v.Index(i)))
- }
- }
- f.depth--
- f.fs.Write(closeBracketBytes)
-
- case reflect.String:
- f.fs.Write([]byte(v.String()))
-
- case reflect.Interface:
- // The only time we should get here is for nil interfaces due to
- // unpackValue calls.
- if v.IsNil() {
- f.fs.Write(nilAngleBytes)
- }
-
- case reflect.Ptr:
- // Do nothing. We should never get here since pointers have already
- // been handled above.
-
- case reflect.Map:
- // nil maps should be indicated as different than empty maps
- if v.IsNil() {
- f.fs.Write(nilAngleBytes)
- break
- }
-
- f.fs.Write(openMapBytes)
- f.depth++
- if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
- f.fs.Write(maxShortBytes)
- } else {
- keys := v.MapKeys()
- if f.cs.SortKeys {
- sortValues(keys, f.cs)
- }
- for i, key := range keys {
- if i > 0 {
- f.fs.Write(spaceBytes)
- }
- f.ignoreNextType = true
- f.format(f.unpackValue(key))
- f.fs.Write(colonBytes)
- f.ignoreNextType = true
- f.format(f.unpackValue(v.MapIndex(key)))
- }
- }
- f.depth--
- f.fs.Write(closeMapBytes)
-
- case reflect.Struct:
- numFields := v.NumField()
- f.fs.Write(openBraceBytes)
- f.depth++
- if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
- f.fs.Write(maxShortBytes)
- } else {
- vt := v.Type()
- for i := 0; i < numFields; i++ {
- if i > 0 {
- f.fs.Write(spaceBytes)
- }
- vtf := vt.Field(i)
- if f.fs.Flag('+') || f.fs.Flag('#') {
- f.fs.Write([]byte(vtf.Name))
- f.fs.Write(colonBytes)
- }
- f.format(f.unpackValue(v.Field(i)))
- }
- }
- f.depth--
- f.fs.Write(closeBraceBytes)
-
- case reflect.Uintptr:
- printHexPtr(f.fs, uintptr(v.Uint()))
-
- case reflect.UnsafePointer, reflect.Chan, reflect.Func:
- printHexPtr(f.fs, v.Pointer())
-
- // There were not any other types at the time this code was written, but
- // fall back to letting the default fmt package handle it if any get added.
- default:
- format := f.buildDefaultFormat()
- if v.CanInterface() {
- fmt.Fprintf(f.fs, format, v.Interface())
- } else {
- fmt.Fprintf(f.fs, format, v.String())
- }
- }
-}
-
-// Format satisfies the fmt.Formatter interface. See NewFormatter for usage
-// details.
-func (f *formatState) Format(fs fmt.State, verb rune) {
- f.fs = fs
-
- // Use standard formatting for verbs that are not v.
- if verb != 'v' {
- format := f.constructOrigFormat(verb)
- fmt.Fprintf(fs, format, f.value)
- return
- }
-
- if f.value == nil {
- if fs.Flag('#') {
- fs.Write(interfaceBytes)
- }
- fs.Write(nilAngleBytes)
- return
- }
-
- f.format(reflect.ValueOf(f.value))
-}
-
-// newFormatter is a helper function to consolidate the logic from the various
-// public methods which take varying config states.
-func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {
- fs := &formatState{value: v, cs: cs}
- fs.pointers = make(map[uintptr]int)
- return fs
-}
-
-/*
-NewFormatter returns a custom formatter that satisfies the fmt.Formatter
-interface. As a result, it integrates cleanly with standard fmt package
-printing functions. The formatter is useful for inline printing of smaller data
-types similar to the standard %v format specifier.
-
-The custom formatter only responds to the %v (most compact), %+v (adds pointer
-addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb
-combinations. Any other verbs such as %x and %q will be sent to the the
-standard fmt package for formatting. In addition, the custom formatter ignores
-the width and precision arguments (however they will still work on the format
-specifiers not handled by the custom formatter).
-
-Typically this function shouldn't be called directly. It is much easier to make
-use of the custom formatter by calling one of the convenience functions such as
-Printf, Println, or Fprintf.
-*/
-func NewFormatter(v interface{}) fmt.Formatter {
- return newFormatter(&Config, v)
-}
diff --git a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/spew.go b/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/spew.go
deleted file mode 100644
index 32c0e338..00000000
--- a/upstream/image/git-init/vendor/github.com/davecgh/go-spew/spew/spew.go
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 2013-2016 Dave Collins
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-package spew
-
-import (
- "fmt"
- "io"
-)
-
-// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the formatted string as a value that satisfies error. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b))
-func Errorf(format string, a ...interface{}) (err error) {
- return fmt.Errorf(format, convertArgs(a)...)
-}
-
-// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b))
-func Fprint(w io.Writer, a ...interface{}) (n int, err error) {
- return fmt.Fprint(w, convertArgs(a)...)
-}
-
-// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b))
-func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
- return fmt.Fprintf(w, format, convertArgs(a)...)
-}
-
-// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it
-// passed with a default Formatter interface returned by NewFormatter. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b))
-func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
- return fmt.Fprintln(w, convertArgs(a)...)
-}
-
-// Print is a wrapper for fmt.Print that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b))
-func Print(a ...interface{}) (n int, err error) {
- return fmt.Print(convertArgs(a)...)
-}
-
-// Printf is a wrapper for fmt.Printf that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b))
-func Printf(format string, a ...interface{}) (n int, err error) {
- return fmt.Printf(format, convertArgs(a)...)
-}
-
-// Println is a wrapper for fmt.Println that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the number of bytes written and any write error encountered. See
-// NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b))
-func Println(a ...interface{}) (n int, err error) {
- return fmt.Println(convertArgs(a)...)
-}
-
-// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b))
-func Sprint(a ...interface{}) string {
- return fmt.Sprint(convertArgs(a)...)
-}
-
-// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were
-// passed with a default Formatter interface returned by NewFormatter. It
-// returns the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b))
-func Sprintf(format string, a ...interface{}) string {
- return fmt.Sprintf(format, convertArgs(a)...)
-}
-
-// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it
-// were passed with a default Formatter interface returned by NewFormatter. It
-// returns the resulting string. See NewFormatter for formatting details.
-//
-// This function is shorthand for the following syntax:
-//
-// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b))
-func Sprintln(a ...interface{}) string {
- return fmt.Sprintln(convertArgs(a)...)
-}
-
-// convertArgs accepts a slice of arguments and returns a slice of the same
-// length with each argument converted to a default spew Formatter interface.
-func convertArgs(args []interface{}) (formatters []interface{}) {
- formatters = make([]interface{}, len(args))
- for index, arg := range args {
- formatters[index] = NewFormatter(arg)
- }
- return formatters
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.gitignore b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.gitignore
deleted file mode 100644
index 446be09b..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.gitignore
+++ /dev/null
@@ -1,71 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-
-restful.html
-
-*.out
-
-tmp.prof
-
-go-restful.test
-
-examples/restful-basic-authentication
-
-examples/restful-encoding-filter
-
-examples/restful-filters
-
-examples/restful-hello-world
-
-examples/restful-resource-functions
-
-examples/restful-serve-static
-
-examples/restful-user-service
-
-*.DS_Store
-examples/restful-user-resource
-
-examples/restful-multi-containers
-
-examples/restful-form-handling
-
-examples/restful-CORS-filter
-
-examples/restful-options-filter
-
-examples/restful-curly-router
-
-examples/restful-cpuprofiler-service
-
-examples/restful-pre-post-filters
-
-curly.prof
-
-examples/restful-NCSA-logging
-
-examples/restful-html-template
-
-s.html
-restful-path-tail
-.idea
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.goconvey b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.goconvey
deleted file mode 100644
index 8485e986..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.goconvey
+++ /dev/null
@@ -1 +0,0 @@
-ignore
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.travis.yml b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.travis.yml
deleted file mode 100644
index 3a0bf5ff..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/.travis.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-language: go
-
-go:
- - 1.x
-
-before_install:
- - go test -v
-
-script:
- - go test -race -coverprofile=coverage.txt -covermode=atomic
-
-after_success:
- - bash <(curl -s https://codecov.io/bash)
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/CHANGES.md b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
deleted file mode 100644
index 92b78048..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
+++ /dev/null
@@ -1,414 +0,0 @@
-# Change history of go-restful
-
-
-## [v3.12.1] - 2024-05-28
-
-- fix misroute when dealing multiple webservice with regex (#549) (thanks Haitao Chen)
-
-## [v3.12.0] - 2024-03-11
-
-- add Flush method #529 (#538)
-- fix: Improper handling of empty POST requests (#543)
-
-## [v3.11.3] - 2024-01-09
-
-- better not have 2 tags on one commit
-
-## [v3.11.1, v3.11.2] - 2024-01-09
-
-- fix by restoring custom JSON handler functions (Mike Beaumont #540)
-
-## [v3.12.0] - 2023-08-19
-
-- restored behavior as <= v3.9.0 with option to change path strategy using TrimRightSlashEnabled.
-
-## [v3.10.2] - 2023-03-09 - DO NOT USE
-
-- introduced MergePathStrategy to be able to revert behaviour of path concatenation to 3.9.0
- see comment in Readme how to customize this behaviour.
-
-## [v3.10.1] - 2022-11-19 - DO NOT USE
-
-- fix broken 3.10.0 by using path package for joining paths
-
-## [v3.10.0] - 2022-10-11 - BROKEN
-
-- changed tokenizer to match std route match behavior; do not trimright the path (#511)
-- Add MIME_ZIP (#512)
-- Add MIME_ZIP and HEADER_ContentDisposition (#513)
-- Changed how to get query parameter issue #510
-
-## [v3.9.0] - 2022-07-21
-
-- add support for http.Handler implementations to work as FilterFunction, issue #504 (thanks to https://github.com/ggicci)
-
-## [v3.8.0] - 2022-06-06
-
-- use exact matching of allowed domain entries, issue #489 (#493)
- - this changes fixes [security] Authorization Bypass Through User-Controlled Key
- by changing the behaviour of the AllowedDomains setting in the CORS filter.
- To support the previous behaviour, the CORS filter type now has a AllowedDomainFunc
- callback mechanism which is called when a simple domain match fails.
-- add test and fix for POST without body and Content-type, issue #492 (#496)
-- [Minor] Bad practice to have a mix of Receiver types. (#491)
-
-## [v3.7.2] - 2021-11-24
-
-- restored FilterChain (#482 by SVilgelm)
-
-
-## [v3.7.1] - 2021-10-04
-
-- fix problem with contentEncodingEnabled setting (#479)
-
-## [v3.7.0] - 2021-09-24
-
-- feat(parameter): adds additional openapi mappings (#478)
-
-## [v3.6.0] - 2021-09-18
-
-- add support for vendor extensions (#477 thx erraggy)
-
-## [v3.5.2] - 2021-07-14
-
-- fix removing absent route from webservice (#472)
-
-## [v3.5.1] - 2021-04-12
-
-- fix handling no match access selected path
-- remove obsolete field
-
-## [v3.5.0] - 2021-04-10
-
-- add check for wildcard (#463) in CORS
-- add access to Route from Request, issue #459 (#462)
-
-## [v3.4.0] - 2020-11-10
-
-- Added OPTIONS to WebService
-
-## [v3.3.2] - 2020-01-23
-
-- Fixed duplicate compression in dispatch. #449
-
-
-## [v3.3.1] - 2020-08-31
-
-- Added check on writer to prevent compression of response twice. #447
-
-## [v3.3.0] - 2020-08-19
-
-- Enable content encoding on Handle and ServeHTTP (#446)
-- List available representations in 406 body (#437)
-- Convert to string using rune() (#443)
-
-## [v3.2.0] - 2020-06-21
-
-- 405 Method Not Allowed must have Allow header (#436) (thx Bracken )
-- add field allowedMethodsWithoutContentType (#424)
-
-## [v3.1.0]
-
-- support describing response headers (#426)
-- fix openapi examples (#425)
-
-v3.0.0
-
-- fix: use request/response resulting from filter chain
-- add Go module
- Module consumer should use github.com/emicklei/go-restful/v3 as import path
-
-v2.10.0
-
-- support for Custom Verbs (thanks Vinci Xu <277040271@qq.com>)
-- fixed static example (thanks Arthur )
-- simplify code (thanks Christian Muehlhaeuser )
-- added JWT HMAC with SHA-512 authentication code example (thanks Amim Knabben )
-
-v2.9.6
-
-- small optimization in filter code
-
-v2.11.1
-
-- fix WriteError return value (#415)
-
-v2.11.0
-
-- allow prefix and suffix in path variable expression (#414)
-
-v2.9.6
-
-- support google custome verb (#413)
-
-v2.9.5
-
-- fix panic in Response.WriteError if err == nil
-
-v2.9.4
-
-- fix issue #400 , parsing mime type quality
-- Route Builder added option for contentEncodingEnabled (#398)
-
-v2.9.3
-
-- Avoid return of 415 Unsupported Media Type when request body is empty (#396)
-
-v2.9.2
-
-- Reduce allocations in per-request methods to improve performance (#395)
-
-v2.9.1
-
-- Fix issue with default responses and invalid status code 0. (#393)
-
-v2.9.0
-
-- add per Route content encoding setting (overrides container setting)
-
-v2.8.0
-
-- add Request.QueryParameters()
-- add json-iterator (via build tag)
-- disable vgo module (until log is moved)
-
-v2.7.1
-
-- add vgo module
-
-v2.6.1
-
-- add JSONNewDecoderFunc to allow custom JSON Decoder usage (go 1.10+)
-
-v2.6.0
-
-- Make JSR 311 routing and path param processing consistent
-- Adding description to RouteBuilder.Reads()
-- Update example for Swagger12 and OpenAPI
-
-2017-09-13
-
-- added route condition functions using `.If(func)` in route building.
-
-2017-02-16
-
-- solved issue #304, make operation names unique
-
-2017-01-30
-
- [IMPORTANT] For swagger users, change your import statement to:
- swagger "github.com/emicklei/go-restful-swagger12"
-
-- moved swagger 1.2 code to go-restful-swagger12
-- created TAG 2.0.0
-
-2017-01-27
-
-- remove defer request body close
-- expose Dispatch for testing filters and Routefunctions
-- swagger response model cannot be array
-- created TAG 1.0.0
-
-2016-12-22
-
-- (API change) Remove code related to caching request content. Removes SetCacheReadEntity(doCache bool)
-
-2016-11-26
-
-- Default change! now use CurlyRouter (was RouterJSR311)
-- Default change! no more caching of request content
-- Default change! do not recover from panics
-
-2016-09-22
-
-- fix the DefaultRequestContentType feature
-
-2016-02-14
-
-- take the qualify factor of the Accept header mediatype into account when deciding the contentype of the response
-- add constructors for custom entity accessors for xml and json
-
-2015-09-27
-
-- rename new WriteStatusAnd... to WriteHeaderAnd... for consistency
-
-2015-09-25
-
-- fixed problem with changing Header after WriteHeader (issue 235)
-
-2015-09-14
-
-- changed behavior of WriteHeader (immediate write) and WriteEntity (no status write)
-- added support for custom EntityReaderWriters.
-
-2015-08-06
-
-- add support for reading entities from compressed request content
-- use sync.Pool for compressors of http response and request body
-- add Description to Parameter for documentation in Swagger UI
-
-2015-03-20
-
-- add configurable logging
-
-2015-03-18
-
-- if not specified, the Operation is derived from the Route function
-
-2015-03-17
-
-- expose Parameter creation functions
-- make trace logger an interface
-- fix OPTIONSFilter
-- customize rendering of ServiceError
-- JSR311 router now handles wildcards
-- add Notes to Route
-
-2014-11-27
-
-- (api add) PrettyPrint per response. (as proposed in #167)
-
-2014-11-12
-
-- (api add) ApiVersion(.) for documentation in Swagger UI
-
-2014-11-10
-
-- (api change) struct fields tagged with "description" show up in Swagger UI
-
-2014-10-31
-
-- (api change) ReturnsError -> Returns
-- (api add) RouteBuilder.Do(aBuilder) for DRY use of RouteBuilder
-- fix swagger nested structs
-- sort Swagger response messages by code
-
-2014-10-23
-
-- (api add) ReturnsError allows you to document Http codes in swagger
-- fixed problem with greedy CurlyRouter
-- (api add) Access-Control-Max-Age in CORS
-- add tracing functionality (injectable) for debugging purposes
-- support JSON parse 64bit int
-- fix empty parameters for swagger
-- WebServicesUrl is now optional for swagger
-- fixed duplicate AccessControlAllowOrigin in CORS
-- (api change) expose ServeMux in container
-- (api add) added AllowedDomains in CORS
-- (api add) ParameterNamed for detailed documentation
-
-2014-04-16
-
-- (api add) expose constructor of Request for testing.
-
-2014-06-27
-
-- (api add) ParameterNamed gives access to a Parameter definition and its data (for further specification).
-- (api add) SetCacheReadEntity allow scontrol over whether or not the request body is being cached (default true for compatibility reasons).
-
-2014-07-03
-
-- (api add) CORS can be configured with a list of allowed domains
-
-2014-03-12
-
-- (api add) Route path parameters can use wildcard or regular expressions. (requires CurlyRouter)
-
-2014-02-26
-
-- (api add) Request now provides information about the matched Route, see method SelectedRoutePath
-
-2014-02-17
-
-- (api change) renamed parameter constants (go-lint checks)
-
-2014-01-10
-
-- (api add) support for CloseNotify, see http://golang.org/pkg/net/http/#CloseNotifier
-
-2014-01-07
-
-- (api change) Write* methods in Response now return the error or nil.
-- added example of serving HTML from a Go template.
-- fixed comparing Allowed headers in CORS (is now case-insensitive)
-
-2013-11-13
-
-- (api add) Response knows how many bytes are written to the response body.
-
-2013-10-29
-
-- (api add) RecoverHandler(handler RecoverHandleFunction) to change how panic recovery is handled. Default behavior is to log and return a stacktrace. This may be a security issue as it exposes sourcecode information.
-
-2013-10-04
-
-- (api add) Response knows what HTTP status has been written
-- (api add) Request can have attributes (map of string->interface, also called request-scoped variables
-
-2013-09-12
-
-- (api change) Router interface simplified
-- Implemented CurlyRouter, a Router that does not use|allow regular expressions in paths
-
-2013-08-05
- - add OPTIONS support
- - add CORS support
-
-2013-08-27
-
-- fixed some reported issues (see github)
-- (api change) deprecated use of WriteError; use WriteErrorString instead
-
-2014-04-15
-
-- (fix) v1.0.1 tag: fix Issue 111: WriteErrorString
-
-2013-08-08
-
-- (api add) Added implementation Container: a WebServices collection with its own http.ServeMux allowing multiple endpoints per program. Existing uses of go-restful will register their services to the DefaultContainer.
-- (api add) the swagger package has be extended to have a UI per container.
-- if panic is detected then a small stack trace is printed (thanks to runner-mei)
-- (api add) WriteErrorString to Response
-
-Important API changes:
-
-- (api remove) package variable DoNotRecover no longer works ; use restful.DefaultContainer.DoNotRecover(true) instead.
-- (api remove) package variable EnableContentEncoding no longer works ; use restful.DefaultContainer.EnableContentEncoding(true) instead.
-
-
-2013-07-06
-
-- (api add) Added support for response encoding (gzip and deflate(zlib)). This feature is disabled on default (for backwards compatibility). Use restful.EnableContentEncoding = true in your initialization to enable this feature.
-
-2013-06-19
-
-- (improve) DoNotRecover option, moved request body closer, improved ReadEntity
-
-2013-06-03
-
-- (api change) removed Dispatcher interface, hide PathExpression
-- changed receiver names of type functions to be more idiomatic Go
-
-2013-06-02
-
-- (optimize) Cache the RegExp compilation of Paths.
-
-2013-05-22
-
-- (api add) Added support for request/response filter functions
-
-2013-05-18
-
-
-- (api add) Added feature to change the default Http Request Dispatch function (travis cline)
-- (api change) Moved Swagger Webservice to swagger package (see example restful-user)
-
-[2012-11-14 .. 2013-05-18>
-
-- See https://github.com/emicklei/go-restful/commits
-
-2012-11-14
-
-- Initial commit
-
-
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/LICENSE b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/LICENSE
deleted file mode 100644
index ece7ec61..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012,2013 Ernest Micklei
-
-MIT License
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Makefile b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Makefile
deleted file mode 100644
index 16d0b80b..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-all: test
-
-test:
- go vet .
- go test -cover -v .
-
-ex:
- find ./examples -type f -name "*.go" | xargs -I {} go build -o /tmp/ignore {}
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/README.md b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/README.md
deleted file mode 100644
index 7234604e..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-go-restful
-==========
-package for building REST-style Web Services using Google Go
-
-[](https://goreportcard.com/report/github.com/emicklei/go-restful)
-[](https://pkg.go.dev/github.com/emicklei/go-restful)
-[](https://codecov.io/gh/emicklei/go-restful)
-
-- [Code examples use v3](https://github.com/emicklei/go-restful/tree/v3/examples)
-
-REST asks developers to use HTTP methods explicitly and in a way that's consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between create, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:
-
-- GET = Retrieve a representation of a resource
-- POST = Create if you are sending content to the server to create a subordinate of the specified resource collection, using some server-side algorithm.
-- PUT = Create if you are sending the full content of the specified resource (URI).
-- PUT = Update if you are updating the full content of the specified resource.
-- DELETE = Delete if you are requesting the server to delete the resource
-- PATCH = Update partial content of a resource
-- OPTIONS = Get information about the communication options for the request URI
-
-### Usage
-
-#### Without Go Modules
-
-All versions up to `v2.*.*` (on the master) are not supporting Go modules.
-
-```
-import (
- restful "github.com/emicklei/go-restful"
-)
-```
-
-#### Using Go Modules
-
-As of version `v3.0.0` (on the v3 branch), this package supports Go modules.
-
-```
-import (
- restful "github.com/emicklei/go-restful/v3"
-)
-```
-
-### Example
-
-```Go
-ws := new(restful.WebService)
-ws.
- Path("/users").
- Consumes(restful.MIME_XML, restful.MIME_JSON).
- Produces(restful.MIME_JSON, restful.MIME_XML)
-
-ws.Route(ws.GET("/{user-id}").To(u.findUser).
- Doc("get a user").
- Param(ws.PathParameter("user-id", "identifier of the user").DataType("string")).
- Writes(User{}))
-...
-
-func (u UserResource) findUser(request *restful.Request, response *restful.Response) {
- id := request.PathParameter("user-id")
- ...
-}
-```
-
-[Full API of a UserResource](https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go)
-
-### Features
-
-- Routes for request → function mapping with path parameter (e.g. {id} but also prefix_{var} and {var}_suffix) support
-- Configurable router:
- - (default) Fast routing algorithm that allows static elements, [google custom method](https://cloud.google.com/apis/design/custom_methods), regular expressions and dynamic parameters in the URL path (e.g. /resource/name:customVerb, /meetings/{id} or /static/{subpath:*})
- - Routing algorithm after [JSR311](http://jsr311.java.net/nonav/releases/1.1/spec/spec.html) that is implemented using (but does **not** accept) regular expressions
-- Request API for reading structs from JSON/XML and accessing parameters (path,query,header)
-- Response API for writing structs to JSON/XML and setting headers
-- Customizable encoding using EntityReaderWriter registration
-- Filters for intercepting the request → response flow on Service or Route level
-- Request-scoped variables using attributes
-- Containers for WebServices on different HTTP endpoints
-- Content encoding (gzip,deflate) of request and response payloads
-- Automatic responses on OPTIONS (using a filter)
-- Automatic CORS request handling (using a filter)
-- API declaration for Swagger UI ([go-restful-openapi](https://github.com/emicklei/go-restful-openapi))
-- Panic recovery to produce HTTP 500, customizable using RecoverHandler(...)
-- Route errors produce HTTP 404/405/406/415 errors, customizable using ServiceErrorHandler(...)
-- Configurable (trace) logging
-- Customizable gzip/deflate readers and writers using CompressorProvider registration
-- Inject your own http.Handler using the `HttpMiddlewareHandlerToFilter` function
-
-## How to customize
-There are several hooks to customize the behavior of the go-restful package.
-
-- Router algorithm
-- Panic recovery
-- JSON decoder
-- Trace logging
-- Compression
-- Encoders for other serializers
-- Use the package variable `TrimRightSlashEnabled` (default true) to control the behavior of matching routes that end with a slash `/`
-
-## Resources
-
-- [Example programs](./examples)
-- [Example posted on blog](http://ernestmicklei.com/2012/11/go-restful-first-working-example/)
-- [Design explained on blog](http://ernestmicklei.com/2012/11/go-restful-api-design/)
-- [sourcegraph](https://sourcegraph.com/github.com/emicklei/go-restful)
-- [showcase: Zazkia - tcp proxy for testing resiliency](https://github.com/emicklei/zazkia)
-- [showcase: Mora - MongoDB REST Api server](https://github.com/emicklei/mora)
-
-Type ```git shortlog -s``` for a full list of contributors.
-
-© 2012 - 2023, http://ernestmicklei.com. MIT License. Contributions are welcome.
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/SECURITY.md b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/SECURITY.md
deleted file mode 100644
index 810d3b51..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/SECURITY.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Security Policy
-
-## Supported Versions
-
-| Version | Supported |
-| ------- | ------------------ |
-| v3.7.x | :white_check_mark: |
-| < v3.0.1 | :x: |
-
-## Reporting a Vulnerability
-
-Create an Issue and put the label `[security]` in the title of the issue.
-Valid reported security issues are expected to be solved within a week.
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Srcfile b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Srcfile
deleted file mode 100644
index 16fd1868..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/Srcfile
+++ /dev/null
@@ -1 +0,0 @@
-{"SkipDirs": ["examples"]}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/bench_test.sh b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/bench_test.sh
deleted file mode 100644
index 47ffbe4a..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/bench_test.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#go test -run=none -file bench_test.go -test.bench . -cpuprofile=bench_test.out
-
-go test -c
-./go-restful.test -test.run=none -test.cpuprofile=tmp.prof -test.bench=BenchmarkMany
-./go-restful.test -test.run=none -test.cpuprofile=curly.prof -test.bench=BenchmarkManyCurly
-
-#go tool pprof go-restful.test tmp.prof
-go tool pprof go-restful.test curly.prof
-
-
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compress.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compress.go
deleted file mode 100644
index 80adf55f..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compress.go
+++ /dev/null
@@ -1,137 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "bufio"
- "compress/gzip"
- "compress/zlib"
- "errors"
- "io"
- "net"
- "net/http"
- "strings"
-)
-
-// OBSOLETE : use restful.DefaultContainer.EnableContentEncoding(true) to change this setting.
-var EnableContentEncoding = false
-
-// CompressingResponseWriter is a http.ResponseWriter that can perform content encoding (gzip and zlib)
-type CompressingResponseWriter struct {
- writer http.ResponseWriter
- compressor io.WriteCloser
- encoding string
-}
-
-// Header is part of http.ResponseWriter interface
-func (c *CompressingResponseWriter) Header() http.Header {
- return c.writer.Header()
-}
-
-// WriteHeader is part of http.ResponseWriter interface
-func (c *CompressingResponseWriter) WriteHeader(status int) {
- c.writer.WriteHeader(status)
-}
-
-// Write is part of http.ResponseWriter interface
-// It is passed through the compressor
-func (c *CompressingResponseWriter) Write(bytes []byte) (int, error) {
- if c.isCompressorClosed() {
- return -1, errors.New("Compressing error: tried to write data using closed compressor")
- }
- return c.compressor.Write(bytes)
-}
-
-// CloseNotify is part of http.CloseNotifier interface
-func (c *CompressingResponseWriter) CloseNotify() <-chan bool {
- return c.writer.(http.CloseNotifier).CloseNotify()
-}
-
-// Flush is part of http.Flusher interface. Noop if the underlying writer doesn't support it.
-func (c *CompressingResponseWriter) Flush() {
- flusher, ok := c.writer.(http.Flusher)
- if !ok {
- // writer doesn't support http.Flusher interface
- return
- }
- flusher.Flush()
-}
-
-// Close the underlying compressor
-func (c *CompressingResponseWriter) Close() error {
- if c.isCompressorClosed() {
- return errors.New("Compressing error: tried to close already closed compressor")
- }
-
- c.compressor.Close()
- if ENCODING_GZIP == c.encoding {
- currentCompressorProvider.ReleaseGzipWriter(c.compressor.(*gzip.Writer))
- }
- if ENCODING_DEFLATE == c.encoding {
- currentCompressorProvider.ReleaseZlibWriter(c.compressor.(*zlib.Writer))
- }
- // gc hint needed?
- c.compressor = nil
- return nil
-}
-
-func (c *CompressingResponseWriter) isCompressorClosed() bool {
- return nil == c.compressor
-}
-
-// Hijack implements the Hijacker interface
-// This is especially useful when combining Container.EnabledContentEncoding
-// in combination with websockets (for instance gorilla/websocket)
-func (c *CompressingResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
- hijacker, ok := c.writer.(http.Hijacker)
- if !ok {
- return nil, nil, errors.New("ResponseWriter doesn't support Hijacker interface")
- }
- return hijacker.Hijack()
-}
-
-// WantsCompressedResponse reads the Accept-Encoding header to see if and which encoding is requested.
-// It also inspects the httpWriter whether its content-encoding is already set (non-empty).
-func wantsCompressedResponse(httpRequest *http.Request, httpWriter http.ResponseWriter) (bool, string) {
- if contentEncoding := httpWriter.Header().Get(HEADER_ContentEncoding); contentEncoding != "" {
- return false, ""
- }
- header := httpRequest.Header.Get(HEADER_AcceptEncoding)
- gi := strings.Index(header, ENCODING_GZIP)
- zi := strings.Index(header, ENCODING_DEFLATE)
- // use in order of appearance
- if gi == -1 {
- return zi != -1, ENCODING_DEFLATE
- } else if zi == -1 {
- return gi != -1, ENCODING_GZIP
- } else {
- if gi < zi {
- return true, ENCODING_GZIP
- }
- return true, ENCODING_DEFLATE
- }
-}
-
-// NewCompressingResponseWriter create a CompressingResponseWriter for a known encoding = {gzip,deflate}
-func NewCompressingResponseWriter(httpWriter http.ResponseWriter, encoding string) (*CompressingResponseWriter, error) {
- httpWriter.Header().Set(HEADER_ContentEncoding, encoding)
- c := new(CompressingResponseWriter)
- c.writer = httpWriter
- var err error
- if ENCODING_GZIP == encoding {
- w := currentCompressorProvider.AcquireGzipWriter()
- w.Reset(httpWriter)
- c.compressor = w
- c.encoding = ENCODING_GZIP
- } else if ENCODING_DEFLATE == encoding {
- w := currentCompressorProvider.AcquireZlibWriter()
- w.Reset(httpWriter)
- c.compressor = w
- c.encoding = ENCODING_DEFLATE
- } else {
- return nil, errors.New("Unknown encoding:" + encoding)
- }
- return c, err
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_cache.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_cache.go
deleted file mode 100644
index ee426010..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_cache.go
+++ /dev/null
@@ -1,103 +0,0 @@
-package restful
-
-// Copyright 2015 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "compress/gzip"
- "compress/zlib"
-)
-
-// BoundedCachedCompressors is a CompressorProvider that uses a cache with a fixed amount
-// of writers and readers (resources).
-// If a new resource is acquired and all are in use, it will return a new unmanaged resource.
-type BoundedCachedCompressors struct {
- gzipWriters chan *gzip.Writer
- gzipReaders chan *gzip.Reader
- zlibWriters chan *zlib.Writer
- writersCapacity int
- readersCapacity int
-}
-
-// NewBoundedCachedCompressors returns a new, with filled cache, BoundedCachedCompressors.
-func NewBoundedCachedCompressors(writersCapacity, readersCapacity int) *BoundedCachedCompressors {
- b := &BoundedCachedCompressors{
- gzipWriters: make(chan *gzip.Writer, writersCapacity),
- gzipReaders: make(chan *gzip.Reader, readersCapacity),
- zlibWriters: make(chan *zlib.Writer, writersCapacity),
- writersCapacity: writersCapacity,
- readersCapacity: readersCapacity,
- }
- for ix := 0; ix < writersCapacity; ix++ {
- b.gzipWriters <- newGzipWriter()
- b.zlibWriters <- newZlibWriter()
- }
- for ix := 0; ix < readersCapacity; ix++ {
- b.gzipReaders <- newGzipReader()
- }
- return b
-}
-
-// AcquireGzipWriter returns an resettable *gzip.Writer. Needs to be released.
-func (b *BoundedCachedCompressors) AcquireGzipWriter() *gzip.Writer {
- var writer *gzip.Writer
- select {
- case writer, _ = <-b.gzipWriters:
- default:
- // return a new unmanaged one
- writer = newGzipWriter()
- }
- return writer
-}
-
-// ReleaseGzipWriter accepts a writer (does not have to be one that was cached)
-// only when the cache has room for it. It will ignore it otherwise.
-func (b *BoundedCachedCompressors) ReleaseGzipWriter(w *gzip.Writer) {
- // forget the unmanaged ones
- if len(b.gzipWriters) < b.writersCapacity {
- b.gzipWriters <- w
- }
-}
-
-// AcquireGzipReader returns a *gzip.Reader. Needs to be released.
-func (b *BoundedCachedCompressors) AcquireGzipReader() *gzip.Reader {
- var reader *gzip.Reader
- select {
- case reader, _ = <-b.gzipReaders:
- default:
- // return a new unmanaged one
- reader = newGzipReader()
- }
- return reader
-}
-
-// ReleaseGzipReader accepts a reader (does not have to be one that was cached)
-// only when the cache has room for it. It will ignore it otherwise.
-func (b *BoundedCachedCompressors) ReleaseGzipReader(r *gzip.Reader) {
- // forget the unmanaged ones
- if len(b.gzipReaders) < b.readersCapacity {
- b.gzipReaders <- r
- }
-}
-
-// AcquireZlibWriter returns an resettable *zlib.Writer. Needs to be released.
-func (b *BoundedCachedCompressors) AcquireZlibWriter() *zlib.Writer {
- var writer *zlib.Writer
- select {
- case writer, _ = <-b.zlibWriters:
- default:
- // return a new unmanaged one
- writer = newZlibWriter()
- }
- return writer
-}
-
-// ReleaseZlibWriter accepts a writer (does not have to be one that was cached)
-// only when the cache has room for it. It will ignore it otherwise.
-func (b *BoundedCachedCompressors) ReleaseZlibWriter(w *zlib.Writer) {
- // forget the unmanaged ones
- if len(b.zlibWriters) < b.writersCapacity {
- b.zlibWriters <- w
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_pools.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_pools.go
deleted file mode 100644
index d866ce64..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressor_pools.go
+++ /dev/null
@@ -1,91 +0,0 @@
-package restful
-
-// Copyright 2015 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "bytes"
- "compress/gzip"
- "compress/zlib"
- "sync"
-)
-
-// SyncPoolCompessors is a CompressorProvider that use the standard sync.Pool.
-type SyncPoolCompessors struct {
- GzipWriterPool *sync.Pool
- GzipReaderPool *sync.Pool
- ZlibWriterPool *sync.Pool
-}
-
-// NewSyncPoolCompessors returns a new ("empty") SyncPoolCompessors.
-func NewSyncPoolCompessors() *SyncPoolCompessors {
- return &SyncPoolCompessors{
- GzipWriterPool: &sync.Pool{
- New: func() interface{} { return newGzipWriter() },
- },
- GzipReaderPool: &sync.Pool{
- New: func() interface{} { return newGzipReader() },
- },
- ZlibWriterPool: &sync.Pool{
- New: func() interface{} { return newZlibWriter() },
- },
- }
-}
-
-func (s *SyncPoolCompessors) AcquireGzipWriter() *gzip.Writer {
- return s.GzipWriterPool.Get().(*gzip.Writer)
-}
-
-func (s *SyncPoolCompessors) ReleaseGzipWriter(w *gzip.Writer) {
- s.GzipWriterPool.Put(w)
-}
-
-func (s *SyncPoolCompessors) AcquireGzipReader() *gzip.Reader {
- return s.GzipReaderPool.Get().(*gzip.Reader)
-}
-
-func (s *SyncPoolCompessors) ReleaseGzipReader(r *gzip.Reader) {
- s.GzipReaderPool.Put(r)
-}
-
-func (s *SyncPoolCompessors) AcquireZlibWriter() *zlib.Writer {
- return s.ZlibWriterPool.Get().(*zlib.Writer)
-}
-
-func (s *SyncPoolCompessors) ReleaseZlibWriter(w *zlib.Writer) {
- s.ZlibWriterPool.Put(w)
-}
-
-func newGzipWriter() *gzip.Writer {
- // create with an empty bytes writer; it will be replaced before using the gzipWriter
- writer, err := gzip.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)
- if err != nil {
- panic(err.Error())
- }
- return writer
-}
-
-func newGzipReader() *gzip.Reader {
- // create with an empty reader (but with GZIP header); it will be replaced before using the gzipReader
- // we can safely use currentCompressProvider because it is set on package initialization.
- w := currentCompressorProvider.AcquireGzipWriter()
- defer currentCompressorProvider.ReleaseGzipWriter(w)
- b := new(bytes.Buffer)
- w.Reset(b)
- w.Flush()
- w.Close()
- reader, err := gzip.NewReader(bytes.NewReader(b.Bytes()))
- if err != nil {
- panic(err.Error())
- }
- return reader
-}
-
-func newZlibWriter() *zlib.Writer {
- writer, err := zlib.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)
- if err != nil {
- panic(err.Error())
- }
- return writer
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressors.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressors.go
deleted file mode 100644
index 9db4a8c8..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/compressors.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package restful
-
-// Copyright 2015 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "compress/gzip"
- "compress/zlib"
-)
-
-// CompressorProvider describes a component that can provider compressors for the std methods.
-type CompressorProvider interface {
- // Returns a *gzip.Writer which needs to be released later.
- // Before using it, call Reset().
- AcquireGzipWriter() *gzip.Writer
-
- // Releases an acquired *gzip.Writer.
- ReleaseGzipWriter(w *gzip.Writer)
-
- // Returns a *gzip.Reader which needs to be released later.
- AcquireGzipReader() *gzip.Reader
-
- // Releases an acquired *gzip.Reader.
- ReleaseGzipReader(w *gzip.Reader)
-
- // Returns a *zlib.Writer which needs to be released later.
- // Before using it, call Reset().
- AcquireZlibWriter() *zlib.Writer
-
- // Releases an acquired *zlib.Writer.
- ReleaseZlibWriter(w *zlib.Writer)
-}
-
-// DefaultCompressorProvider is the actual provider of compressors (zlib or gzip).
-var currentCompressorProvider CompressorProvider
-
-func init() {
- currentCompressorProvider = NewSyncPoolCompessors()
-}
-
-// CurrentCompressorProvider returns the current CompressorProvider.
-// It is initialized using a SyncPoolCompessors.
-func CurrentCompressorProvider() CompressorProvider {
- return currentCompressorProvider
-}
-
-// SetCompressorProvider sets the actual provider of compressors (zlib or gzip).
-func SetCompressorProvider(p CompressorProvider) {
- if p == nil {
- panic("cannot set compressor provider to nil")
- }
- currentCompressorProvider = p
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/constants.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/constants.go
deleted file mode 100644
index 2328bde6..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/constants.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-const (
- MIME_XML = "application/xml" // Accept or Content-Type used in Consumes() and/or Produces()
- MIME_JSON = "application/json" // Accept or Content-Type used in Consumes() and/or Produces()
- MIME_ZIP = "application/zip" // Accept or Content-Type used in Consumes() and/or Produces()
- MIME_OCTET = "application/octet-stream" // If Content-Type is not present in request, use the default
-
- HEADER_Allow = "Allow"
- HEADER_Accept = "Accept"
- HEADER_Origin = "Origin"
- HEADER_ContentType = "Content-Type"
- HEADER_ContentDisposition = "Content-Disposition"
- HEADER_LastModified = "Last-Modified"
- HEADER_AcceptEncoding = "Accept-Encoding"
- HEADER_ContentEncoding = "Content-Encoding"
- HEADER_AccessControlExposeHeaders = "Access-Control-Expose-Headers"
- HEADER_AccessControlRequestMethod = "Access-Control-Request-Method"
- HEADER_AccessControlRequestHeaders = "Access-Control-Request-Headers"
- HEADER_AccessControlAllowMethods = "Access-Control-Allow-Methods"
- HEADER_AccessControlAllowOrigin = "Access-Control-Allow-Origin"
- HEADER_AccessControlAllowCredentials = "Access-Control-Allow-Credentials"
- HEADER_AccessControlAllowHeaders = "Access-Control-Allow-Headers"
- HEADER_AccessControlMaxAge = "Access-Control-Max-Age"
-
- ENCODING_GZIP = "gzip"
- ENCODING_DEFLATE = "deflate"
-)
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/container.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/container.go
deleted file mode 100644
index dd56246d..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/container.go
+++ /dev/null
@@ -1,450 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "bytes"
- "errors"
- "fmt"
- "net/http"
- "os"
- "runtime"
- "strings"
- "sync"
-
- "github.com/emicklei/go-restful/v3/log"
-)
-
-// Container holds a collection of WebServices and a http.ServeMux to dispatch http requests.
-// The requests are further dispatched to routes of WebServices using a RouteSelector
-type Container struct {
- webServicesLock sync.RWMutex
- webServices []*WebService
- ServeMux *http.ServeMux
- isRegisteredOnRoot bool
- containerFilters []FilterFunction
- doNotRecover bool // default is true
- recoverHandleFunc RecoverHandleFunction
- serviceErrorHandleFunc ServiceErrorHandleFunction
- router RouteSelector // default is a CurlyRouter (RouterJSR311 is a slower alternative)
- contentEncodingEnabled bool // default is false
-}
-
-// NewContainer creates a new Container using a new ServeMux and default router (CurlyRouter)
-func NewContainer() *Container {
- return &Container{
- webServices: []*WebService{},
- ServeMux: http.NewServeMux(),
- isRegisteredOnRoot: false,
- containerFilters: []FilterFunction{},
- doNotRecover: true,
- recoverHandleFunc: logStackOnRecover,
- serviceErrorHandleFunc: writeServiceError,
- router: CurlyRouter{},
- contentEncodingEnabled: false}
-}
-
-// RecoverHandleFunction declares functions that can be used to handle a panic situation.
-// The first argument is what recover() returns. The second must be used to communicate an error response.
-type RecoverHandleFunction func(interface{}, http.ResponseWriter)
-
-// RecoverHandler changes the default function (logStackOnRecover) to be called
-// when a panic is detected. DoNotRecover must be have its default value (=false).
-func (c *Container) RecoverHandler(handler RecoverHandleFunction) {
- c.recoverHandleFunc = handler
-}
-
-// ServiceErrorHandleFunction declares functions that can be used to handle a service error situation.
-// The first argument is the service error, the second is the request that resulted in the error and
-// the third must be used to communicate an error response.
-type ServiceErrorHandleFunction func(ServiceError, *Request, *Response)
-
-// ServiceErrorHandler changes the default function (writeServiceError) to be called
-// when a ServiceError is detected.
-func (c *Container) ServiceErrorHandler(handler ServiceErrorHandleFunction) {
- c.serviceErrorHandleFunc = handler
-}
-
-// DoNotRecover controls whether panics will be caught to return HTTP 500.
-// If set to true, Route functions are responsible for handling any error situation.
-// Default value is true.
-func (c *Container) DoNotRecover(doNot bool) {
- c.doNotRecover = doNot
-}
-
-// Router changes the default Router (currently CurlyRouter)
-func (c *Container) Router(aRouter RouteSelector) {
- c.router = aRouter
-}
-
-// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses.
-func (c *Container) EnableContentEncoding(enabled bool) {
- c.contentEncodingEnabled = enabled
-}
-
-// Add a WebService to the Container. It will detect duplicate root paths and exit in that case.
-func (c *Container) Add(service *WebService) *Container {
- c.webServicesLock.Lock()
- defer c.webServicesLock.Unlock()
-
- // if rootPath was not set then lazy initialize it
- if len(service.rootPath) == 0 {
- service.Path("/")
- }
-
- // cannot have duplicate root paths
- for _, each := range c.webServices {
- if each.RootPath() == service.RootPath() {
- log.Printf("WebService with duplicate root path detected:['%v']", each)
- os.Exit(1)
- }
- }
-
- // If not registered on root then add specific mapping
- if !c.isRegisteredOnRoot {
- c.isRegisteredOnRoot = c.addHandler(service, c.ServeMux)
- }
- c.webServices = append(c.webServices, service)
- return c
-}
-
-// addHandler may set a new HandleFunc for the serveMux
-// this function must run inside the critical region protected by the webServicesLock.
-// returns true if the function was registered on root ("/")
-func (c *Container) addHandler(service *WebService, serveMux *http.ServeMux) bool {
- pattern := fixedPrefixPath(service.RootPath())
- // check if root path registration is needed
- if "/" == pattern || "" == pattern {
- serveMux.HandleFunc("/", c.dispatch)
- return true
- }
- // detect if registration already exists
- alreadyMapped := false
- for _, each := range c.webServices {
- if each.RootPath() == service.RootPath() {
- alreadyMapped = true
- break
- }
- }
- if !alreadyMapped {
- serveMux.HandleFunc(pattern, c.dispatch)
- if !strings.HasSuffix(pattern, "/") {
- serveMux.HandleFunc(pattern+"/", c.dispatch)
- }
- }
- return false
-}
-
-func (c *Container) Remove(ws *WebService) error {
- if c.ServeMux == http.DefaultServeMux {
- errMsg := fmt.Sprintf("cannot remove a WebService from a Container using the DefaultServeMux: ['%v']", ws)
- log.Print(errMsg)
- return errors.New(errMsg)
- }
- c.webServicesLock.Lock()
- defer c.webServicesLock.Unlock()
- // build a new ServeMux and re-register all WebServices
- newServeMux := http.NewServeMux()
- newServices := []*WebService{}
- newIsRegisteredOnRoot := false
- for _, each := range c.webServices {
- if each.rootPath != ws.rootPath {
- // If not registered on root then add specific mapping
- if !newIsRegisteredOnRoot {
- newIsRegisteredOnRoot = c.addHandler(each, newServeMux)
- }
- newServices = append(newServices, each)
- }
- }
- c.webServices, c.ServeMux, c.isRegisteredOnRoot = newServices, newServeMux, newIsRegisteredOnRoot
- return nil
-}
-
-// logStackOnRecover is the default RecoverHandleFunction and is called
-// when DoNotRecover is false and the recoverHandleFunc is not set for the container.
-// Default implementation logs the stacktrace and writes the stacktrace on the response.
-// This may be a security issue as it exposes sourcecode information.
-func logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) {
- var buffer bytes.Buffer
- buffer.WriteString(fmt.Sprintf("recover from panic situation: - %v\r\n", panicReason))
- for i := 2; ; i += 1 {
- _, file, line, ok := runtime.Caller(i)
- if !ok {
- break
- }
- buffer.WriteString(fmt.Sprintf(" %s:%d\r\n", file, line))
- }
- log.Print(buffer.String())
- httpWriter.WriteHeader(http.StatusInternalServerError)
- httpWriter.Write(buffer.Bytes())
-}
-
-// writeServiceError is the default ServiceErrorHandleFunction and is called
-// when a ServiceError is returned during route selection. Default implementation
-// calls resp.WriteErrorString(err.Code, err.Message)
-func writeServiceError(err ServiceError, req *Request, resp *Response) {
- for header, values := range err.Header {
- for _, value := range values {
- resp.Header().Add(header, value)
- }
- }
- resp.WriteErrorString(err.Code, err.Message)
-}
-
-// Dispatch the incoming Http Request to a matching WebService.
-func (c *Container) Dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {
- if httpWriter == nil {
- panic("httpWriter cannot be nil")
- }
- if httpRequest == nil {
- panic("httpRequest cannot be nil")
- }
- c.dispatch(httpWriter, httpRequest)
-}
-
-// Dispatch the incoming Http Request to a matching WebService.
-func (c *Container) dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {
- // so we can assign a compressing one later
- writer := httpWriter
-
- // CompressingResponseWriter should be closed after all operations are done
- defer func() {
- if compressWriter, ok := writer.(*CompressingResponseWriter); ok {
- compressWriter.Close()
- }
- }()
-
- // Instal panic recovery unless told otherwise
- if !c.doNotRecover { // catch all for 500 response
- defer func() {
- if r := recover(); r != nil {
- c.recoverHandleFunc(r, writer)
- return
- }
- }()
- }
-
- // Find best match Route ; err is non nil if no match was found
- var webService *WebService
- var route *Route
- var err error
- func() {
- c.webServicesLock.RLock()
- defer c.webServicesLock.RUnlock()
- webService, route, err = c.router.SelectRoute(
- c.webServices,
- httpRequest)
- }()
- if err != nil {
- // a non-200 response (may be compressed) has already been written
- // run container filters anyway ; they should not touch the response...
- chain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {
- switch err.(type) {
- case ServiceError:
- ser := err.(ServiceError)
- c.serviceErrorHandleFunc(ser, req, resp)
- }
- // TODO
- }}
- chain.ProcessFilter(NewRequest(httpRequest), NewResponse(writer))
- return
- }
-
- // Unless httpWriter is already an CompressingResponseWriter see if we need to install one
- if _, isCompressing := httpWriter.(*CompressingResponseWriter); !isCompressing {
- // Detect if compression is needed
- // assume without compression, test for override
- contentEncodingEnabled := c.contentEncodingEnabled
- if route != nil && route.contentEncodingEnabled != nil {
- contentEncodingEnabled = *route.contentEncodingEnabled
- }
- if contentEncodingEnabled {
- doCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)
- if doCompress {
- var err error
- writer, err = NewCompressingResponseWriter(httpWriter, encoding)
- if err != nil {
- log.Print("unable to install compressor: ", err)
- httpWriter.WriteHeader(http.StatusInternalServerError)
- return
- }
- }
- }
- }
-
- pathProcessor, routerProcessesPath := c.router.(PathProcessor)
- if !routerProcessesPath {
- pathProcessor = defaultPathProcessor{}
- }
- pathParams := pathProcessor.ExtractParameters(route, webService, httpRequest.URL.Path)
- wrappedRequest, wrappedResponse := route.wrapRequestResponse(writer, httpRequest, pathParams)
- // pass through filters (if any)
- if size := len(c.containerFilters) + len(webService.filters) + len(route.Filters); size > 0 {
- // compose filter chain
- allFilters := make([]FilterFunction, 0, size)
- allFilters = append(allFilters, c.containerFilters...)
- allFilters = append(allFilters, webService.filters...)
- allFilters = append(allFilters, route.Filters...)
- chain := FilterChain{
- Filters: allFilters,
- Target: route.Function,
- ParameterDocs: route.ParameterDocs,
- Operation: route.Operation,
- }
- chain.ProcessFilter(wrappedRequest, wrappedResponse)
- } else {
- // no filters, handle request by route
- route.Function(wrappedRequest, wrappedResponse)
- }
-}
-
-// fixedPrefixPath returns the fixed part of the partspec ; it may include template vars {}
-func fixedPrefixPath(pathspec string) string {
- varBegin := strings.Index(pathspec, "{")
- if -1 == varBegin {
- return pathspec
- }
- return pathspec[:varBegin]
-}
-
-// ServeHTTP implements net/http.Handler therefore a Container can be a Handler in a http.Server
-func (c *Container) ServeHTTP(httpWriter http.ResponseWriter, httpRequest *http.Request) {
- // Skip, if content encoding is disabled
- if !c.contentEncodingEnabled {
- c.ServeMux.ServeHTTP(httpWriter, httpRequest)
- return
- }
- // content encoding is enabled
-
- // Skip, if httpWriter is already an CompressingResponseWriter
- if _, ok := httpWriter.(*CompressingResponseWriter); ok {
- c.ServeMux.ServeHTTP(httpWriter, httpRequest)
- return
- }
-
- writer := httpWriter
- // CompressingResponseWriter should be closed after all operations are done
- defer func() {
- if compressWriter, ok := writer.(*CompressingResponseWriter); ok {
- compressWriter.Close()
- }
- }()
-
- doCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)
- if doCompress {
- var err error
- writer, err = NewCompressingResponseWriter(httpWriter, encoding)
- if err != nil {
- log.Print("unable to install compressor: ", err)
- httpWriter.WriteHeader(http.StatusInternalServerError)
- return
- }
- }
-
- c.ServeMux.ServeHTTP(writer, httpRequest)
-}
-
-// Handle registers the handler for the given pattern. If a handler already exists for pattern, Handle panics.
-func (c *Container) Handle(pattern string, handler http.Handler) {
- c.ServeMux.Handle(pattern, http.HandlerFunc(func(httpWriter http.ResponseWriter, httpRequest *http.Request) {
- // Skip, if httpWriter is already an CompressingResponseWriter
- if _, ok := httpWriter.(*CompressingResponseWriter); ok {
- handler.ServeHTTP(httpWriter, httpRequest)
- return
- }
-
- writer := httpWriter
-
- // CompressingResponseWriter should be closed after all operations are done
- defer func() {
- if compressWriter, ok := writer.(*CompressingResponseWriter); ok {
- compressWriter.Close()
- }
- }()
-
- if c.contentEncodingEnabled {
- doCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)
- if doCompress {
- var err error
- writer, err = NewCompressingResponseWriter(httpWriter, encoding)
- if err != nil {
- log.Print("unable to install compressor: ", err)
- httpWriter.WriteHeader(http.StatusInternalServerError)
- return
- }
- }
- }
-
- handler.ServeHTTP(writer, httpRequest)
- }))
-}
-
-// HandleWithFilter registers the handler for the given pattern.
-// Container's filter chain is applied for handler.
-// If a handler already exists for pattern, HandleWithFilter panics.
-func (c *Container) HandleWithFilter(pattern string, handler http.Handler) {
- f := func(httpResponse http.ResponseWriter, httpRequest *http.Request) {
- if len(c.containerFilters) == 0 {
- handler.ServeHTTP(httpResponse, httpRequest)
- return
- }
-
- chain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {
- handler.ServeHTTP(resp, req.Request)
- }}
- chain.ProcessFilter(NewRequest(httpRequest), NewResponse(httpResponse))
- }
-
- c.Handle(pattern, http.HandlerFunc(f))
-}
-
-// Filter appends a container FilterFunction. These are called before dispatching
-// a http.Request to a WebService from the container
-func (c *Container) Filter(filter FilterFunction) {
- c.containerFilters = append(c.containerFilters, filter)
-}
-
-// RegisteredWebServices returns the collections of added WebServices
-func (c *Container) RegisteredWebServices() []*WebService {
- c.webServicesLock.RLock()
- defer c.webServicesLock.RUnlock()
- result := make([]*WebService, len(c.webServices))
- for ix := range c.webServices {
- result[ix] = c.webServices[ix]
- }
- return result
-}
-
-// computeAllowedMethods returns a list of HTTP methods that are valid for a Request
-func (c *Container) computeAllowedMethods(req *Request) []string {
- // Go through all RegisteredWebServices() and all its Routes to collect the options
- methods := []string{}
- requestPath := req.Request.URL.Path
- for _, ws := range c.RegisteredWebServices() {
- matches := ws.pathExpr.Matcher.FindStringSubmatch(requestPath)
- if matches != nil {
- finalMatch := matches[len(matches)-1]
- for _, rt := range ws.Routes() {
- matches := rt.pathExpr.Matcher.FindStringSubmatch(finalMatch)
- if matches != nil {
- lastMatch := matches[len(matches)-1]
- if lastMatch == "" || lastMatch == "/" { // do not include if value is neither empty nor ‘/’.
- methods = append(methods, rt.Method)
- }
- }
- }
- }
- }
- // methods = append(methods, "OPTIONS") not sure about this
- return methods
-}
-
-// newBasicRequestResponse creates a pair of Request,Response from its http versions.
-// It is basic because no parameter or (produces) content-type information is given.
-func newBasicRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request) (*Request, *Response) {
- resp := NewResponse(httpWriter)
- resp.requestAccept = httpRequest.Header.Get(HEADER_Accept)
- return NewRequest(httpRequest), resp
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/cors_filter.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/cors_filter.go
deleted file mode 100644
index 9d18dfb7..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/cors_filter.go
+++ /dev/null
@@ -1,193 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "regexp"
- "strconv"
- "strings"
-)
-
-// CrossOriginResourceSharing is used to create a Container Filter that implements CORS.
-// Cross-origin resource sharing (CORS) is a mechanism that allows JavaScript on a web page
-// to make XMLHttpRequests to another domain, not the domain the JavaScript originated from.
-//
-// http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
-// http://enable-cors.org/server.html
-// http://www.html5rocks.com/en/tutorials/cors/#toc-handling-a-not-so-simple-request
-type CrossOriginResourceSharing struct {
- ExposeHeaders []string // list of Header names
-
- // AllowedHeaders is alist of Header names. Checking is case-insensitive.
- // The list may contain the special wildcard string ".*" ; all is allowed
- AllowedHeaders []string
-
- // AllowedDomains is a list of allowed values for Http Origin.
- // The list may contain the special wildcard string ".*" ; all is allowed
- // If empty all are allowed.
- AllowedDomains []string
-
- // AllowedDomainFunc is optional and is a function that will do the check
- // when the origin is not part of the AllowedDomains and it does not contain the wildcard ".*".
- AllowedDomainFunc func(origin string) bool
-
- // AllowedMethods is either empty or has a list of http methods names. Checking is case-insensitive.
- AllowedMethods []string
- MaxAge int // number of seconds before requiring new Options request
- CookiesAllowed bool
- Container *Container
-
- allowedOriginPatterns []*regexp.Regexp // internal field for origin regexp check.
-}
-
-// Filter is a filter function that implements the CORS flow as documented on http://enable-cors.org/server.html
-// and http://www.html5rocks.com/static/images/cors_server_flowchart.png
-func (c CrossOriginResourceSharing) Filter(req *Request, resp *Response, chain *FilterChain) {
- origin := req.Request.Header.Get(HEADER_Origin)
- if len(origin) == 0 {
- if trace {
- traceLogger.Print("no Http header Origin set")
- }
- chain.ProcessFilter(req, resp)
- return
- }
- if !c.isOriginAllowed(origin) { // check whether this origin is allowed
- if trace {
- traceLogger.Printf("HTTP Origin:%s is not part of %v, neither matches any part of %v", origin, c.AllowedDomains, c.allowedOriginPatterns)
- }
- chain.ProcessFilter(req, resp)
- return
- }
- if req.Request.Method != "OPTIONS" {
- c.doActualRequest(req, resp)
- chain.ProcessFilter(req, resp)
- return
- }
- if acrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod); acrm != "" {
- c.doPreflightRequest(req, resp)
- } else {
- c.doActualRequest(req, resp)
- chain.ProcessFilter(req, resp)
- return
- }
-}
-
-func (c CrossOriginResourceSharing) doActualRequest(req *Request, resp *Response) {
- c.setOptionsHeaders(req, resp)
- // continue processing the response
-}
-
-func (c *CrossOriginResourceSharing) doPreflightRequest(req *Request, resp *Response) {
- if len(c.AllowedMethods) == 0 {
- if c.Container == nil {
- c.AllowedMethods = DefaultContainer.computeAllowedMethods(req)
- } else {
- c.AllowedMethods = c.Container.computeAllowedMethods(req)
- }
- }
-
- acrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod)
- if !c.isValidAccessControlRequestMethod(acrm, c.AllowedMethods) {
- if trace {
- traceLogger.Printf("Http header %s:%s is not in %v",
- HEADER_AccessControlRequestMethod,
- acrm,
- c.AllowedMethods)
- }
- return
- }
- acrhs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)
- if len(acrhs) > 0 {
- for _, each := range strings.Split(acrhs, ",") {
- if !c.isValidAccessControlRequestHeader(strings.Trim(each, " ")) {
- if trace {
- traceLogger.Printf("Http header %s:%s is not in %v",
- HEADER_AccessControlRequestHeaders,
- acrhs,
- c.AllowedHeaders)
- }
- return
- }
- }
- }
- resp.AddHeader(HEADER_AccessControlAllowMethods, strings.Join(c.AllowedMethods, ","))
- resp.AddHeader(HEADER_AccessControlAllowHeaders, acrhs)
- c.setOptionsHeaders(req, resp)
-
- // return http 200 response, no body
-}
-
-func (c CrossOriginResourceSharing) setOptionsHeaders(req *Request, resp *Response) {
- c.checkAndSetExposeHeaders(resp)
- c.setAllowOriginHeader(req, resp)
- c.checkAndSetAllowCredentials(resp)
- if c.MaxAge > 0 {
- resp.AddHeader(HEADER_AccessControlMaxAge, strconv.Itoa(c.MaxAge))
- }
-}
-
-func (c CrossOriginResourceSharing) isOriginAllowed(origin string) bool {
- if len(origin) == 0 {
- return false
- }
- lowerOrigin := strings.ToLower(origin)
- if len(c.AllowedDomains) == 0 {
- if c.AllowedDomainFunc != nil {
- return c.AllowedDomainFunc(lowerOrigin)
- }
- return true
- }
-
- // exact match on each allowed domain
- for _, domain := range c.AllowedDomains {
- if domain == ".*" || strings.ToLower(domain) == lowerOrigin {
- return true
- }
- }
- if c.AllowedDomainFunc != nil {
- return c.AllowedDomainFunc(origin)
- }
- return false
-}
-
-func (c CrossOriginResourceSharing) setAllowOriginHeader(req *Request, resp *Response) {
- origin := req.Request.Header.Get(HEADER_Origin)
- if c.isOriginAllowed(origin) {
- resp.AddHeader(HEADER_AccessControlAllowOrigin, origin)
- }
-}
-
-func (c CrossOriginResourceSharing) checkAndSetExposeHeaders(resp *Response) {
- if len(c.ExposeHeaders) > 0 {
- resp.AddHeader(HEADER_AccessControlExposeHeaders, strings.Join(c.ExposeHeaders, ","))
- }
-}
-
-func (c CrossOriginResourceSharing) checkAndSetAllowCredentials(resp *Response) {
- if c.CookiesAllowed {
- resp.AddHeader(HEADER_AccessControlAllowCredentials, "true")
- }
-}
-
-func (c CrossOriginResourceSharing) isValidAccessControlRequestMethod(method string, allowedMethods []string) bool {
- for _, each := range allowedMethods {
- if each == method {
- return true
- }
- }
- return false
-}
-
-func (c CrossOriginResourceSharing) isValidAccessControlRequestHeader(header string) bool {
- for _, each := range c.AllowedHeaders {
- if strings.ToLower(each) == strings.ToLower(header) {
- return true
- }
- if each == "*" {
- return true
- }
- }
- return false
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/coverage.sh b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/coverage.sh
deleted file mode 100644
index e27dbf1a..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/coverage.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-go test -coverprofile=coverage.out
-go tool cover -html=coverage.out
\ No newline at end of file
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly.go
deleted file mode 100644
index 6fd2bcd5..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly.go
+++ /dev/null
@@ -1,181 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "net/http"
- "regexp"
- "sort"
- "strings"
-)
-
-// CurlyRouter expects Routes with paths that contain zero or more parameters in curly brackets.
-type CurlyRouter struct{}
-
-// SelectRoute is part of the Router interface and returns the best match
-// for the WebService and its Route for the given Request.
-func (c CurlyRouter) SelectRoute(
- webServices []*WebService,
- httpRequest *http.Request) (selectedService *WebService, selected *Route, err error) {
-
- requestTokens := tokenizePath(httpRequest.URL.Path)
-
- detectedService := c.detectWebService(requestTokens, webServices)
- if detectedService == nil {
- if trace {
- traceLogger.Printf("no WebService was found to match URL path:%s\n", httpRequest.URL.Path)
- }
- return nil, nil, NewError(http.StatusNotFound, "404: Page Not Found")
- }
- candidateRoutes := c.selectRoutes(detectedService, requestTokens)
- if len(candidateRoutes) == 0 {
- if trace {
- traceLogger.Printf("no Route in WebService with path %s was found to match URL path:%s\n", detectedService.rootPath, httpRequest.URL.Path)
- }
- return detectedService, nil, NewError(http.StatusNotFound, "404: Page Not Found")
- }
- selectedRoute, err := c.detectRoute(candidateRoutes, httpRequest)
- if selectedRoute == nil {
- return detectedService, nil, err
- }
- return detectedService, selectedRoute, nil
-}
-
-// selectRoutes return a collection of Route from a WebService that matches the path tokens from the request.
-func (c CurlyRouter) selectRoutes(ws *WebService, requestTokens []string) sortableCurlyRoutes {
- candidates := make(sortableCurlyRoutes, 0, 8)
- for _, eachRoute := range ws.routes {
- matches, paramCount, staticCount := c.matchesRouteByPathTokens(eachRoute.pathParts, requestTokens, eachRoute.hasCustomVerb)
- if matches {
- candidates.add(curlyRoute{eachRoute, paramCount, staticCount}) // TODO make sure Routes() return pointers?
- }
- }
- sort.Sort(candidates)
- return candidates
-}
-
-// matchesRouteByPathTokens computes whether it matches, howmany parameters do match and what the number of static path elements are.
-func (c CurlyRouter) matchesRouteByPathTokens(routeTokens, requestTokens []string, routeHasCustomVerb bool) (matches bool, paramCount int, staticCount int) {
- if len(routeTokens) < len(requestTokens) {
- // proceed in matching only if last routeToken is wildcard
- count := len(routeTokens)
- if count == 0 || !strings.HasSuffix(routeTokens[count-1], "*}") {
- return false, 0, 0
- }
- // proceed
- }
- for i, routeToken := range routeTokens {
- if i == len(requestTokens) {
- // reached end of request path
- return false, 0, 0
- }
- requestToken := requestTokens[i]
- if routeHasCustomVerb && hasCustomVerb(routeToken) {
- if !isMatchCustomVerb(routeToken, requestToken) {
- return false, 0, 0
- }
- staticCount++
- requestToken = removeCustomVerb(requestToken)
- routeToken = removeCustomVerb(routeToken)
- }
-
- if strings.HasPrefix(routeToken, "{") {
- paramCount++
- if colon := strings.Index(routeToken, ":"); colon != -1 {
- // match by regex
- matchesToken, matchesRemainder := c.regularMatchesPathToken(routeToken, colon, requestToken)
- if !matchesToken {
- return false, 0, 0
- }
- if matchesRemainder {
- break
- }
- }
- } else { // no { prefix
- if requestToken != routeToken {
- return false, 0, 0
- }
- staticCount++
- }
- }
- return true, paramCount, staticCount
-}
-
-// regularMatchesPathToken tests whether the regular expression part of routeToken matches the requestToken or all remaining tokens
-// format routeToken is {someVar:someExpression}, e.g. {zipcode:[\d][\d][\d][\d][A-Z][A-Z]}
-func (c CurlyRouter) regularMatchesPathToken(routeToken string, colon int, requestToken string) (matchesToken bool, matchesRemainder bool) {
- regPart := routeToken[colon+1 : len(routeToken)-1]
- if regPart == "*" {
- if trace {
- traceLogger.Printf("wildcard parameter detected in route token %s that matches %s\n", routeToken, requestToken)
- }
- return true, true
- }
- matched, err := regexp.MatchString(regPart, requestToken)
- return (matched && err == nil), false
-}
-
-var jsr311Router = RouterJSR311{}
-
-// detectRoute selectes from a list of Route the first match by inspecting both the Accept and Content-Type
-// headers of the Request. See also RouterJSR311 in jsr311.go
-func (c CurlyRouter) detectRoute(candidateRoutes sortableCurlyRoutes, httpRequest *http.Request) (*Route, error) {
- // tracing is done inside detectRoute
- return jsr311Router.detectRoute(candidateRoutes.routes(), httpRequest)
-}
-
-// detectWebService returns the best matching webService given the list of path tokens.
-// see also computeWebserviceScore
-func (c CurlyRouter) detectWebService(requestTokens []string, webServices []*WebService) *WebService {
- var bestWs *WebService
- score := -1
- for _, eachWS := range webServices {
- matches, eachScore := c.computeWebserviceScore(requestTokens, eachWS.pathExpr.tokens)
- if matches && (eachScore > score) {
- bestWs = eachWS
- score = eachScore
- }
- }
- return bestWs
-}
-
-// computeWebserviceScore returns whether tokens match and
-// the weighted score of the longest matching consecutive tokens from the beginning.
-func (c CurlyRouter) computeWebserviceScore(requestTokens []string, routeTokens []string) (bool, int) {
- if len(routeTokens) > len(requestTokens) {
- return false, 0
- }
- score := 0
- for i := 0; i < len(routeTokens); i++ {
- eachRequestToken := requestTokens[i]
- eachRouteToken := routeTokens[i]
- if len(eachRequestToken) == 0 && len(eachRouteToken) == 0 {
- score++
- continue
- }
- if len(eachRouteToken) > 0 && strings.HasPrefix(eachRouteToken, "{") {
- // no empty match
- if len(eachRequestToken) == 0 {
- return false, score
- }
- score++
-
- if colon := strings.Index(eachRouteToken, ":"); colon != -1 {
- // match by regex
- matchesToken, _ := c.regularMatchesPathToken(eachRouteToken, colon, eachRequestToken)
- if matchesToken {
- score++ // extra score for regex match
- }
- }
- } else {
- // not a parameter
- if eachRequestToken != eachRouteToken {
- return false, score
- }
- score += (len(routeTokens) - i) * 10 //fuzzy
- }
- }
- return true, score
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly_route.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly_route.go
deleted file mode 100644
index 403dd3be..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/curly_route.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// curlyRoute exits for sorting Routes by the CurlyRouter based on number of parameters and number of static path elements.
-type curlyRoute struct {
- route Route
- paramCount int
- staticCount int
-}
-
-// sortableCurlyRoutes orders by most parameters and path elements first.
-type sortableCurlyRoutes []curlyRoute
-
-func (s *sortableCurlyRoutes) add(route curlyRoute) {
- *s = append(*s, route)
-}
-
-func (s sortableCurlyRoutes) routes() (routes []Route) {
- routes = make([]Route, 0, len(s))
- for _, each := range s {
- routes = append(routes, each.route) // TODO change return type
- }
- return routes
-}
-
-func (s sortableCurlyRoutes) Len() int {
- return len(s)
-}
-func (s sortableCurlyRoutes) Swap(i, j int) {
- s[i], s[j] = s[j], s[i]
-}
-func (s sortableCurlyRoutes) Less(i, j int) bool {
- a := s[j]
- b := s[i]
-
- // primary key
- if a.staticCount < b.staticCount {
- return true
- }
- if a.staticCount > b.staticCount {
- return false
- }
- // secundary key
- if a.paramCount < b.paramCount {
- return true
- }
- if a.paramCount > b.paramCount {
- return false
- }
- return a.route.Path < b.route.Path
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/custom_verb.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/custom_verb.go
deleted file mode 100644
index bfc17efd..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/custom_verb.go
+++ /dev/null
@@ -1,29 +0,0 @@
-package restful
-
-import (
- "fmt"
- "regexp"
-)
-
-var (
- customVerbReg = regexp.MustCompile(":([A-Za-z]+)$")
-)
-
-func hasCustomVerb(routeToken string) bool {
- return customVerbReg.MatchString(routeToken)
-}
-
-func isMatchCustomVerb(routeToken string, pathToken string) bool {
- rs := customVerbReg.FindStringSubmatch(routeToken)
- if len(rs) < 2 {
- return false
- }
-
- customVerb := rs[1]
- specificVerbReg := regexp.MustCompile(fmt.Sprintf(":%s$", customVerb))
- return specificVerbReg.MatchString(pathToken)
-}
-
-func removeCustomVerb(str string) string {
- return customVerbReg.ReplaceAllString(str, "")
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/doc.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/doc.go
deleted file mode 100644
index 69b13057..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/doc.go
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-Package restful , a lean package for creating REST-style WebServices without magic.
-
-WebServices and Routes
-
-A WebService has a collection of Route objects that dispatch incoming Http Requests to a function calls.
-Typically, a WebService has a root path (e.g. /users) and defines common MIME types for its routes.
-WebServices must be added to a container (see below) in order to handler Http requests from a server.
-
-A Route is defined by a HTTP method, an URL path and (optionally) the MIME types it consumes (Content-Type) and produces (Accept).
-This package has the logic to find the best matching Route and if found, call its Function.
-
- ws := new(restful.WebService)
- ws.
- Path("/users").
- Consumes(restful.MIME_JSON, restful.MIME_XML).
- Produces(restful.MIME_JSON, restful.MIME_XML)
-
- ws.Route(ws.GET("/{user-id}").To(u.findUser)) // u is a UserResource
-
- ...
-
- // GET http://localhost:8080/users/1
- func (u UserResource) findUser(request *restful.Request, response *restful.Response) {
- id := request.PathParameter("user-id")
- ...
- }
-
-The (*Request, *Response) arguments provide functions for reading information from the request and writing information back to the response.
-
-See the example https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go with a full implementation.
-
-Regular expression matching Routes
-
-A Route parameter can be specified using the format "uri/{var[:regexp]}" or the special version "uri/{var:*}" for matching the tail of the path.
-For example, /persons/{name:[A-Z][A-Z]} can be used to restrict values for the parameter "name" to only contain capital alphabetic characters.
-Regular expressions must use the standard Go syntax as described in the regexp package. (https://code.google.com/p/re2/wiki/Syntax)
-This feature requires the use of a CurlyRouter.
-
-Containers
-
-A Container holds a collection of WebServices, Filters and a http.ServeMux for multiplexing http requests.
-Using the statements "restful.Add(...) and restful.Filter(...)" will register WebServices and Filters to the Default Container.
-The Default container of go-restful uses the http.DefaultServeMux.
-You can create your own Container and create a new http.Server for that particular container.
-
- container := restful.NewContainer()
- server := &http.Server{Addr: ":8081", Handler: container}
-
-Filters
-
-A filter dynamically intercepts requests and responses to transform or use the information contained in the requests or responses.
-You can use filters to perform generic logging, measurement, authentication, redirect, set response headers etc.
-In the restful package there are three hooks into the request,response flow where filters can be added.
-Each filter must define a FilterFunction:
-
- func (req *restful.Request, resp *restful.Response, chain *restful.FilterChain)
-
-Use the following statement to pass the request,response pair to the next filter or RouteFunction
-
- chain.ProcessFilter(req, resp)
-
-Container Filters
-
-These are processed before any registered WebService.
-
- // install a (global) filter for the default container (processed before any webservice)
- restful.Filter(globalLogging)
-
-WebService Filters
-
-These are processed before any Route of a WebService.
-
- // install a webservice filter (processed before any route)
- ws.Filter(webserviceLogging).Filter(measureTime)
-
-
-Route Filters
-
-These are processed before calling the function associated with the Route.
-
- // install 2 chained route filters (processed before calling findUser)
- ws.Route(ws.GET("/{user-id}").Filter(routeLogging).Filter(NewCountFilter().routeCounter).To(findUser))
-
-See the example https://github.com/emicklei/go-restful/blob/v3/examples/filters/restful-filters.go with full implementations.
-
-Response Encoding
-
-Two encodings are supported: gzip and deflate. To enable this for all responses:
-
- restful.DefaultContainer.EnableContentEncoding(true)
-
-If a Http request includes the Accept-Encoding header then the response content will be compressed using the specified encoding.
-Alternatively, you can create a Filter that performs the encoding and install it per WebService or Route.
-
-See the example https://github.com/emicklei/go-restful/blob/v3/examples/encoding/restful-encoding-filter.go
-
-OPTIONS support
-
-By installing a pre-defined container filter, your Webservice(s) can respond to the OPTIONS Http request.
-
- Filter(OPTIONSFilter())
-
-CORS
-
-By installing the filter of a CrossOriginResourceSharing (CORS), your WebService(s) can handle CORS requests.
-
- cors := CrossOriginResourceSharing{ExposeHeaders: []string{"X-My-Header"}, CookiesAllowed: false, Container: DefaultContainer}
- Filter(cors.Filter)
-
-Error Handling
-
-Unexpected things happen. If a request cannot be processed because of a failure, your service needs to tell via the response what happened and why.
-For this reason HTTP status codes exist and it is important to use the correct code in every exceptional situation.
-
- 400: Bad Request
-
-If path or query parameters are not valid (content or type) then use http.StatusBadRequest.
-
- 404: Not Found
-
-Despite a valid URI, the resource requested may not be available
-
- 500: Internal Server Error
-
-If the application logic could not process the request (or write the response) then use http.StatusInternalServerError.
-
- 405: Method Not Allowed
-
-The request has a valid URL but the method (GET,PUT,POST,...) is not allowed.
-
- 406: Not Acceptable
-
-The request does not have or has an unknown Accept Header set for this operation.
-
- 415: Unsupported Media Type
-
-The request does not have or has an unknown Content-Type Header set for this operation.
-
-ServiceError
-
-In addition to setting the correct (error) Http status code, you can choose to write a ServiceError message on the response.
-
-Performance options
-
-This package has several options that affect the performance of your service. It is important to understand them and how you can change it.
-
- restful.DefaultContainer.DoNotRecover(false)
-
-DoNotRecover controls whether panics will be caught to return HTTP 500.
-If set to false, the container will recover from panics.
-Default value is true
-
- restful.SetCompressorProvider(NewBoundedCachedCompressors(20, 20))
-
-If content encoding is enabled then the default strategy for getting new gzip/zlib writers and readers is to use a sync.Pool.
-Because writers are expensive structures, performance is even more improved when using a preloaded cache. You can also inject your own implementation.
-
-Trouble shooting
-
-This package has the means to produce detail logging of the complete Http request matching process and filter invocation.
-Enabling this feature requires you to set an implementation of restful.StdLogger (e.g. log.Logger) instance such as:
-
- restful.TraceLogger(log.New(os.Stdout, "[restful] ", log.LstdFlags|log.Lshortfile))
-
-Logging
-
-The restful.SetLogger() method allows you to override the logger used by the package. By default restful
-uses the standard library `log` package and logs to stdout. Different logging packages are supported as
-long as they conform to `StdLogger` interface defined in the `log` sub-package, writing an adapter for your
-preferred package is simple.
-
-Resources
-
-[project]: https://github.com/emicklei/go-restful
-
-[examples]: https://github.com/emicklei/go-restful/blob/master/examples
-
-[design]: http://ernestmicklei.com/2012/11/11/go-restful-api-design/
-
-[showcases]: https://github.com/emicklei/mora, https://github.com/emicklei/landskape
-
-(c) 2012-2015, http://ernestmicklei.com. MIT License
-*/
-package restful
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/entity_accessors.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/entity_accessors.go
deleted file mode 100644
index 9808752a..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/entity_accessors.go
+++ /dev/null
@@ -1,169 +0,0 @@
-package restful
-
-// Copyright 2015 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "encoding/json"
- "encoding/xml"
- "strings"
- "sync"
-)
-
-var (
- MarshalIndent = json.MarshalIndent
- NewDecoder = json.NewDecoder
- NewEncoder = json.NewEncoder
-)
-
-// EntityReaderWriter can read and write values using an encoding such as JSON,XML.
-type EntityReaderWriter interface {
- // Read a serialized version of the value from the request.
- // The Request may have a decompressing reader. Depends on Content-Encoding.
- Read(req *Request, v interface{}) error
-
- // Write a serialized version of the value on the response.
- // The Response may have a compressing writer. Depends on Accept-Encoding.
- // status should be a valid Http Status code
- Write(resp *Response, status int, v interface{}) error
-}
-
-// entityAccessRegistry is a singleton
-var entityAccessRegistry = &entityReaderWriters{
- protection: new(sync.RWMutex),
- accessors: map[string]EntityReaderWriter{},
-}
-
-// entityReaderWriters associates MIME to an EntityReaderWriter
-type entityReaderWriters struct {
- protection *sync.RWMutex
- accessors map[string]EntityReaderWriter
-}
-
-func init() {
- RegisterEntityAccessor(MIME_JSON, NewEntityAccessorJSON(MIME_JSON))
- RegisterEntityAccessor(MIME_XML, NewEntityAccessorXML(MIME_XML))
-}
-
-// RegisterEntityAccessor add/overrides the ReaderWriter for encoding content with this MIME type.
-func RegisterEntityAccessor(mime string, erw EntityReaderWriter) {
- entityAccessRegistry.protection.Lock()
- defer entityAccessRegistry.protection.Unlock()
- entityAccessRegistry.accessors[mime] = erw
-}
-
-// NewEntityAccessorJSON returns a new EntityReaderWriter for accessing JSON content.
-// This package is already initialized with such an accessor using the MIME_JSON contentType.
-func NewEntityAccessorJSON(contentType string) EntityReaderWriter {
- return entityJSONAccess{ContentType: contentType}
-}
-
-// NewEntityAccessorXML returns a new EntityReaderWriter for accessing XML content.
-// This package is already initialized with such an accessor using the MIME_XML contentType.
-func NewEntityAccessorXML(contentType string) EntityReaderWriter {
- return entityXMLAccess{ContentType: contentType}
-}
-
-// accessorAt returns the registered ReaderWriter for this MIME type.
-func (r *entityReaderWriters) accessorAt(mime string) (EntityReaderWriter, bool) {
- r.protection.RLock()
- defer r.protection.RUnlock()
- er, ok := r.accessors[mime]
- if !ok {
- // retry with reverse lookup
- // more expensive but we are in an exceptional situation anyway
- for k, v := range r.accessors {
- if strings.Contains(mime, k) {
- return v, true
- }
- }
- }
- return er, ok
-}
-
-// entityXMLAccess is a EntityReaderWriter for XML encoding
-type entityXMLAccess struct {
- // This is used for setting the Content-Type header when writing
- ContentType string
-}
-
-// Read unmarshalls the value from XML
-func (e entityXMLAccess) Read(req *Request, v interface{}) error {
- return xml.NewDecoder(req.Request.Body).Decode(v)
-}
-
-// Write marshalls the value to JSON and set the Content-Type Header.
-func (e entityXMLAccess) Write(resp *Response, status int, v interface{}) error {
- return writeXML(resp, status, e.ContentType, v)
-}
-
-// writeXML marshalls the value to JSON and set the Content-Type Header.
-func writeXML(resp *Response, status int, contentType string, v interface{}) error {
- if v == nil {
- resp.WriteHeader(status)
- // do not write a nil representation
- return nil
- }
- if resp.prettyPrint {
- // pretty output must be created and written explicitly
- output, err := xml.MarshalIndent(v, " ", " ")
- if err != nil {
- return err
- }
- resp.Header().Set(HEADER_ContentType, contentType)
- resp.WriteHeader(status)
- _, err = resp.Write([]byte(xml.Header))
- if err != nil {
- return err
- }
- _, err = resp.Write(output)
- return err
- }
- // not-so-pretty
- resp.Header().Set(HEADER_ContentType, contentType)
- resp.WriteHeader(status)
- return xml.NewEncoder(resp).Encode(v)
-}
-
-// entityJSONAccess is a EntityReaderWriter for JSON encoding
-type entityJSONAccess struct {
- // This is used for setting the Content-Type header when writing
- ContentType string
-}
-
-// Read unmarshalls the value from JSON
-func (e entityJSONAccess) Read(req *Request, v interface{}) error {
- decoder := NewDecoder(req.Request.Body)
- decoder.UseNumber()
- return decoder.Decode(v)
-}
-
-// Write marshalls the value to JSON and set the Content-Type Header.
-func (e entityJSONAccess) Write(resp *Response, status int, v interface{}) error {
- return writeJSON(resp, status, e.ContentType, v)
-}
-
-// write marshalls the value to JSON and set the Content-Type Header.
-func writeJSON(resp *Response, status int, contentType string, v interface{}) error {
- if v == nil {
- resp.WriteHeader(status)
- // do not write a nil representation
- return nil
- }
- if resp.prettyPrint {
- // pretty output must be created and written explicitly
- output, err := MarshalIndent(v, "", " ")
- if err != nil {
- return err
- }
- resp.Header().Set(HEADER_ContentType, contentType)
- resp.WriteHeader(status)
- _, err = resp.Write(output)
- return err
- }
- // not-so-pretty
- resp.Header().Set(HEADER_ContentType, contentType)
- resp.WriteHeader(status)
- return NewEncoder(resp).Encode(v)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/extensions.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/extensions.go
deleted file mode 100644
index 5023fa04..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/extensions.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package restful
-
-// Copyright 2021 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// ExtensionProperties provides storage of vendor extensions for entities
-type ExtensionProperties struct {
- // Extensions vendor extensions used to describe extra functionality
- // (https://swagger.io/docs/specification/2-0/swagger-extensions/)
- Extensions map[string]interface{}
-}
-
-// AddExtension adds or updates a key=value pair to the extension map.
-func (ep *ExtensionProperties) AddExtension(key string, value interface{}) {
- if ep.Extensions == nil {
- ep.Extensions = map[string]interface{}{key: value}
- } else {
- ep.Extensions[key] = value
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter.go
deleted file mode 100644
index fd88c536..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter.go
+++ /dev/null
@@ -1,37 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// FilterChain is a request scoped object to process one or more filters before calling the target RouteFunction.
-type FilterChain struct {
- Filters []FilterFunction // ordered list of FilterFunction
- Index int // index into filters that is currently in progress
- Target RouteFunction // function to call after passing all filters
- ParameterDocs []*Parameter // the parameter docs for the route
- Operation string // the name of the operation
-}
-
-// ProcessFilter passes the request,response pair through the next of Filters.
-// Each filter can decide to proceed to the next Filter or handle the Response itself.
-func (f *FilterChain) ProcessFilter(request *Request, response *Response) {
- if f.Index < len(f.Filters) {
- f.Index++
- f.Filters[f.Index-1](request, response, f)
- } else {
- f.Target(request, response)
- }
-}
-
-// FilterFunction definitions must call ProcessFilter on the FilterChain to pass on the control and eventually call the RouteFunction
-type FilterFunction func(*Request, *Response, *FilterChain)
-
-// NoBrowserCacheFilter is a filter function to set HTTP headers that disable browser caching
-// See examples/restful-no-cache-filter.go for usage
-func NoBrowserCacheFilter(req *Request, resp *Response, chain *FilterChain) {
- resp.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") // HTTP 1.1.
- resp.Header().Set("Pragma", "no-cache") // HTTP 1.0.
- resp.Header().Set("Expires", "0") // Proxies.
- chain.ProcessFilter(req, resp)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter_adapter.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter_adapter.go
deleted file mode 100644
index c246512f..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/filter_adapter.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package restful
-
-import (
- "net/http"
-)
-
-// HttpMiddlewareHandler is a function that takes a http.Handler and returns a http.Handler
-type HttpMiddlewareHandler func(http.Handler) http.Handler
-
-// HttpMiddlewareHandlerToFilter converts a HttpMiddlewareHandler to a FilterFunction.
-func HttpMiddlewareHandlerToFilter(middleware HttpMiddlewareHandler) FilterFunction {
- return func(req *Request, resp *Response, chain *FilterChain) {
- next := http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
- req.Request = r
- resp.ResponseWriter = rw
- chain.ProcessFilter(req, resp)
- })
-
- middleware(next).ServeHTTP(resp.ResponseWriter, req.Request)
- }
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/jsr311.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/jsr311.go
deleted file mode 100644
index a9b3faaa..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/jsr311.go
+++ /dev/null
@@ -1,326 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "errors"
- "fmt"
- "net/http"
- "sort"
- "strings"
-)
-
-// RouterJSR311 implements the flow for matching Requests to Routes (and consequently Resource Functions)
-// as specified by the JSR311 http://jsr311.java.net/nonav/releases/1.1/spec/spec.html.
-// RouterJSR311 implements the Router interface.
-// Concept of locators is not implemented.
-type RouterJSR311 struct{}
-
-// SelectRoute is part of the Router interface and returns the best match
-// for the WebService and its Route for the given Request.
-func (r RouterJSR311) SelectRoute(
- webServices []*WebService,
- httpRequest *http.Request) (selectedService *WebService, selectedRoute *Route, err error) {
-
- // Identify the root resource class (WebService)
- dispatcher, finalMatch, err := r.detectDispatcher(httpRequest.URL.Path, webServices)
- if err != nil {
- return nil, nil, NewError(http.StatusNotFound, "")
- }
- // Obtain the set of candidate methods (Routes)
- routes := r.selectRoutes(dispatcher, finalMatch)
- if len(routes) == 0 {
- return dispatcher, nil, NewError(http.StatusNotFound, "404: Page Not Found")
- }
-
- // Identify the method (Route) that will handle the request
- route, ok := r.detectRoute(routes, httpRequest)
- return dispatcher, route, ok
-}
-
-// ExtractParameters is used to obtain the path parameters from the route using the same matching
-// engine as the JSR 311 router.
-func (r RouterJSR311) ExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string {
- webServiceExpr := webService.pathExpr
- webServiceMatches := webServiceExpr.Matcher.FindStringSubmatch(urlPath)
- pathParameters := r.extractParams(webServiceExpr, webServiceMatches)
- routeExpr := route.pathExpr
- routeMatches := routeExpr.Matcher.FindStringSubmatch(webServiceMatches[len(webServiceMatches)-1])
- routeParams := r.extractParams(routeExpr, routeMatches)
- for key, value := range routeParams {
- pathParameters[key] = value
- }
- return pathParameters
-}
-
-func (RouterJSR311) extractParams(pathExpr *pathExpression, matches []string) map[string]string {
- params := map[string]string{}
- for i := 1; i < len(matches); i++ {
- if len(pathExpr.VarNames) >= i {
- params[pathExpr.VarNames[i-1]] = matches[i]
- }
- }
- return params
-}
-
-// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2
-func (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Request) (*Route, error) {
- candidates := make([]*Route, 0, 8)
- for i, each := range routes {
- ok := true
- for _, fn := range each.If {
- if !fn(httpRequest) {
- ok = false
- break
- }
- }
- if ok {
- candidates = append(candidates, &routes[i])
- }
- }
- if len(candidates) == 0 {
- if trace {
- traceLogger.Printf("no Route found (from %d) that passes conditional checks", len(routes))
- }
- return nil, NewError(http.StatusNotFound, "404: Not Found")
- }
-
- // http method
- previous := candidates
- candidates = candidates[:0]
- for _, each := range previous {
- if httpRequest.Method == each.Method {
- candidates = append(candidates, each)
- }
- }
- if len(candidates) == 0 {
- if trace {
- traceLogger.Printf("no Route found (in %d routes) that matches HTTP method %s\n", len(previous), httpRequest.Method)
- }
- allowed := []string{}
- allowedLoop:
- for _, candidate := range previous {
- for _, method := range allowed {
- if method == candidate.Method {
- continue allowedLoop
- }
- }
- allowed = append(allowed, candidate.Method)
- }
- header := http.Header{"Allow": []string{strings.Join(allowed, ", ")}}
- return nil, NewErrorWithHeader(http.StatusMethodNotAllowed, "405: Method Not Allowed", header)
- }
-
- // content-type
- contentType := httpRequest.Header.Get(HEADER_ContentType)
- previous = candidates
- candidates = candidates[:0]
- for _, each := range previous {
- if each.matchesContentType(contentType) {
- candidates = append(candidates, each)
- }
- }
- if len(candidates) == 0 {
- if trace {
- traceLogger.Printf("no Route found (from %d) that matches HTTP Content-Type: %s\n", len(previous), contentType)
- }
- if httpRequest.ContentLength > 0 {
- return nil, NewError(http.StatusUnsupportedMediaType, "415: Unsupported Media Type")
- }
- }
-
- // accept
- previous = candidates
- candidates = candidates[:0]
- accept := httpRequest.Header.Get(HEADER_Accept)
- if len(accept) == 0 {
- accept = "*/*"
- }
- for _, each := range previous {
- if each.matchesAccept(accept) {
- candidates = append(candidates, each)
- }
- }
- if len(candidates) == 0 {
- if trace {
- traceLogger.Printf("no Route found (from %d) that matches HTTP Accept: %s\n", len(previous), accept)
- }
- available := []string{}
- for _, candidate := range previous {
- available = append(available, candidate.Produces...)
- }
- // if POST,PUT,PATCH without body
- method, length := httpRequest.Method, httpRequest.Header.Get("Content-Length")
- if (method == http.MethodPost ||
- method == http.MethodPut ||
- method == http.MethodPatch) && (length == "" || length == "0") {
- return nil, NewError(
- http.StatusUnsupportedMediaType,
- fmt.Sprintf("415: Unsupported Media Type\n\nAvailable representations: %s", strings.Join(available, ", ")),
- )
- }
- return nil, NewError(
- http.StatusNotAcceptable,
- fmt.Sprintf("406: Not Acceptable\n\nAvailable representations: %s", strings.Join(available, ", ")),
- )
- }
- // return r.bestMatchByMedia(outputMediaOk, contentType, accept), nil
- return candidates[0], nil
-}
-
-// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2
-// n/m > n/* > */*
-func (r RouterJSR311) bestMatchByMedia(routes []Route, contentType string, accept string) *Route {
- // TODO
- return &routes[0]
-}
-
-// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2 (step 2)
-func (r RouterJSR311) selectRoutes(dispatcher *WebService, pathRemainder string) []Route {
- filtered := &sortableRouteCandidates{}
- for _, each := range dispatcher.Routes() {
- pathExpr := each.pathExpr
- matches := pathExpr.Matcher.FindStringSubmatch(pathRemainder)
- if matches != nil {
- lastMatch := matches[len(matches)-1]
- if len(lastMatch) == 0 || lastMatch == "/" { // do not include if value is neither empty nor ‘/’.
- filtered.candidates = append(filtered.candidates,
- routeCandidate{each, len(matches) - 1, pathExpr.LiteralCount, pathExpr.VarCount})
- }
- }
- }
- if len(filtered.candidates) == 0 {
- if trace {
- traceLogger.Printf("WebService on path %s has no routes that match URL path remainder:%s\n", dispatcher.rootPath, pathRemainder)
- }
- return []Route{}
- }
- sort.Sort(sort.Reverse(filtered))
-
- // select other routes from candidates whoes expression matches rmatch
- matchingRoutes := []Route{filtered.candidates[0].route}
- for c := 1; c < len(filtered.candidates); c++ {
- each := filtered.candidates[c]
- if each.route.pathExpr.Matcher.MatchString(pathRemainder) {
- matchingRoutes = append(matchingRoutes, each.route)
- }
- }
- return matchingRoutes
-}
-
-// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2 (step 1)
-func (r RouterJSR311) detectDispatcher(requestPath string, dispatchers []*WebService) (*WebService, string, error) {
- filtered := &sortableDispatcherCandidates{}
- for _, each := range dispatchers {
- matches := each.pathExpr.Matcher.FindStringSubmatch(requestPath)
- if matches != nil {
- filtered.candidates = append(filtered.candidates,
- dispatcherCandidate{each, matches[len(matches)-1], len(matches), each.pathExpr.LiteralCount, each.pathExpr.VarCount})
- }
- }
- if len(filtered.candidates) == 0 {
- if trace {
- traceLogger.Printf("no WebService was found to match URL path:%s\n", requestPath)
- }
- return nil, "", errors.New("not found")
- }
- sort.Sort(sort.Reverse(filtered))
- return filtered.candidates[0].dispatcher, filtered.candidates[0].finalMatch, nil
-}
-
-// Types and functions to support the sorting of Routes
-
-type routeCandidate struct {
- route Route
- matchesCount int // the number of capturing groups
- literalCount int // the number of literal characters (means those not resulting from template variable substitution)
- nonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^ /]+?)’)
-}
-
-func (r routeCandidate) expressionToMatch() string {
- return r.route.pathExpr.Source
-}
-
-func (r routeCandidate) String() string {
- return fmt.Sprintf("(m=%d,l=%d,n=%d)", r.matchesCount, r.literalCount, r.nonDefaultCount)
-}
-
-type sortableRouteCandidates struct {
- candidates []routeCandidate
-}
-
-func (rcs *sortableRouteCandidates) Len() int {
- return len(rcs.candidates)
-}
-func (rcs *sortableRouteCandidates) Swap(i, j int) {
- rcs.candidates[i], rcs.candidates[j] = rcs.candidates[j], rcs.candidates[i]
-}
-func (rcs *sortableRouteCandidates) Less(i, j int) bool {
- ci := rcs.candidates[i]
- cj := rcs.candidates[j]
- // primary key
- if ci.literalCount < cj.literalCount {
- return true
- }
- if ci.literalCount > cj.literalCount {
- return false
- }
- // secundary key
- if ci.matchesCount < cj.matchesCount {
- return true
- }
- if ci.matchesCount > cj.matchesCount {
- return false
- }
- // tertiary key
- if ci.nonDefaultCount < cj.nonDefaultCount {
- return true
- }
- if ci.nonDefaultCount > cj.nonDefaultCount {
- return false
- }
- // quaternary key ("source" is interpreted as Path)
- return ci.route.Path < cj.route.Path
-}
-
-// Types and functions to support the sorting of Dispatchers
-
-type dispatcherCandidate struct {
- dispatcher *WebService
- finalMatch string
- matchesCount int // the number of capturing groups
- literalCount int // the number of literal characters (means those not resulting from template variable substitution)
- nonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^ /]+?)’)
-}
-type sortableDispatcherCandidates struct {
- candidates []dispatcherCandidate
-}
-
-func (dc *sortableDispatcherCandidates) Len() int {
- return len(dc.candidates)
-}
-func (dc *sortableDispatcherCandidates) Swap(i, j int) {
- dc.candidates[i], dc.candidates[j] = dc.candidates[j], dc.candidates[i]
-}
-func (dc *sortableDispatcherCandidates) Less(i, j int) bool {
- ci := dc.candidates[i]
- cj := dc.candidates[j]
- // primary key
- if ci.matchesCount < cj.matchesCount {
- return true
- }
- if ci.matchesCount > cj.matchesCount {
- return false
- }
- // secundary key
- if ci.literalCount < cj.literalCount {
- return true
- }
- if ci.literalCount > cj.literalCount {
- return false
- }
- // tertiary key
- return ci.nonDefaultCount < cj.nonDefaultCount
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/log/log.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/log/log.go
deleted file mode 100644
index 6cd44c7a..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/log/log.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package log
-
-import (
- stdlog "log"
- "os"
-)
-
-// StdLogger corresponds to a minimal subset of the interface satisfied by stdlib log.Logger
-type StdLogger interface {
- Print(v ...interface{})
- Printf(format string, v ...interface{})
-}
-
-var Logger StdLogger
-
-func init() {
- // default Logger
- SetLogger(stdlog.New(os.Stderr, "[restful] ", stdlog.LstdFlags|stdlog.Lshortfile))
-}
-
-// SetLogger sets the logger for this package
-func SetLogger(customLogger StdLogger) {
- Logger = customLogger
-}
-
-// Print delegates to the Logger
-func Print(v ...interface{}) {
- Logger.Print(v...)
-}
-
-// Printf delegates to the Logger
-func Printf(format string, v ...interface{}) {
- Logger.Printf(format, v...)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/logger.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/logger.go
deleted file mode 100644
index 29202726..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/logger.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package restful
-
-// Copyright 2014 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-import (
- "github.com/emicklei/go-restful/v3/log"
-)
-
-var trace bool = false
-var traceLogger log.StdLogger
-
-func init() {
- traceLogger = log.Logger // use the package logger by default
-}
-
-// TraceLogger enables detailed logging of Http request matching and filter invocation. Default no logger is set.
-// You may call EnableTracing() directly to enable trace logging to the package-wide logger.
-func TraceLogger(logger log.StdLogger) {
- traceLogger = logger
- EnableTracing(logger != nil)
-}
-
-// SetLogger exposes the setter for the global logger on the top-level package
-func SetLogger(customLogger log.StdLogger) {
- log.SetLogger(customLogger)
-}
-
-// EnableTracing can be used to Trace logging on and off.
-func EnableTracing(enabled bool) {
- trace = enabled
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/mime.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/mime.go
deleted file mode 100644
index 33014471..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/mime.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package restful
-
-import (
- "strconv"
- "strings"
-)
-
-type mime struct {
- media string
- quality float64
-}
-
-// insertMime adds a mime to a list and keeps it sorted by quality.
-func insertMime(l []mime, e mime) []mime {
- for i, each := range l {
- // if current mime has lower quality then insert before
- if e.quality > each.quality {
- left := append([]mime{}, l[0:i]...)
- return append(append(left, e), l[i:]...)
- }
- }
- return append(l, e)
-}
-
-const qFactorWeightingKey = "q"
-
-// sortedMimes returns a list of mime sorted (desc) by its specified quality.
-// e.g. text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
-func sortedMimes(accept string) (sorted []mime) {
- for _, each := range strings.Split(accept, ",") {
- typeAndQuality := strings.Split(strings.Trim(each, " "), ";")
- if len(typeAndQuality) == 1 {
- sorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})
- } else {
- // take factor
- qAndWeight := strings.Split(typeAndQuality[1], "=")
- if len(qAndWeight) == 2 && strings.Trim(qAndWeight[0], " ") == qFactorWeightingKey {
- f, err := strconv.ParseFloat(qAndWeight[1], 64)
- if err != nil {
- traceLogger.Printf("unable to parse quality in %s, %v", each, err)
- } else {
- sorted = insertMime(sorted, mime{typeAndQuality[0], f})
- }
- } else {
- sorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})
- }
- }
- }
- return
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/options_filter.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/options_filter.go
deleted file mode 100644
index 5c1b3425..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/options_filter.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package restful
-
-import "strings"
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method
-// and provides the response with a set of allowed methods for the request URL Path.
-// As for any filter, you can also install it for a particular WebService within a Container.
-// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).
-func (c *Container) OPTIONSFilter(req *Request, resp *Response, chain *FilterChain) {
- if "OPTIONS" != req.Request.Method {
- chain.ProcessFilter(req, resp)
- return
- }
-
- archs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)
- methods := strings.Join(c.computeAllowedMethods(req), ",")
- origin := req.Request.Header.Get(HEADER_Origin)
-
- resp.AddHeader(HEADER_Allow, methods)
- resp.AddHeader(HEADER_AccessControlAllowOrigin, origin)
- resp.AddHeader(HEADER_AccessControlAllowHeaders, archs)
- resp.AddHeader(HEADER_AccessControlAllowMethods, methods)
-}
-
-// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method
-// and provides the response with a set of allowed methods for the request URL Path.
-// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).
-func OPTIONSFilter() FilterFunction {
- return DefaultContainer.OPTIONSFilter
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/parameter.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/parameter.go
deleted file mode 100644
index 0b851bb4..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/parameter.go
+++ /dev/null
@@ -1,242 +0,0 @@
-package restful
-
-import "sort"
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-const (
- // PathParameterKind = indicator of Request parameter type "path"
- PathParameterKind = iota
-
- // QueryParameterKind = indicator of Request parameter type "query"
- QueryParameterKind
-
- // BodyParameterKind = indicator of Request parameter type "body"
- BodyParameterKind
-
- // HeaderParameterKind = indicator of Request parameter type "header"
- HeaderParameterKind
-
- // FormParameterKind = indicator of Request parameter type "form"
- FormParameterKind
-
- // MultiPartFormParameterKind = indicator of Request parameter type "multipart/form-data"
- MultiPartFormParameterKind
-
- // CollectionFormatCSV comma separated values `foo,bar`
- CollectionFormatCSV = CollectionFormat("csv")
-
- // CollectionFormatSSV space separated values `foo bar`
- CollectionFormatSSV = CollectionFormat("ssv")
-
- // CollectionFormatTSV tab separated values `foo\tbar`
- CollectionFormatTSV = CollectionFormat("tsv")
-
- // CollectionFormatPipes pipe separated values `foo|bar`
- CollectionFormatPipes = CollectionFormat("pipes")
-
- // CollectionFormatMulti corresponds to multiple parameter instances instead of multiple values for a single
- // instance `foo=bar&foo=baz`. This is valid only for QueryParameters and FormParameters
- CollectionFormatMulti = CollectionFormat("multi")
-)
-
-type CollectionFormat string
-
-func (cf CollectionFormat) String() string {
- return string(cf)
-}
-
-// Parameter is for documententing the parameter used in a Http Request
-// ParameterData kinds are Path,Query and Body
-type Parameter struct {
- data *ParameterData
-}
-
-// ParameterData represents the state of a Parameter.
-// It is made public to make it accessible to e.g. the Swagger package.
-type ParameterData struct {
- ExtensionProperties
- Name, Description, DataType, DataFormat string
- Kind int
- Required bool
- // AllowableValues is deprecated. Use PossibleValues instead
- AllowableValues map[string]string
- PossibleValues []string
- AllowMultiple bool
- AllowEmptyValue bool
- DefaultValue string
- CollectionFormat string
- Pattern string
- Minimum *float64
- Maximum *float64
- MinLength *int64
- MaxLength *int64
- MinItems *int64
- MaxItems *int64
- UniqueItems bool
-}
-
-// Data returns the state of the Parameter
-func (p *Parameter) Data() ParameterData {
- return *p.data
-}
-
-// Kind returns the parameter type indicator (see const for valid values)
-func (p *Parameter) Kind() int {
- return p.data.Kind
-}
-
-func (p *Parameter) bePath() *Parameter {
- p.data.Kind = PathParameterKind
- return p
-}
-func (p *Parameter) beQuery() *Parameter {
- p.data.Kind = QueryParameterKind
- return p
-}
-func (p *Parameter) beBody() *Parameter {
- p.data.Kind = BodyParameterKind
- return p
-}
-
-func (p *Parameter) beHeader() *Parameter {
- p.data.Kind = HeaderParameterKind
- return p
-}
-
-func (p *Parameter) beForm() *Parameter {
- p.data.Kind = FormParameterKind
- return p
-}
-
-func (p *Parameter) beMultiPartForm() *Parameter {
- p.data.Kind = MultiPartFormParameterKind
- return p
-}
-
-// Required sets the required field and returns the receiver
-func (p *Parameter) Required(required bool) *Parameter {
- p.data.Required = required
- return p
-}
-
-// AllowMultiple sets the allowMultiple field and returns the receiver
-func (p *Parameter) AllowMultiple(multiple bool) *Parameter {
- p.data.AllowMultiple = multiple
- return p
-}
-
-// AddExtension adds or updates a key=value pair to the extension map
-func (p *Parameter) AddExtension(key string, value interface{}) *Parameter {
- p.data.AddExtension(key, value)
- return p
-}
-
-// AllowEmptyValue sets the AllowEmptyValue field and returns the receiver
-func (p *Parameter) AllowEmptyValue(multiple bool) *Parameter {
- p.data.AllowEmptyValue = multiple
- return p
-}
-
-// AllowableValues is deprecated. Use PossibleValues instead. Both will be set.
-func (p *Parameter) AllowableValues(values map[string]string) *Parameter {
- p.data.AllowableValues = values
-
- allowableSortedKeys := make([]string, 0, len(values))
- for k := range values {
- allowableSortedKeys = append(allowableSortedKeys, k)
- }
- sort.Strings(allowableSortedKeys)
-
- p.data.PossibleValues = make([]string, 0, len(values))
- for _, k := range allowableSortedKeys {
- p.data.PossibleValues = append(p.data.PossibleValues, values[k])
- }
- return p
-}
-
-// PossibleValues sets the possible values field and returns the receiver
-func (p *Parameter) PossibleValues(values []string) *Parameter {
- p.data.PossibleValues = values
- return p
-}
-
-// DataType sets the dataType field and returns the receiver
-func (p *Parameter) DataType(typeName string) *Parameter {
- p.data.DataType = typeName
- return p
-}
-
-// DataFormat sets the dataFormat field for Swagger UI
-func (p *Parameter) DataFormat(formatName string) *Parameter {
- p.data.DataFormat = formatName
- return p
-}
-
-// DefaultValue sets the default value field and returns the receiver
-func (p *Parameter) DefaultValue(stringRepresentation string) *Parameter {
- p.data.DefaultValue = stringRepresentation
- return p
-}
-
-// Description sets the description value field and returns the receiver
-func (p *Parameter) Description(doc string) *Parameter {
- p.data.Description = doc
- return p
-}
-
-// CollectionFormat sets the collection format for an array type
-func (p *Parameter) CollectionFormat(format CollectionFormat) *Parameter {
- p.data.CollectionFormat = format.String()
- return p
-}
-
-// Pattern sets the pattern field and returns the receiver
-func (p *Parameter) Pattern(pattern string) *Parameter {
- p.data.Pattern = pattern
- return p
-}
-
-// Minimum sets the minimum field and returns the receiver
-func (p *Parameter) Minimum(minimum float64) *Parameter {
- p.data.Minimum = &minimum
- return p
-}
-
-// Maximum sets the maximum field and returns the receiver
-func (p *Parameter) Maximum(maximum float64) *Parameter {
- p.data.Maximum = &maximum
- return p
-}
-
-// MinLength sets the minLength field and returns the receiver
-func (p *Parameter) MinLength(minLength int64) *Parameter {
- p.data.MinLength = &minLength
- return p
-}
-
-// MaxLength sets the maxLength field and returns the receiver
-func (p *Parameter) MaxLength(maxLength int64) *Parameter {
- p.data.MaxLength = &maxLength
- return p
-}
-
-// MinItems sets the minItems field and returns the receiver
-func (p *Parameter) MinItems(minItems int64) *Parameter {
- p.data.MinItems = &minItems
- return p
-}
-
-// MaxItems sets the maxItems field and returns the receiver
-func (p *Parameter) MaxItems(maxItems int64) *Parameter {
- p.data.MaxItems = &maxItems
- return p
-}
-
-// UniqueItems sets the uniqueItems field and returns the receiver
-func (p *Parameter) UniqueItems(uniqueItems bool) *Parameter {
- p.data.UniqueItems = uniqueItems
- return p
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_expression.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_expression.go
deleted file mode 100644
index 95a9a254..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_expression.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "bytes"
- "fmt"
- "regexp"
- "strings"
-)
-
-// PathExpression holds a compiled path expression (RegExp) needed to match against
-// Http request paths and to extract path parameter values.
-type pathExpression struct {
- LiteralCount int // the number of literal characters (means those not resulting from template variable substitution)
- VarNames []string // the names of parameters (enclosed by {}) in the path
- VarCount int // the number of named parameters (enclosed by {}) in the path
- Matcher *regexp.Regexp
- Source string // Path as defined by the RouteBuilder
- tokens []string
-}
-
-// NewPathExpression creates a PathExpression from the input URL path.
-// Returns an error if the path is invalid.
-func newPathExpression(path string) (*pathExpression, error) {
- expression, literalCount, varNames, varCount, tokens := templateToRegularExpression(path)
- compiled, err := regexp.Compile(expression)
- if err != nil {
- return nil, err
- }
- return &pathExpression{literalCount, varNames, varCount, compiled, expression, tokens}, nil
-}
-
-// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-370003.7.3
-func templateToRegularExpression(template string) (expression string, literalCount int, varNames []string, varCount int, tokens []string) {
- var buffer bytes.Buffer
- buffer.WriteString("^")
- //tokens = strings.Split(template, "/")
- tokens = tokenizePath(template)
- for _, each := range tokens {
- if each == "" {
- continue
- }
- buffer.WriteString("/")
- if strings.HasPrefix(each, "{") {
- // check for regular expression in variable
- colon := strings.Index(each, ":")
- var varName string
- if colon != -1 {
- // extract expression
- varName = strings.TrimSpace(each[1:colon])
- paramExpr := strings.TrimSpace(each[colon+1 : len(each)-1])
- if paramExpr == "*" { // special case
- buffer.WriteString("(.*)")
- } else {
- buffer.WriteString(fmt.Sprintf("(%s)", paramExpr)) // between colon and closing moustache
- }
- } else {
- // plain var
- varName = strings.TrimSpace(each[1 : len(each)-1])
- buffer.WriteString("([^/]+?)")
- }
- varNames = append(varNames, varName)
- varCount += 1
- } else {
- literalCount += len(each)
- encoded := each // TODO URI encode
- buffer.WriteString(regexp.QuoteMeta(encoded))
- }
- }
- return strings.TrimRight(buffer.String(), "/") + "(/.*)?$", literalCount, varNames, varCount, tokens
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_processor.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_processor.go
deleted file mode 100644
index 14157324..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/path_processor.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package restful
-
-import (
- "bytes"
- "strings"
-)
-
-// Copyright 2018 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// PathProcessor is extra behaviour that a Router can provide to extract path parameters from the path.
-// If a Router does not implement this interface then the default behaviour will be used.
-type PathProcessor interface {
- // ExtractParameters gets the path parameters defined in the route and webService from the urlPath
- ExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string
-}
-
-type defaultPathProcessor struct{}
-
-// Extract the parameters from the request url path
-func (d defaultPathProcessor) ExtractParameters(r *Route, _ *WebService, urlPath string) map[string]string {
- urlParts := tokenizePath(urlPath)
- pathParameters := map[string]string{}
- for i, key := range r.pathParts {
- var value string
- if i >= len(urlParts) {
- value = ""
- } else {
- value = urlParts[i]
- }
- if r.hasCustomVerb && hasCustomVerb(key) {
- key = removeCustomVerb(key)
- value = removeCustomVerb(value)
- }
-
- if strings.Index(key, "{") > -1 { // path-parameter
- if colon := strings.Index(key, ":"); colon != -1 {
- // extract by regex
- regPart := key[colon+1 : len(key)-1]
- keyPart := key[1:colon]
- if regPart == "*" {
- pathParameters[keyPart] = untokenizePath(i, urlParts)
- break
- } else {
- pathParameters[keyPart] = value
- }
- } else {
- // without enclosing {}
- startIndex := strings.Index(key, "{")
- endKeyIndex := strings.Index(key, "}")
-
- suffixLength := len(key) - endKeyIndex - 1
- endValueIndex := len(value) - suffixLength
-
- pathParameters[key[startIndex+1:endKeyIndex]] = value[startIndex:endValueIndex]
- }
- }
- }
- return pathParameters
-}
-
-// Untokenize back into an URL path using the slash separator
-func untokenizePath(offset int, parts []string) string {
- var buffer bytes.Buffer
- for p := offset; p < len(parts); p++ {
- buffer.WriteString(parts[p])
- // do not end
- if p < len(parts)-1 {
- buffer.WriteString("/")
- }
- }
- return buffer.String()
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/request.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/request.go
deleted file mode 100644
index 0020095e..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/request.go
+++ /dev/null
@@ -1,133 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "compress/zlib"
- "net/http"
-)
-
-var defaultRequestContentType string
-
-// Request is a wrapper for a http Request that provides convenience methods
-type Request struct {
- Request *http.Request
- pathParameters map[string]string
- attributes map[string]interface{} // for storing request-scoped values
- selectedRoute *Route // is nil when no route was matched
-}
-
-func NewRequest(httpRequest *http.Request) *Request {
- return &Request{
- Request: httpRequest,
- pathParameters: map[string]string{},
- attributes: map[string]interface{}{},
- } // empty parameters, attributes
-}
-
-// If ContentType is missing or */* is given then fall back to this type, otherwise
-// a "Unable to unmarshal content of type:" response is returned.
-// Valid values are restful.MIME_JSON and restful.MIME_XML
-// Example:
-//
-// restful.DefaultRequestContentType(restful.MIME_JSON)
-func DefaultRequestContentType(mime string) {
- defaultRequestContentType = mime
-}
-
-// PathParameter accesses the Path parameter value by its name
-func (r *Request) PathParameter(name string) string {
- return r.pathParameters[name]
-}
-
-// PathParameters accesses the Path parameter values
-func (r *Request) PathParameters() map[string]string {
- return r.pathParameters
-}
-
-// QueryParameter returns the (first) Query parameter value by its name
-func (r *Request) QueryParameter(name string) string {
- return r.Request.URL.Query().Get(name)
-}
-
-// QueryParameters returns the all the query parameters values by name
-func (r *Request) QueryParameters(name string) []string {
- return r.Request.URL.Query()[name]
-}
-
-// BodyParameter parses the body of the request (once for typically a POST or a PUT) and returns the value of the given name or an error.
-func (r *Request) BodyParameter(name string) (string, error) {
- err := r.Request.ParseForm()
- if err != nil {
- return "", err
- }
- return r.Request.PostFormValue(name), nil
-}
-
-// HeaderParameter returns the HTTP Header value of a Header name or empty if missing
-func (r *Request) HeaderParameter(name string) string {
- return r.Request.Header.Get(name)
-}
-
-// ReadEntity checks the Accept header and reads the content into the entityPointer.
-func (r *Request) ReadEntity(entityPointer interface{}) (err error) {
- contentType := r.Request.Header.Get(HEADER_ContentType)
- contentEncoding := r.Request.Header.Get(HEADER_ContentEncoding)
-
- // check if the request body needs decompression
- if ENCODING_GZIP == contentEncoding {
- gzipReader := currentCompressorProvider.AcquireGzipReader()
- defer currentCompressorProvider.ReleaseGzipReader(gzipReader)
- gzipReader.Reset(r.Request.Body)
- r.Request.Body = gzipReader
- } else if ENCODING_DEFLATE == contentEncoding {
- zlibReader, err := zlib.NewReader(r.Request.Body)
- if err != nil {
- return err
- }
- r.Request.Body = zlibReader
- }
-
- // lookup the EntityReader, use defaultRequestContentType if needed and provided
- entityReader, ok := entityAccessRegistry.accessorAt(contentType)
- if !ok {
- if len(defaultRequestContentType) != 0 {
- entityReader, ok = entityAccessRegistry.accessorAt(defaultRequestContentType)
- }
- if !ok {
- return NewError(http.StatusBadRequest, "Unable to unmarshal content of type:"+contentType)
- }
- }
- return entityReader.Read(r, entityPointer)
-}
-
-// SetAttribute adds or replaces the attribute with the given value.
-func (r *Request) SetAttribute(name string, value interface{}) {
- r.attributes[name] = value
-}
-
-// Attribute returns the value associated to the given name. Returns nil if absent.
-func (r Request) Attribute(name string) interface{} {
- return r.attributes[name]
-}
-
-// SelectedRoutePath root path + route path that matched the request, e.g. /meetings/{id}/attendees
-// If no route was matched then return an empty string.
-func (r Request) SelectedRoutePath() string {
- if r.selectedRoute == nil {
- return ""
- }
- // skip creating an accessor
- return r.selectedRoute.Path
-}
-
-// SelectedRoute returns a reader to access the selected Route by the container
-// Returns nil if no route was matched.
-func (r Request) SelectedRoute() RouteReader {
- if r.selectedRoute == nil {
- return nil
- }
- return routeAccessor{route: r.selectedRoute}
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/response.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/response.go
deleted file mode 100644
index a41a92cc..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/response.go
+++ /dev/null
@@ -1,259 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "bufio"
- "errors"
- "net"
- "net/http"
-)
-
-// DefaultResponseMimeType is DEPRECATED, use DefaultResponseContentType(mime)
-var DefaultResponseMimeType string
-
-//PrettyPrintResponses controls the indentation feature of XML and JSON serialization
-var PrettyPrintResponses = true
-
-// Response is a wrapper on the actual http ResponseWriter
-// It provides several convenience methods to prepare and write response content.
-type Response struct {
- http.ResponseWriter
- requestAccept string // mime-type what the Http Request says it wants to receive
- routeProduces []string // mime-types what the Route says it can produce
- statusCode int // HTTP status code that has been written explicitly (if zero then net/http has written 200)
- contentLength int // number of bytes written for the response body
- prettyPrint bool // controls the indentation feature of XML and JSON serialization. It is initialized using var PrettyPrintResponses.
- err error // err property is kept when WriteError is called
- hijacker http.Hijacker // if underlying ResponseWriter supports it
-}
-
-// NewResponse creates a new response based on a http ResponseWriter.
-func NewResponse(httpWriter http.ResponseWriter) *Response {
- hijacker, _ := httpWriter.(http.Hijacker)
- return &Response{ResponseWriter: httpWriter, routeProduces: []string{}, statusCode: http.StatusOK, prettyPrint: PrettyPrintResponses, hijacker: hijacker}
-}
-
-// DefaultResponseContentType set a default.
-// If Accept header matching fails, fall back to this type.
-// Valid values are restful.MIME_JSON and restful.MIME_XML
-// Example:
-// restful.DefaultResponseContentType(restful.MIME_JSON)
-func DefaultResponseContentType(mime string) {
- DefaultResponseMimeType = mime
-}
-
-// InternalServerError writes the StatusInternalServerError header.
-// DEPRECATED, use WriteErrorString(http.StatusInternalServerError,reason)
-func (r Response) InternalServerError() Response {
- r.WriteHeader(http.StatusInternalServerError)
- return r
-}
-
-// Hijack implements the http.Hijacker interface. This expands
-// the Response to fulfill http.Hijacker if the underlying
-// http.ResponseWriter supports it.
-func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error) {
- if r.hijacker == nil {
- return nil, nil, errors.New("http.Hijacker not implemented by underlying http.ResponseWriter")
- }
- return r.hijacker.Hijack()
-}
-
-// PrettyPrint changes whether this response must produce pretty (line-by-line, indented) JSON or XML output.
-func (r *Response) PrettyPrint(bePretty bool) {
- r.prettyPrint = bePretty
-}
-
-// AddHeader is a shortcut for .Header().Add(header,value)
-func (r Response) AddHeader(header string, value string) Response {
- r.Header().Add(header, value)
- return r
-}
-
-// SetRequestAccepts tells the response what Mime-type(s) the HTTP request said it wants to accept. Exposed for testing.
-func (r *Response) SetRequestAccepts(mime string) {
- r.requestAccept = mime
-}
-
-// EntityWriter returns the registered EntityWriter that the entity (requested resource)
-// can write according to what the request wants (Accept) and what the Route can produce or what the restful defaults say.
-// If called before WriteEntity and WriteHeader then a false return value can be used to write a 406: Not Acceptable.
-func (r *Response) EntityWriter() (EntityReaderWriter, bool) {
- sorted := sortedMimes(r.requestAccept)
- for _, eachAccept := range sorted {
- for _, eachProduce := range r.routeProduces {
- if eachProduce == eachAccept.media {
- if w, ok := entityAccessRegistry.accessorAt(eachAccept.media); ok {
- return w, true
- }
- }
- }
- if eachAccept.media == "*/*" {
- for _, each := range r.routeProduces {
- if w, ok := entityAccessRegistry.accessorAt(each); ok {
- return w, true
- }
- }
- }
- }
- // if requestAccept is empty
- writer, ok := entityAccessRegistry.accessorAt(r.requestAccept)
- if !ok {
- // if not registered then fallback to the defaults (if set)
- if DefaultResponseMimeType == MIME_JSON {
- return entityAccessRegistry.accessorAt(MIME_JSON)
- }
- if DefaultResponseMimeType == MIME_XML {
- return entityAccessRegistry.accessorAt(MIME_XML)
- }
- if DefaultResponseMimeType == MIME_ZIP {
- return entityAccessRegistry.accessorAt(MIME_ZIP)
- }
- // Fallback to whatever the route says it can produce.
- // https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
- for _, each := range r.routeProduces {
- if w, ok := entityAccessRegistry.accessorAt(each); ok {
- return w, true
- }
- }
- if trace {
- traceLogger.Printf("no registered EntityReaderWriter found for %s", r.requestAccept)
- }
- }
- return writer, ok
-}
-
-// WriteEntity calls WriteHeaderAndEntity with Http Status OK (200)
-func (r *Response) WriteEntity(value interface{}) error {
- return r.WriteHeaderAndEntity(http.StatusOK, value)
-}
-
-// WriteHeaderAndEntity marshals the value using the representation denoted by the Accept Header and the registered EntityWriters.
-// If no Accept header is specified (or */*) then respond with the Content-Type as specified by the first in the Route.Produces.
-// If an Accept header is specified then respond with the Content-Type as specified by the first in the Route.Produces that is matched with the Accept header.
-// If the value is nil then no response is send except for the Http status. You may want to call WriteHeader(http.StatusNotFound) instead.
-// If there is no writer available that can represent the value in the requested MIME type then Http Status NotAcceptable is written.
-// Current implementation ignores any q-parameters in the Accept Header.
-// Returns an error if the value could not be written on the response.
-func (r *Response) WriteHeaderAndEntity(status int, value interface{}) error {
- writer, ok := r.EntityWriter()
- if !ok {
- r.WriteHeader(http.StatusNotAcceptable)
- return nil
- }
- return writer.Write(r, status, value)
-}
-
-// WriteAsXml is a convenience method for writing a value in xml (requires Xml tags on the value)
-// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.
-func (r *Response) WriteAsXml(value interface{}) error {
- return writeXML(r, http.StatusOK, MIME_XML, value)
-}
-
-// WriteHeaderAndXml is a convenience method for writing a status and value in xml (requires Xml tags on the value)
-// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.
-func (r *Response) WriteHeaderAndXml(status int, value interface{}) error {
- return writeXML(r, status, MIME_XML, value)
-}
-
-// WriteAsJson is a convenience method for writing a value in json.
-// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.
-func (r *Response) WriteAsJson(value interface{}) error {
- return writeJSON(r, http.StatusOK, MIME_JSON, value)
-}
-
-// WriteJson is a convenience method for writing a value in Json with a given Content-Type.
-// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.
-func (r *Response) WriteJson(value interface{}, contentType string) error {
- return writeJSON(r, http.StatusOK, contentType, value)
-}
-
-// WriteHeaderAndJson is a convenience method for writing the status and a value in Json with a given Content-Type.
-// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.
-func (r *Response) WriteHeaderAndJson(status int, value interface{}, contentType string) error {
- return writeJSON(r, status, contentType, value)
-}
-
-// WriteError writes the http status and the error string on the response. err can be nil.
-// Return an error if writing was not successful.
-func (r *Response) WriteError(httpStatus int, err error) (writeErr error) {
- r.err = err
- if err == nil {
- writeErr = r.WriteErrorString(httpStatus, "")
- } else {
- writeErr = r.WriteErrorString(httpStatus, err.Error())
- }
- return writeErr
-}
-
-// WriteServiceError is a convenience method for a responding with a status and a ServiceError
-func (r *Response) WriteServiceError(httpStatus int, err ServiceError) error {
- r.err = err
- return r.WriteHeaderAndEntity(httpStatus, err)
-}
-
-// WriteErrorString is a convenience method for an error status with the actual error
-func (r *Response) WriteErrorString(httpStatus int, errorReason string) error {
- if r.err == nil {
- // if not called from WriteError
- r.err = errors.New(errorReason)
- }
- r.WriteHeader(httpStatus)
- if _, err := r.Write([]byte(errorReason)); err != nil {
- return err
- }
- return nil
-}
-
-// Flush implements http.Flusher interface, which sends any buffered data to the client.
-func (r *Response) Flush() {
- if f, ok := r.ResponseWriter.(http.Flusher); ok {
- f.Flush()
- } else if trace {
- traceLogger.Printf("ResponseWriter %v doesn't support Flush", r)
- }
-}
-
-// WriteHeader is overridden to remember the Status Code that has been written.
-// Changes to the Header of the response have no effect after this.
-func (r *Response) WriteHeader(httpStatus int) {
- r.statusCode = httpStatus
- r.ResponseWriter.WriteHeader(httpStatus)
-}
-
-// StatusCode returns the code that has been written using WriteHeader.
-func (r Response) StatusCode() int {
- if 0 == r.statusCode {
- // no status code has been written yet; assume OK
- return http.StatusOK
- }
- return r.statusCode
-}
-
-// Write writes the data to the connection as part of an HTTP reply.
-// Write is part of http.ResponseWriter interface.
-func (r *Response) Write(bytes []byte) (int, error) {
- written, err := r.ResponseWriter.Write(bytes)
- r.contentLength += written
- return written, err
-}
-
-// ContentLength returns the number of bytes written for the response content.
-// Note that this value is only correct if all data is written through the Response using its Write* methods.
-// Data written directly using the underlying http.ResponseWriter is not accounted for.
-func (r Response) ContentLength() int {
- return r.contentLength
-}
-
-// CloseNotify is part of http.CloseNotifier interface
-func (r Response) CloseNotify() <-chan bool {
- return r.ResponseWriter.(http.CloseNotifier).CloseNotify()
-}
-
-// Error returns the err created by WriteError
-func (r Response) Error() error {
- return r.err
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route.go
deleted file mode 100644
index 306c44be..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route.go
+++ /dev/null
@@ -1,191 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "net/http"
- "strings"
-)
-
-// RouteFunction declares the signature of a function that can be bound to a Route.
-type RouteFunction func(*Request, *Response)
-
-// RouteSelectionConditionFunction declares the signature of a function that
-// can be used to add extra conditional logic when selecting whether the route
-// matches the HTTP request.
-type RouteSelectionConditionFunction func(httpRequest *http.Request) bool
-
-// Route binds a HTTP Method,Path,Consumes combination to a RouteFunction.
-type Route struct {
- ExtensionProperties
- Method string
- Produces []string
- Consumes []string
- Path string // webservice root path + described path
- Function RouteFunction
- Filters []FilterFunction
- If []RouteSelectionConditionFunction
-
- // cached values for dispatching
- relativePath string
- pathParts []string
- pathExpr *pathExpression // cached compilation of relativePath as RegExp
-
- // documentation
- Doc string
- Notes string
- Operation string
- ParameterDocs []*Parameter
- ResponseErrors map[int]ResponseError
- DefaultResponse *ResponseError
- ReadSample, WriteSample interface{} // structs that model an example request or response payload
- WriteSamples []interface{} // if more than one return types is possible (oneof) then this will contain multiple values
-
- // Extra information used to store custom information about the route.
- Metadata map[string]interface{}
-
- // marks a route as deprecated
- Deprecated bool
-
- //Overrides the container.contentEncodingEnabled
- contentEncodingEnabled *bool
-
- // indicate route path has custom verb
- hasCustomVerb bool
-
- // if a request does not include a content-type header then
- // depending on the method, it may return a 415 Unsupported Media
- // Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...
- allowedMethodsWithoutContentType []string
-}
-
-// Initialize for Route
-func (r *Route) postBuild() {
- r.pathParts = tokenizePath(r.Path)
- r.hasCustomVerb = hasCustomVerb(r.Path)
-}
-
-// Create Request and Response from their http versions
-func (r *Route) wrapRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request, pathParams map[string]string) (*Request, *Response) {
- wrappedRequest := NewRequest(httpRequest)
- wrappedRequest.pathParameters = pathParams
- wrappedRequest.selectedRoute = r
- wrappedResponse := NewResponse(httpWriter)
- wrappedResponse.requestAccept = httpRequest.Header.Get(HEADER_Accept)
- wrappedResponse.routeProduces = r.Produces
- return wrappedRequest, wrappedResponse
-}
-
-func stringTrimSpaceCutset(r rune) bool {
- return r == ' '
-}
-
-// Return whether the mimeType matches to what this Route can produce.
-func (r Route) matchesAccept(mimeTypesWithQuality string) bool {
- remaining := mimeTypesWithQuality
- for {
- var mimeType string
- if end := strings.Index(remaining, ","); end == -1 {
- mimeType, remaining = remaining, ""
- } else {
- mimeType, remaining = remaining[:end], remaining[end+1:]
- }
- if quality := strings.Index(mimeType, ";"); quality != -1 {
- mimeType = mimeType[:quality]
- }
- mimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)
- if mimeType == "*/*" {
- return true
- }
- for _, producibleType := range r.Produces {
- if producibleType == "*/*" || producibleType == mimeType {
- return true
- }
- }
- if len(remaining) == 0 {
- return false
- }
- }
-}
-
-// Return whether this Route can consume content with a type specified by mimeTypes (can be empty).
-func (r Route) matchesContentType(mimeTypes string) bool {
-
- if len(r.Consumes) == 0 {
- // did not specify what it can consume ; any media type (“*/*”) is assumed
- return true
- }
-
- if len(mimeTypes) == 0 {
- // idempotent methods with (most-likely or guaranteed) empty content match missing Content-Type
- m := r.Method
- // if route specifies less or non-idempotent methods then use that
- if len(r.allowedMethodsWithoutContentType) > 0 {
- for _, each := range r.allowedMethodsWithoutContentType {
- if m == each {
- return true
- }
- }
- } else {
- if m == "GET" || m == "HEAD" || m == "OPTIONS" || m == "DELETE" || m == "TRACE" {
- return true
- }
- }
- // proceed with default
- mimeTypes = MIME_OCTET
- }
-
- remaining := mimeTypes
- for {
- var mimeType string
- if end := strings.Index(remaining, ","); end == -1 {
- mimeType, remaining = remaining, ""
- } else {
- mimeType, remaining = remaining[:end], remaining[end+1:]
- }
- if quality := strings.Index(mimeType, ";"); quality != -1 {
- mimeType = mimeType[:quality]
- }
- mimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)
- for _, consumeableType := range r.Consumes {
- if consumeableType == "*/*" || consumeableType == mimeType {
- return true
- }
- }
- if len(remaining) == 0 {
- return false
- }
- }
-}
-
-// Tokenize an URL path using the slash separator ; the result does not have empty tokens
-func tokenizePath(path string) []string {
- if "/" == path {
- return nil
- }
- if TrimRightSlashEnabled {
- // 3.9.0
- return strings.Split(strings.Trim(path, "/"), "/")
- } else {
- // 3.10.2
- return strings.Split(strings.TrimLeft(path, "/"), "/")
- }
-}
-
-// for debugging
-func (r *Route) String() string {
- return r.Method + " " + r.Path
-}
-
-// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses. Overrides the container.contentEncodingEnabled value.
-func (r *Route) EnableContentEncoding(enabled bool) {
- r.contentEncodingEnabled = &enabled
-}
-
-// TrimRightSlashEnabled controls whether
-// - path on route building is using path.Join
-// - the path of the incoming request is trimmed of its slash suffux.
-// Value of true matches the behavior of <= 3.9.0
-var TrimRightSlashEnabled = true
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_builder.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_builder.go
deleted file mode 100644
index 75168c12..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_builder.go
+++ /dev/null
@@ -1,389 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "fmt"
- "os"
- "path"
- "reflect"
- "runtime"
- "strings"
- "sync/atomic"
-
- "github.com/emicklei/go-restful/v3/log"
-)
-
-// RouteBuilder is a helper to construct Routes.
-type RouteBuilder struct {
- rootPath string
- currentPath string
- produces []string
- consumes []string
- httpMethod string // required
- function RouteFunction // required
- filters []FilterFunction
- conditions []RouteSelectionConditionFunction
- allowedMethodsWithoutContentType []string // see Route
-
- typeNameHandleFunc TypeNameHandleFunction // required
-
- // documentation
- doc string
- notes string
- operation string
- readSample interface{}
- writeSamples []interface{}
- parameters []*Parameter
- errorMap map[int]ResponseError
- defaultResponse *ResponseError
- metadata map[string]interface{}
- extensions map[string]interface{}
- deprecated bool
- contentEncodingEnabled *bool
-}
-
-// Do evaluates each argument with the RouteBuilder itself.
-// This allows you to follow DRY principles without breaking the fluent programming style.
-// Example:
-//
-// ws.Route(ws.DELETE("/{name}").To(t.deletePerson).Do(Returns200, Returns500))
-//
-// func Returns500(b *RouteBuilder) {
-// b.Returns(500, "Internal Server Error", restful.ServiceError{})
-// }
-func (b *RouteBuilder) Do(oneArgBlocks ...func(*RouteBuilder)) *RouteBuilder {
- for _, each := range oneArgBlocks {
- each(b)
- }
- return b
-}
-
-// To bind the route to a function.
-// If this route is matched with the incoming Http Request then call this function with the *Request,*Response pair. Required.
-func (b *RouteBuilder) To(function RouteFunction) *RouteBuilder {
- b.function = function
- return b
-}
-
-// Method specifies what HTTP method to match. Required.
-func (b *RouteBuilder) Method(method string) *RouteBuilder {
- b.httpMethod = method
- return b
-}
-
-// Produces specifies what MIME types can be produced ; the matched one will appear in the Content-Type Http header.
-func (b *RouteBuilder) Produces(mimeTypes ...string) *RouteBuilder {
- b.produces = mimeTypes
- return b
-}
-
-// Consumes specifies what MIME types can be consumes ; the Accept Http header must matched any of these
-func (b *RouteBuilder) Consumes(mimeTypes ...string) *RouteBuilder {
- b.consumes = mimeTypes
- return b
-}
-
-// Path specifies the relative (w.r.t WebService root path) URL path to match. Default is "/".
-func (b *RouteBuilder) Path(subPath string) *RouteBuilder {
- b.currentPath = subPath
- return b
-}
-
-// Doc tells what this route is all about. Optional.
-func (b *RouteBuilder) Doc(documentation string) *RouteBuilder {
- b.doc = documentation
- return b
-}
-
-// Notes is a verbose explanation of the operation behavior. Optional.
-func (b *RouteBuilder) Notes(notes string) *RouteBuilder {
- b.notes = notes
- return b
-}
-
-// Reads tells what resource type will be read from the request payload. Optional.
-// A parameter of type "body" is added ,required is set to true and the dataType is set to the qualified name of the sample's type.
-func (b *RouteBuilder) Reads(sample interface{}, optionalDescription ...string) *RouteBuilder {
- fn := b.typeNameHandleFunc
- if fn == nil {
- fn = reflectTypeName
- }
- typeAsName := fn(sample)
- description := ""
- if len(optionalDescription) > 0 {
- description = optionalDescription[0]
- }
- b.readSample = sample
- bodyParameter := &Parameter{&ParameterData{Name: "body", Description: description}}
- bodyParameter.beBody()
- bodyParameter.Required(true)
- bodyParameter.DataType(typeAsName)
- b.Param(bodyParameter)
- return b
-}
-
-// ParameterNamed returns a Parameter already known to the RouteBuilder. Returns nil if not.
-// Use this to modify or extend information for the Parameter (through its Data()).
-func (b RouteBuilder) ParameterNamed(name string) (p *Parameter) {
- for _, each := range b.parameters {
- if each.Data().Name == name {
- return each
- }
- }
- return p
-}
-
-// Writes tells which one of the resource types will be written as the response payload. Optional.
-func (b *RouteBuilder) Writes(samples ...interface{}) *RouteBuilder {
- b.writeSamples = samples // oneof
- return b
-}
-
-// Param allows you to document the parameters of the Route. It adds a new Parameter (does not check for duplicates).
-func (b *RouteBuilder) Param(parameter *Parameter) *RouteBuilder {
- if b.parameters == nil {
- b.parameters = []*Parameter{}
- }
- b.parameters = append(b.parameters, parameter)
- return b
-}
-
-// Operation allows you to document what the actual method/function call is of the Route.
-// Unless called, the operation name is derived from the RouteFunction set using To(..).
-func (b *RouteBuilder) Operation(name string) *RouteBuilder {
- b.operation = name
- return b
-}
-
-// ReturnsError is deprecated, use Returns instead.
-func (b *RouteBuilder) ReturnsError(code int, message string, model interface{}) *RouteBuilder {
- log.Print("ReturnsError is deprecated, use Returns instead.")
- return b.Returns(code, message, model)
-}
-
-// Returns allows you to document what responses (errors or regular) can be expected.
-// The model parameter is optional ; either pass a struct instance or use nil if not applicable.
-func (b *RouteBuilder) Returns(code int, message string, model interface{}) *RouteBuilder {
- err := ResponseError{
- Code: code,
- Message: message,
- Model: model,
- IsDefault: false, // this field is deprecated, use default response instead.
- }
- // lazy init because there is no NewRouteBuilder (yet)
- if b.errorMap == nil {
- b.errorMap = map[int]ResponseError{}
- }
- b.errorMap[code] = err
- return b
-}
-
-// ReturnsWithHeaders is similar to Returns, but can specify response headers
-func (b *RouteBuilder) ReturnsWithHeaders(code int, message string, model interface{}, headers map[string]Header) *RouteBuilder {
- b.Returns(code, message, model)
- err := b.errorMap[code]
- err.Headers = headers
- b.errorMap[code] = err
- return b
-}
-
-// DefaultReturns is a special Returns call that sets the default of the response.
-func (b *RouteBuilder) DefaultReturns(message string, model interface{}) *RouteBuilder {
- b.defaultResponse = &ResponseError{
- Message: message,
- Model: model,
- }
- return b
-}
-
-// Metadata adds or updates a key=value pair to the metadata map.
-func (b *RouteBuilder) Metadata(key string, value interface{}) *RouteBuilder {
- if b.metadata == nil {
- b.metadata = map[string]interface{}{}
- }
- b.metadata[key] = value
- return b
-}
-
-// AddExtension adds or updates a key=value pair to the extensions map.
-func (b *RouteBuilder) AddExtension(key string, value interface{}) *RouteBuilder {
- if b.extensions == nil {
- b.extensions = map[string]interface{}{}
- }
- b.extensions[key] = value
- return b
-}
-
-// Deprecate sets the value of deprecated to true. Deprecated routes have a special UI treatment to warn against use
-func (b *RouteBuilder) Deprecate() *RouteBuilder {
- b.deprecated = true
- return b
-}
-
-// AllowedMethodsWithoutContentType overrides the default list GET,HEAD,OPTIONS,DELETE,TRACE
-// If a request does not include a content-type header then
-// depending on the method, it may return a 415 Unsupported Media.
-// Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...
-func (b *RouteBuilder) AllowedMethodsWithoutContentType(methods []string) *RouteBuilder {
- b.allowedMethodsWithoutContentType = methods
- return b
-}
-
-// ResponseError represents a response; not necessarily an error.
-type ResponseError struct {
- ExtensionProperties
- Code int
- Message string
- Model interface{}
- Headers map[string]Header
- IsDefault bool
-}
-
-// Header describes a header for a response of the API
-//
-// For more information: http://goo.gl/8us55a#headerObject
-type Header struct {
- *Items
- Description string
-}
-
-// Items describe swagger simple schemas for headers
-type Items struct {
- Type string
- Format string
- Items *Items
- CollectionFormat string
- Default interface{}
-}
-
-func (b *RouteBuilder) servicePath(path string) *RouteBuilder {
- b.rootPath = path
- return b
-}
-
-// Filter appends a FilterFunction to the end of filters for this Route to build.
-func (b *RouteBuilder) Filter(filter FilterFunction) *RouteBuilder {
- b.filters = append(b.filters, filter)
- return b
-}
-
-// If sets a condition function that controls matching the Route based on custom logic.
-// The condition function is provided the HTTP request and should return true if the route
-// should be considered.
-//
-// Efficiency note: the condition function is called before checking the method, produces, and
-// consumes criteria, so that the correct HTTP status code can be returned.
-//
-// Lifecycle note: no filter functions have been called prior to calling the condition function,
-// so the condition function should not depend on any context that might be set up by container
-// or route filters.
-func (b *RouteBuilder) If(condition RouteSelectionConditionFunction) *RouteBuilder {
- b.conditions = append(b.conditions, condition)
- return b
-}
-
-// ContentEncodingEnabled allows you to override the Containers value for auto-compressing this route response.
-func (b *RouteBuilder) ContentEncodingEnabled(enabled bool) *RouteBuilder {
- b.contentEncodingEnabled = &enabled
- return b
-}
-
-// If no specific Route path then set to rootPath
-// If no specific Produces then set to rootProduces
-// If no specific Consumes then set to rootConsumes
-func (b *RouteBuilder) copyDefaults(rootProduces, rootConsumes []string) {
- if len(b.produces) == 0 {
- b.produces = rootProduces
- }
- if len(b.consumes) == 0 {
- b.consumes = rootConsumes
- }
-}
-
-// typeNameHandler sets the function that will convert types to strings in the parameter
-// and model definitions.
-func (b *RouteBuilder) typeNameHandler(handler TypeNameHandleFunction) *RouteBuilder {
- b.typeNameHandleFunc = handler
- return b
-}
-
-// Build creates a new Route using the specification details collected by the RouteBuilder
-func (b *RouteBuilder) Build() Route {
- pathExpr, err := newPathExpression(b.currentPath)
- if err != nil {
- log.Printf("Invalid path:%s because:%v", b.currentPath, err)
- os.Exit(1)
- }
- if b.function == nil {
- log.Printf("No function specified for route:" + b.currentPath)
- os.Exit(1)
- }
- operationName := b.operation
- if len(operationName) == 0 && b.function != nil {
- // extract from definition
- operationName = nameOfFunction(b.function)
- }
- route := Route{
- Method: b.httpMethod,
- Path: concatPath(b.rootPath, b.currentPath),
- Produces: b.produces,
- Consumes: b.consumes,
- Function: b.function,
- Filters: b.filters,
- If: b.conditions,
- relativePath: b.currentPath,
- pathExpr: pathExpr,
- Doc: b.doc,
- Notes: b.notes,
- Operation: operationName,
- ParameterDocs: b.parameters,
- ResponseErrors: b.errorMap,
- DefaultResponse: b.defaultResponse,
- ReadSample: b.readSample,
- WriteSamples: b.writeSamples,
- Metadata: b.metadata,
- Deprecated: b.deprecated,
- contentEncodingEnabled: b.contentEncodingEnabled,
- allowedMethodsWithoutContentType: b.allowedMethodsWithoutContentType,
- }
- // set WriteSample if one specified
- if len(b.writeSamples) == 1 {
- route.WriteSample = b.writeSamples[0]
- }
- route.Extensions = b.extensions
- route.postBuild()
- return route
-}
-
-// merge two paths using the current (package global) merge path strategy.
-func concatPath(rootPath, routePath string) string {
-
- if TrimRightSlashEnabled {
- return strings.TrimRight(rootPath, "/") + "/" + strings.TrimLeft(routePath, "/")
- } else {
- return path.Join(rootPath, routePath)
- }
-}
-
-var anonymousFuncCount int32
-
-// nameOfFunction returns the short name of the function f for documentation.
-// It uses a runtime feature for debugging ; its value may change for later Go versions.
-func nameOfFunction(f interface{}) string {
- fun := runtime.FuncForPC(reflect.ValueOf(f).Pointer())
- tokenized := strings.Split(fun.Name(), ".")
- last := tokenized[len(tokenized)-1]
- last = strings.TrimSuffix(last, ")·fm") // < Go 1.5
- last = strings.TrimSuffix(last, ")-fm") // Go 1.5
- last = strings.TrimSuffix(last, "·fm") // < Go 1.5
- last = strings.TrimSuffix(last, "-fm") // Go 1.5
- if last == "func1" { // this could mean conflicts in API docs
- val := atomic.AddInt32(&anonymousFuncCount, 1)
- last = "func" + fmt.Sprintf("%d", val)
- atomic.StoreInt32(&anonymousFuncCount, val)
- }
- return last
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_reader.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_reader.go
deleted file mode 100644
index c9f4ee75..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/route_reader.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package restful
-
-// Copyright 2021 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-type RouteReader interface {
- Method() string
- Consumes() []string
- Path() string
- Doc() string
- Notes() string
- Operation() string
- ParameterDocs() []*Parameter
- // Returns a copy
- Metadata() map[string]interface{}
- Deprecated() bool
-}
-
-type routeAccessor struct {
- route *Route
-}
-
-func (r routeAccessor) Method() string {
- return r.route.Method
-}
-func (r routeAccessor) Consumes() []string {
- return r.route.Consumes[:]
-}
-func (r routeAccessor) Path() string {
- return r.route.Path
-}
-func (r routeAccessor) Doc() string {
- return r.route.Doc
-}
-func (r routeAccessor) Notes() string {
- return r.route.Notes
-}
-func (r routeAccessor) Operation() string {
- return r.route.Operation
-}
-func (r routeAccessor) ParameterDocs() []*Parameter {
- return r.route.ParameterDocs[:]
-}
-
-// Returns a copy
-func (r routeAccessor) Metadata() map[string]interface{} {
- return copyMap(r.route.Metadata)
-}
-func (r routeAccessor) Deprecated() bool {
- return r.route.Deprecated
-}
-
-// https://stackoverflow.com/questions/23057785/how-to-copy-a-map
-func copyMap(m map[string]interface{}) map[string]interface{} {
- cp := make(map[string]interface{})
- for k, v := range m {
- vm, ok := v.(map[string]interface{})
- if ok {
- cp[k] = copyMap(vm)
- } else {
- cp[k] = v
- }
- }
- return cp
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/router.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/router.go
deleted file mode 100644
index 19078af1..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/router.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import "net/http"
-
-// A RouteSelector finds the best matching Route given the input HTTP Request
-// RouteSelectors can optionally also implement the PathProcessor interface to also calculate the
-// path parameters after the route has been selected.
-type RouteSelector interface {
-
- // SelectRoute finds a Route given the input HTTP Request and a list of WebServices.
- // It returns a selected Route and its containing WebService or an error indicating
- // a problem.
- SelectRoute(
- webServices []*WebService,
- httpRequest *http.Request) (selectedService *WebService, selected *Route, err error)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/service_error.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/service_error.go
deleted file mode 100644
index a4157546..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/service_error.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "fmt"
- "net/http"
-)
-
-// ServiceError is a transport object to pass information about a non-Http error occurred in a WebService while processing a request.
-type ServiceError struct {
- Code int
- Message string
- Header http.Header
-}
-
-// NewError returns a ServiceError using the code and reason
-func NewError(code int, message string) ServiceError {
- return ServiceError{Code: code, Message: message}
-}
-
-// NewErrorWithHeader returns a ServiceError using the code, reason and header
-func NewErrorWithHeader(code int, message string, header http.Header) ServiceError {
- return ServiceError{Code: code, Message: message, Header: header}
-}
-
-// Error returns a text representation of the service error
-func (s ServiceError) Error() string {
- return fmt.Sprintf("[ServiceError:%v] %v", s.Code, s.Message)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service.go
deleted file mode 100644
index 789c4df2..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service.go
+++ /dev/null
@@ -1,305 +0,0 @@
-package restful
-
-import (
- "errors"
- "os"
- "reflect"
- "sync"
-
- "github.com/emicklei/go-restful/v3/log"
-)
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-// WebService holds a collection of Route values that bind a Http Method + URL Path to a function.
-type WebService struct {
- rootPath string
- pathExpr *pathExpression // cached compilation of rootPath as RegExp
- routes []Route
- produces []string
- consumes []string
- pathParameters []*Parameter
- filters []FilterFunction
- documentation string
- apiVersion string
-
- typeNameHandleFunc TypeNameHandleFunction
-
- dynamicRoutes bool
-
- // protects 'routes' if dynamic routes are enabled
- routesLock sync.RWMutex
-}
-
-func (w *WebService) SetDynamicRoutes(enable bool) {
- w.dynamicRoutes = enable
-}
-
-// TypeNameHandleFunction declares functions that can handle translating the name of a sample object
-// into the restful documentation for the service.
-type TypeNameHandleFunction func(sample interface{}) string
-
-// TypeNameHandler sets the function that will convert types to strings in the parameter
-// and model definitions. If not set, the web service will invoke
-// reflect.TypeOf(object).String().
-func (w *WebService) TypeNameHandler(handler TypeNameHandleFunction) *WebService {
- w.typeNameHandleFunc = handler
- return w
-}
-
-// reflectTypeName is the default TypeNameHandleFunction and for a given object
-// returns the name that Go identifies it with (e.g. "string" or "v1.Object") via
-// the reflection API.
-func reflectTypeName(sample interface{}) string {
- return reflect.TypeOf(sample).String()
-}
-
-// compilePathExpression ensures that the path is compiled into a RegEx for those routers that need it.
-func (w *WebService) compilePathExpression() {
- compiled, err := newPathExpression(w.rootPath)
- if err != nil {
- log.Printf("invalid path:%s because:%v", w.rootPath, err)
- os.Exit(1)
- }
- w.pathExpr = compiled
-}
-
-// ApiVersion sets the API version for documentation purposes.
-func (w *WebService) ApiVersion(apiVersion string) *WebService {
- w.apiVersion = apiVersion
- return w
-}
-
-// Version returns the API version for documentation purposes.
-func (w *WebService) Version() string { return w.apiVersion }
-
-// Path specifies the root URL template path of the WebService.
-// All Routes will be relative to this path.
-func (w *WebService) Path(root string) *WebService {
- w.rootPath = root
- if len(w.rootPath) == 0 {
- w.rootPath = "/"
- }
- w.compilePathExpression()
- return w
-}
-
-// Param adds a PathParameter to document parameters used in the root path.
-func (w *WebService) Param(parameter *Parameter) *WebService {
- if w.pathParameters == nil {
- w.pathParameters = []*Parameter{}
- }
- w.pathParameters = append(w.pathParameters, parameter)
- return w
-}
-
-// PathParameter creates a new Parameter of kind Path for documentation purposes.
-// It is initialized as required with string as its DataType.
-func (w *WebService) PathParameter(name, description string) *Parameter {
- return PathParameter(name, description)
-}
-
-// PathParameter creates a new Parameter of kind Path for documentation purposes.
-// It is initialized as required with string as its DataType.
-func PathParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: true, DataType: "string"}}
- p.bePath()
- return p
-}
-
-// QueryParameter creates a new Parameter of kind Query for documentation purposes.
-// It is initialized as not required with string as its DataType.
-func (w *WebService) QueryParameter(name, description string) *Parameter {
- return QueryParameter(name, description)
-}
-
-// QueryParameter creates a new Parameter of kind Query for documentation purposes.
-// It is initialized as not required with string as its DataType.
-func QueryParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: "string", CollectionFormat: CollectionFormatCSV.String()}}
- p.beQuery()
- return p
-}
-
-// BodyParameter creates a new Parameter of kind Body for documentation purposes.
-// It is initialized as required without a DataType.
-func (w *WebService) BodyParameter(name, description string) *Parameter {
- return BodyParameter(name, description)
-}
-
-// BodyParameter creates a new Parameter of kind Body for documentation purposes.
-// It is initialized as required without a DataType.
-func BodyParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: true}}
- p.beBody()
- return p
-}
-
-// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.
-// It is initialized as not required with string as its DataType.
-func (w *WebService) HeaderParameter(name, description string) *Parameter {
- return HeaderParameter(name, description)
-}
-
-// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.
-// It is initialized as not required with string as its DataType.
-func HeaderParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: "string"}}
- p.beHeader()
- return p
-}
-
-// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.
-// It is initialized as required with string as its DataType.
-func (w *WebService) FormParameter(name, description string) *Parameter {
- return FormParameter(name, description)
-}
-
-// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.
-// It is initialized as required with string as its DataType.
-func FormParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: "string"}}
- p.beForm()
- return p
-}
-
-// MultiPartFormParameter creates a new Parameter of kind Form (using multipart/form-data) for documentation purposes.
-// It is initialized as required with string as its DataType.
-func (w *WebService) MultiPartFormParameter(name, description string) *Parameter {
- return MultiPartFormParameter(name, description)
-}
-
-func MultiPartFormParameter(name, description string) *Parameter {
- p := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: "string"}}
- p.beMultiPartForm()
- return p
-}
-
-// Route creates a new Route using the RouteBuilder and add to the ordered list of Routes.
-func (w *WebService) Route(builder *RouteBuilder) *WebService {
- w.routesLock.Lock()
- defer w.routesLock.Unlock()
- builder.copyDefaults(w.produces, w.consumes)
- w.routes = append(w.routes, builder.Build())
- return w
-}
-
-// RemoveRoute removes the specified route, looks for something that matches 'path' and 'method'
-func (w *WebService) RemoveRoute(path, method string) error {
- if !w.dynamicRoutes {
- return errors.New("dynamic routes are not enabled.")
- }
- w.routesLock.Lock()
- defer w.routesLock.Unlock()
- newRoutes := []Route{}
- for _, route := range w.routes {
- if route.Method == method && route.Path == path {
- continue
- }
- newRoutes = append(newRoutes, route)
- }
- w.routes = newRoutes
- return nil
-}
-
-// Method creates a new RouteBuilder and initialize its http method
-func (w *WebService) Method(httpMethod string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(httpMethod)
-}
-
-// Produces specifies that this WebService can produce one or more MIME types.
-// Http requests must have one of these values set for the Accept header.
-func (w *WebService) Produces(contentTypes ...string) *WebService {
- w.produces = contentTypes
- return w
-}
-
-// Consumes specifies that this WebService can consume one or more MIME types.
-// Http requests must have one of these values set for the Content-Type header.
-func (w *WebService) Consumes(accepts ...string) *WebService {
- w.consumes = accepts
- return w
-}
-
-// Routes returns the Routes associated with this WebService
-func (w *WebService) Routes() []Route {
- if !w.dynamicRoutes {
- return w.routes
- }
- // Make a copy of the array to prevent concurrency problems
- w.routesLock.RLock()
- defer w.routesLock.RUnlock()
- result := make([]Route, len(w.routes))
- for ix := range w.routes {
- result[ix] = w.routes[ix]
- }
- return result
-}
-
-// RootPath returns the RootPath associated with this WebService. Default "/"
-func (w *WebService) RootPath() string {
- return w.rootPath
-}
-
-// PathParameters return the path parameter names for (shared among its Routes)
-func (w *WebService) PathParameters() []*Parameter {
- return w.pathParameters
-}
-
-// Filter adds a filter function to the chain of filters applicable to all its Routes
-func (w *WebService) Filter(filter FilterFunction) *WebService {
- w.filters = append(w.filters, filter)
- return w
-}
-
-// Doc is used to set the documentation of this service.
-func (w *WebService) Doc(plainText string) *WebService {
- w.documentation = plainText
- return w
-}
-
-// Documentation returns it.
-func (w *WebService) Documentation() string {
- return w.documentation
-}
-
-/*
- Convenience methods
-*/
-
-// HEAD is a shortcut for .Method("HEAD").Path(subPath)
-func (w *WebService) HEAD(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("HEAD").Path(subPath)
-}
-
-// GET is a shortcut for .Method("GET").Path(subPath)
-func (w *WebService) GET(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("GET").Path(subPath)
-}
-
-// POST is a shortcut for .Method("POST").Path(subPath)
-func (w *WebService) POST(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("POST").Path(subPath)
-}
-
-// PUT is a shortcut for .Method("PUT").Path(subPath)
-func (w *WebService) PUT(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("PUT").Path(subPath)
-}
-
-// PATCH is a shortcut for .Method("PATCH").Path(subPath)
-func (w *WebService) PATCH(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("PATCH").Path(subPath)
-}
-
-// DELETE is a shortcut for .Method("DELETE").Path(subPath)
-func (w *WebService) DELETE(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("DELETE").Path(subPath)
-}
-
-// OPTIONS is a shortcut for .Method("OPTIONS").Path(subPath)
-func (w *WebService) OPTIONS(subPath string) *RouteBuilder {
- return new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method("OPTIONS").Path(subPath)
-}
diff --git a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service_container.go b/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service_container.go
deleted file mode 100644
index c9d31b06..00000000
--- a/upstream/image/git-init/vendor/github.com/emicklei/go-restful/v3/web_service_container.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package restful
-
-// Copyright 2013 Ernest Micklei. All rights reserved.
-// Use of this source code is governed by a license
-// that can be found in the LICENSE file.
-
-import (
- "net/http"
-)
-
-// DefaultContainer is a restful.Container that uses http.DefaultServeMux
-var DefaultContainer *Container
-
-func init() {
- DefaultContainer = NewContainer()
- DefaultContainer.ServeMux = http.DefaultServeMux
-}
-
-// If set the true then panics will not be caught to return HTTP 500.
-// In that case, Route functions are responsible for handling any error situation.
-// Default value is false = recover from panics. This has performance implications.
-// OBSOLETE ; use restful.DefaultContainer.DoNotRecover(true)
-var DoNotRecover = false
-
-// Add registers a new WebService add it to the DefaultContainer.
-func Add(service *WebService) {
- DefaultContainer.Add(service)
-}
-
-// Filter appends a container FilterFunction from the DefaultContainer.
-// These are called before dispatching a http.Request to a WebService.
-func Filter(filter FilterFunction) {
- DefaultContainer.Filter(filter)
-}
-
-// RegisteredWebServices returns the collections of WebServices from the DefaultContainer
-func RegisteredWebServices() []*WebService {
- return DefaultContainer.RegisteredWebServices()
-}
diff --git a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/LICENSE b/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/LICENSE
deleted file mode 100644
index df76d7d7..00000000
--- a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 2014, Evan Phoenix
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the Evan Phoenix nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/errors.go b/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/errors.go
deleted file mode 100644
index 75304b44..00000000
--- a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/errors.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package jsonpatch
-
-import "fmt"
-
-// AccumulatedCopySizeError is an error type returned when the accumulated size
-// increase caused by copy operations in a patch operation has exceeded the
-// limit.
-type AccumulatedCopySizeError struct {
- limit int64
- accumulated int64
-}
-
-// NewAccumulatedCopySizeError returns an AccumulatedCopySizeError.
-func NewAccumulatedCopySizeError(l, a int64) *AccumulatedCopySizeError {
- return &AccumulatedCopySizeError{limit: l, accumulated: a}
-}
-
-// Error implements the error interface.
-func (a *AccumulatedCopySizeError) Error() string {
- return fmt.Sprintf("Unable to complete the copy, the accumulated size increase of copy is %d, exceeding the limit %d", a.accumulated, a.limit)
-}
-
-// ArraySizeError is an error type returned when the array size has exceeded
-// the limit.
-type ArraySizeError struct {
- limit int
- size int
-}
-
-// NewArraySizeError returns an ArraySizeError.
-func NewArraySizeError(l, s int) *ArraySizeError {
- return &ArraySizeError{limit: l, size: s}
-}
-
-// Error implements the error interface.
-func (a *ArraySizeError) Error() string {
- return fmt.Sprintf("Unable to create array of size %d, limit is %d", a.size, a.limit)
-}
diff --git a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go b/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go
deleted file mode 100644
index e9bb0efe..00000000
--- a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go
+++ /dev/null
@@ -1,1385 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Represents JSON data structure using native Go types: booleans, floats,
-// strings, arrays, and maps.
-
-package json
-
-import (
- "encoding"
- "encoding/base64"
- "fmt"
- "reflect"
- "strconv"
- "strings"
- "sync"
- "unicode"
- "unicode/utf16"
- "unicode/utf8"
-)
-
-// Unmarshal parses the JSON-encoded data and stores the result
-// in the value pointed to by v. If v is nil or not a pointer,
-// Unmarshal returns an InvalidUnmarshalError.
-//
-// Unmarshal uses the inverse of the encodings that
-// Marshal uses, allocating maps, slices, and pointers as necessary,
-// with the following additional rules:
-//
-// To unmarshal JSON into a pointer, Unmarshal first handles the case of
-// the JSON being the JSON literal null. In that case, Unmarshal sets
-// the pointer to nil. Otherwise, Unmarshal unmarshals the JSON into
-// the value pointed at by the pointer. If the pointer is nil, Unmarshal
-// allocates a new value for it to point to.
-//
-// To unmarshal JSON into a value implementing the Unmarshaler interface,
-// Unmarshal calls that value's UnmarshalJSON method, including
-// when the input is a JSON null.
-// Otherwise, if the value implements encoding.TextUnmarshaler
-// and the input is a JSON quoted string, Unmarshal calls that value's
-// UnmarshalText method with the unquoted form of the string.
-//
-// To unmarshal JSON into a struct, Unmarshal matches incoming object
-// keys to the keys used by Marshal (either the struct field name or its tag),
-// preferring an exact match but also accepting a case-insensitive match. By
-// default, object keys which don't have a corresponding struct field are
-// ignored (see Decoder.DisallowUnknownFields for an alternative).
-//
-// To unmarshal JSON into an interface value,
-// Unmarshal stores one of these in the interface value:
-//
-// bool, for JSON booleans
-// float64, for JSON numbers
-// string, for JSON strings
-// []interface{}, for JSON arrays
-// map[string]interface{}, for JSON objects
-// nil for JSON null
-//
-// To unmarshal a JSON array into a slice, Unmarshal resets the slice length
-// to zero and then appends each element to the slice.
-// As a special case, to unmarshal an empty JSON array into a slice,
-// Unmarshal replaces the slice with a new empty slice.
-//
-// To unmarshal a JSON array into a Go array, Unmarshal decodes
-// JSON array elements into corresponding Go array elements.
-// If the Go array is smaller than the JSON array,
-// the additional JSON array elements are discarded.
-// If the JSON array is smaller than the Go array,
-// the additional Go array elements are set to zero values.
-//
-// To unmarshal a JSON object into a map, Unmarshal first establishes a map to
-// use. If the map is nil, Unmarshal allocates a new map. Otherwise Unmarshal
-// reuses the existing map, keeping existing entries. Unmarshal then stores
-// key-value pairs from the JSON object into the map. The map's key type must
-// either be any string type, an integer, implement json.Unmarshaler, or
-// implement encoding.TextUnmarshaler.
-//
-// If the JSON-encoded data contain a syntax error, Unmarshal returns a SyntaxError.
-//
-// If a JSON value is not appropriate for a given target type,
-// or if a JSON number overflows the target type, Unmarshal
-// skips that field and completes the unmarshaling as best it can.
-// If no more serious errors are encountered, Unmarshal returns
-// an UnmarshalTypeError describing the earliest such error. In any
-// case, it's not guaranteed that all the remaining fields following
-// the problematic one will be unmarshaled into the target object.
-//
-// The JSON null value unmarshals into an interface, map, pointer, or slice
-// by setting that Go value to nil. Because null is often used in JSON to mean
-// “not present,” unmarshaling a JSON null into any other Go type has no effect
-// on the value and produces no error.
-//
-// When unmarshaling quoted strings, invalid UTF-8 or
-// invalid UTF-16 surrogate pairs are not treated as an error.
-// Instead, they are replaced by the Unicode replacement
-// character U+FFFD.
-func Unmarshal(data []byte, v any) error {
- // Check for well-formedness.
- // Avoids filling out half a data structure
- // before discovering a JSON syntax error.
- d := ds.Get().(*decodeState)
- defer ds.Put(d)
- //var d decodeState
- d.useNumber = true
- err := checkValid(data, &d.scan)
- if err != nil {
- return err
- }
-
- d.init(data)
- return d.unmarshal(v)
-}
-
-var ds = sync.Pool{
- New: func() any {
- return new(decodeState)
- },
-}
-
-func UnmarshalWithKeys(data []byte, v any) ([]string, error) {
- // Check for well-formedness.
- // Avoids filling out half a data structure
- // before discovering a JSON syntax error.
-
- d := ds.Get().(*decodeState)
- defer ds.Put(d)
- //var d decodeState
- d.useNumber = true
- err := checkValid(data, &d.scan)
- if err != nil {
- return nil, err
- }
-
- d.init(data)
- err = d.unmarshal(v)
- if err != nil {
- return nil, err
- }
-
- return d.lastKeys, nil
-}
-
-func UnmarshalValid(data []byte, v any) error {
- // Check for well-formedness.
- // Avoids filling out half a data structure
- // before discovering a JSON syntax error.
- d := ds.Get().(*decodeState)
- defer ds.Put(d)
- //var d decodeState
- d.useNumber = true
-
- d.init(data)
- return d.unmarshal(v)
-}
-
-func UnmarshalValidWithKeys(data []byte, v any) ([]string, error) {
- // Check for well-formedness.
- // Avoids filling out half a data structure
- // before discovering a JSON syntax error.
-
- d := ds.Get().(*decodeState)
- defer ds.Put(d)
- //var d decodeState
- d.useNumber = true
-
- d.init(data)
- err := d.unmarshal(v)
- if err != nil {
- return nil, err
- }
-
- return d.lastKeys, nil
-}
-
-// Unmarshaler is the interface implemented by types
-// that can unmarshal a JSON description of themselves.
-// The input can be assumed to be a valid encoding of
-// a JSON value. UnmarshalJSON must copy the JSON data
-// if it wishes to retain the data after returning.
-//
-// By convention, to approximate the behavior of Unmarshal itself,
-// Unmarshalers implement UnmarshalJSON([]byte("null")) as a no-op.
-type Unmarshaler interface {
- UnmarshalJSON([]byte) error
-}
-
-// An UnmarshalTypeError describes a JSON value that was
-// not appropriate for a value of a specific Go type.
-type UnmarshalTypeError struct {
- Value string // description of JSON value - "bool", "array", "number -5"
- Type reflect.Type // type of Go value it could not be assigned to
- Offset int64 // error occurred after reading Offset bytes
- Struct string // name of the struct type containing the field
- Field string // the full path from root node to the field
-}
-
-func (e *UnmarshalTypeError) Error() string {
- if e.Struct != "" || e.Field != "" {
- return "json: cannot unmarshal " + e.Value + " into Go struct field " + e.Struct + "." + e.Field + " of type " + e.Type.String()
- }
- return "json: cannot unmarshal " + e.Value + " into Go value of type " + e.Type.String()
-}
-
-// An UnmarshalFieldError describes a JSON object key that
-// led to an unexported (and therefore unwritable) struct field.
-//
-// Deprecated: No longer used; kept for compatibility.
-type UnmarshalFieldError struct {
- Key string
- Type reflect.Type
- Field reflect.StructField
-}
-
-func (e *UnmarshalFieldError) Error() string {
- return "json: cannot unmarshal object key " + strconv.Quote(e.Key) + " into unexported field " + e.Field.Name + " of type " + e.Type.String()
-}
-
-// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal.
-// (The argument to Unmarshal must be a non-nil pointer.)
-type InvalidUnmarshalError struct {
- Type reflect.Type
-}
-
-func (e *InvalidUnmarshalError) Error() string {
- if e.Type == nil {
- return "json: Unmarshal(nil)"
- }
-
- if e.Type.Kind() != reflect.Pointer {
- return "json: Unmarshal(non-pointer " + e.Type.String() + ")"
- }
- return "json: Unmarshal(nil " + e.Type.String() + ")"
-}
-
-func (d *decodeState) unmarshal(v any) error {
- rv := reflect.ValueOf(v)
- if rv.Kind() != reflect.Pointer || rv.IsNil() {
- return &InvalidUnmarshalError{reflect.TypeOf(v)}
- }
-
- d.scan.reset()
- d.scanWhile(scanSkipSpace)
- // We decode rv not rv.Elem because the Unmarshaler interface
- // test must be applied at the top level of the value.
- err := d.value(rv)
- if err != nil {
- return d.addErrorContext(err)
- }
- return d.savedError
-}
-
-// A Number represents a JSON number literal.
-type Number string
-
-// String returns the literal text of the number.
-func (n Number) String() string { return string(n) }
-
-// Float64 returns the number as a float64.
-func (n Number) Float64() (float64, error) {
- return strconv.ParseFloat(string(n), 64)
-}
-
-// Int64 returns the number as an int64.
-func (n Number) Int64() (int64, error) {
- return strconv.ParseInt(string(n), 10, 64)
-}
-
-// An errorContext provides context for type errors during decoding.
-type errorContext struct {
- Struct reflect.Type
- FieldStack []string
-}
-
-// decodeState represents the state while decoding a JSON value.
-type decodeState struct {
- data []byte
- off int // next read offset in data
- opcode int // last read result
- scan scanner
- errorContext *errorContext
- savedError error
- useNumber bool
- disallowUnknownFields bool
- lastKeys []string
-}
-
-// readIndex returns the position of the last byte read.
-func (d *decodeState) readIndex() int {
- return d.off - 1
-}
-
-// phasePanicMsg is used as a panic message when we end up with something that
-// shouldn't happen. It can indicate a bug in the JSON decoder, or that
-// something is editing the data slice while the decoder executes.
-const phasePanicMsg = "JSON decoder out of sync - data changing underfoot?"
-
-func (d *decodeState) init(data []byte) *decodeState {
- d.data = data
- d.off = 0
- d.savedError = nil
- if d.errorContext != nil {
- d.errorContext.Struct = nil
- // Reuse the allocated space for the FieldStack slice.
- d.errorContext.FieldStack = d.errorContext.FieldStack[:0]
- }
- return d
-}
-
-// saveError saves the first err it is called with,
-// for reporting at the end of the unmarshal.
-func (d *decodeState) saveError(err error) {
- if d.savedError == nil {
- d.savedError = d.addErrorContext(err)
- }
-}
-
-// addErrorContext returns a new error enhanced with information from d.errorContext
-func (d *decodeState) addErrorContext(err error) error {
- if d.errorContext != nil && (d.errorContext.Struct != nil || len(d.errorContext.FieldStack) > 0) {
- switch err := err.(type) {
- case *UnmarshalTypeError:
- err.Struct = d.errorContext.Struct.Name()
- err.Field = strings.Join(d.errorContext.FieldStack, ".")
- }
- }
- return err
-}
-
-// skip scans to the end of what was started.
-func (d *decodeState) skip() {
- s, data, i := &d.scan, d.data, d.off
- depth := len(s.parseState)
- for {
- op := s.step(s, data[i])
- i++
- if len(s.parseState) < depth {
- d.off = i
- d.opcode = op
- return
- }
- }
-}
-
-// scanNext processes the byte at d.data[d.off].
-func (d *decodeState) scanNext() {
- if d.off < len(d.data) {
- d.opcode = d.scan.step(&d.scan, d.data[d.off])
- d.off++
- } else {
- d.opcode = d.scan.eof()
- d.off = len(d.data) + 1 // mark processed EOF with len+1
- }
-}
-
-// scanWhile processes bytes in d.data[d.off:] until it
-// receives a scan code not equal to op.
-func (d *decodeState) scanWhile(op int) {
- s, data, i := &d.scan, d.data, d.off
- for i < len(data) {
- newOp := s.step(s, data[i])
- i++
- if newOp != op {
- d.opcode = newOp
- d.off = i
- return
- }
- }
-
- d.off = len(data) + 1 // mark processed EOF with len+1
- d.opcode = d.scan.eof()
-}
-
-// rescanLiteral is similar to scanWhile(scanContinue), but it specialises the
-// common case where we're decoding a literal. The decoder scans the input
-// twice, once for syntax errors and to check the length of the value, and the
-// second to perform the decoding.
-//
-// Only in the second step do we use decodeState to tokenize literals, so we
-// know there aren't any syntax errors. We can take advantage of that knowledge,
-// and scan a literal's bytes much more quickly.
-func (d *decodeState) rescanLiteral() {
- data, i := d.data, d.off
-Switch:
- switch data[i-1] {
- case '"': // string
- for ; i < len(data); i++ {
- switch data[i] {
- case '\\':
- i++ // escaped char
- case '"':
- i++ // tokenize the closing quote too
- break Switch
- }
- }
- case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-': // number
- for ; i < len(data); i++ {
- switch data[i] {
- case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
- '.', 'e', 'E', '+', '-':
- default:
- break Switch
- }
- }
- case 't': // true
- i += len("rue")
- case 'f': // false
- i += len("alse")
- case 'n': // null
- i += len("ull")
- }
- if i < len(data) {
- d.opcode = stateEndValue(&d.scan, data[i])
- } else {
- d.opcode = scanEnd
- }
- d.off = i + 1
-}
-
-// value consumes a JSON value from d.data[d.off-1:], decoding into v, and
-// reads the following byte ahead. If v is invalid, the value is discarded.
-// The first byte of the value has been read already.
-func (d *decodeState) value(v reflect.Value) error {
- switch d.opcode {
- default:
- panic(phasePanicMsg)
-
- case scanBeginArray:
- if v.IsValid() {
- if err := d.array(v); err != nil {
- return err
- }
- } else {
- d.skip()
- }
- d.scanNext()
-
- case scanBeginObject:
- if v.IsValid() {
- if err := d.object(v); err != nil {
- return err
- }
- } else {
- d.skip()
- }
- d.scanNext()
-
- case scanBeginLiteral:
- // All bytes inside literal return scanContinue op code.
- start := d.readIndex()
- d.rescanLiteral()
-
- if v.IsValid() {
- if err := d.literalStore(d.data[start:d.readIndex()], v, false); err != nil {
- return err
- }
- }
- }
- return nil
-}
-
-type unquotedValue struct{}
-
-// valueQuoted is like value but decodes a
-// quoted string literal or literal null into an interface value.
-// If it finds anything other than a quoted string literal or null,
-// valueQuoted returns unquotedValue{}.
-func (d *decodeState) valueQuoted() any {
- switch d.opcode {
- default:
- panic(phasePanicMsg)
-
- case scanBeginArray, scanBeginObject:
- d.skip()
- d.scanNext()
-
- case scanBeginLiteral:
- v := d.literalInterface()
- switch v.(type) {
- case nil, string:
- return v
- }
- }
- return unquotedValue{}
-}
-
-// indirect walks down v allocating pointers as needed,
-// until it gets to a non-pointer.
-// If it encounters an Unmarshaler, indirect stops and returns that.
-// If decodingNull is true, indirect stops at the first settable pointer so it
-// can be set to nil.
-func indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {
- // Issue #24153 indicates that it is generally not a guaranteed property
- // that you may round-trip a reflect.Value by calling Value.Addr().Elem()
- // and expect the value to still be settable for values derived from
- // unexported embedded struct fields.
- //
- // The logic below effectively does this when it first addresses the value
- // (to satisfy possible pointer methods) and continues to dereference
- // subsequent pointers as necessary.
- //
- // After the first round-trip, we set v back to the original value to
- // preserve the original RW flags contained in reflect.Value.
- v0 := v
- haveAddr := false
-
- // If v is a named type and is addressable,
- // start with its address, so that if the type has pointer methods,
- // we find them.
- if v.Kind() != reflect.Pointer && v.Type().Name() != "" && v.CanAddr() {
- haveAddr = true
- v = v.Addr()
- }
- for {
- // Load value from interface, but only if the result will be
- // usefully addressable.
- if v.Kind() == reflect.Interface && !v.IsNil() {
- e := v.Elem()
- if e.Kind() == reflect.Pointer && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Pointer) {
- haveAddr = false
- v = e
- continue
- }
- }
-
- if v.Kind() != reflect.Pointer {
- break
- }
-
- if decodingNull && v.CanSet() {
- break
- }
-
- // Prevent infinite loop if v is an interface pointing to its own address:
- // var v interface{}
- // v = &v
- if v.Elem().Kind() == reflect.Interface && v.Elem().Elem() == v {
- v = v.Elem()
- break
- }
- if v.IsNil() {
- v.Set(reflect.New(v.Type().Elem()))
- }
- if v.Type().NumMethod() > 0 && v.CanInterface() {
- if u, ok := v.Interface().(Unmarshaler); ok {
- return u, nil, reflect.Value{}
- }
- if !decodingNull {
- if u, ok := v.Interface().(encoding.TextUnmarshaler); ok {
- return nil, u, reflect.Value{}
- }
- }
- }
-
- if haveAddr {
- v = v0 // restore original value after round-trip Value.Addr().Elem()
- haveAddr = false
- } else {
- v = v.Elem()
- }
- }
- return nil, nil, v
-}
-
-// array consumes an array from d.data[d.off-1:], decoding into v.
-// The first byte of the array ('[') has been read already.
-func (d *decodeState) array(v reflect.Value) error {
- // Check for unmarshaler.
- u, ut, pv := indirect(v, false)
- if u != nil {
- start := d.readIndex()
- d.skip()
- return u.UnmarshalJSON(d.data[start:d.off])
- }
- if ut != nil {
- d.saveError(&UnmarshalTypeError{Value: "array", Type: v.Type(), Offset: int64(d.off)})
- d.skip()
- return nil
- }
- v = pv
-
- // Check type of target.
- switch v.Kind() {
- case reflect.Interface:
- if v.NumMethod() == 0 {
- // Decoding into nil interface? Switch to non-reflect code.
- ai := d.arrayInterface()
- v.Set(reflect.ValueOf(ai))
- return nil
- }
- // Otherwise it's invalid.
- fallthrough
- default:
- d.saveError(&UnmarshalTypeError{Value: "array", Type: v.Type(), Offset: int64(d.off)})
- d.skip()
- return nil
- case reflect.Array, reflect.Slice:
- break
- }
-
- i := 0
- for {
- // Look ahead for ] - can only happen on first iteration.
- d.scanWhile(scanSkipSpace)
- if d.opcode == scanEndArray {
- break
- }
-
- // Get element of array, growing if necessary.
- if v.Kind() == reflect.Slice {
- // Grow slice if necessary
- if i >= v.Cap() {
- newcap := v.Cap() + v.Cap()/2
- if newcap < 4 {
- newcap = 4
- }
- newv := reflect.MakeSlice(v.Type(), v.Len(), newcap)
- reflect.Copy(newv, v)
- v.Set(newv)
- }
- if i >= v.Len() {
- v.SetLen(i + 1)
- }
- }
-
- if i < v.Len() {
- // Decode into element.
- if err := d.value(v.Index(i)); err != nil {
- return err
- }
- } else {
- // Ran out of fixed array: skip.
- if err := d.value(reflect.Value{}); err != nil {
- return err
- }
- }
- i++
-
- // Next token must be , or ].
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.opcode == scanEndArray {
- break
- }
- if d.opcode != scanArrayValue {
- panic(phasePanicMsg)
- }
- }
-
- if i < v.Len() {
- if v.Kind() == reflect.Array {
- // Array. Zero the rest.
- z := reflect.Zero(v.Type().Elem())
- for ; i < v.Len(); i++ {
- v.Index(i).Set(z)
- }
- } else {
- v.SetLen(i)
- }
- }
- if i == 0 && v.Kind() == reflect.Slice {
- v.Set(reflect.MakeSlice(v.Type(), 0, 0))
- }
- return nil
-}
-
-var nullLiteral = []byte("null")
-var textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()
-
-// object consumes an object from d.data[d.off-1:], decoding into v.
-// The first byte ('{') of the object has been read already.
-func (d *decodeState) object(v reflect.Value) error {
- // Check for unmarshaler.
- u, ut, pv := indirect(v, false)
- if u != nil {
- start := d.readIndex()
- d.skip()
- return u.UnmarshalJSON(d.data[start:d.off])
- }
- if ut != nil {
- d.saveError(&UnmarshalTypeError{Value: "object", Type: v.Type(), Offset: int64(d.off)})
- d.skip()
- return nil
- }
- v = pv
- t := v.Type()
-
- // Decoding into nil interface? Switch to non-reflect code.
- if v.Kind() == reflect.Interface && v.NumMethod() == 0 {
- oi := d.objectInterface()
- v.Set(reflect.ValueOf(oi))
- return nil
- }
-
- var fields structFields
-
- // Check type of target:
- // struct or
- // map[T1]T2 where T1 is string, an integer type,
- // or an encoding.TextUnmarshaler
- switch v.Kind() {
- case reflect.Map:
- // Map key must either have string kind, have an integer kind,
- // or be an encoding.TextUnmarshaler.
- switch t.Key().Kind() {
- case reflect.String,
- reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
- reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- default:
- if !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {
- d.saveError(&UnmarshalTypeError{Value: "object", Type: t, Offset: int64(d.off)})
- d.skip()
- return nil
- }
- }
- if v.IsNil() {
- v.Set(reflect.MakeMap(t))
- }
- case reflect.Struct:
- fields = cachedTypeFields(t)
- // ok
- default:
- d.saveError(&UnmarshalTypeError{Value: "object", Type: t, Offset: int64(d.off)})
- d.skip()
- return nil
- }
-
- var mapElem reflect.Value
- var origErrorContext errorContext
- if d.errorContext != nil {
- origErrorContext = *d.errorContext
- }
-
- var keys []string
-
- for {
- // Read opening " of string key or closing }.
- d.scanWhile(scanSkipSpace)
- if d.opcode == scanEndObject {
- // closing } - can only happen on first iteration.
- break
- }
- if d.opcode != scanBeginLiteral {
- panic(phasePanicMsg)
- }
-
- // Read key.
- start := d.readIndex()
- d.rescanLiteral()
- item := d.data[start:d.readIndex()]
- key, ok := unquoteBytes(item)
- if !ok {
- panic(phasePanicMsg)
- }
-
- keys = append(keys, string(key))
-
- // Figure out field corresponding to key.
- var subv reflect.Value
- destring := false // whether the value is wrapped in a string to be decoded first
-
- if v.Kind() == reflect.Map {
- elemType := t.Elem()
- if !mapElem.IsValid() {
- mapElem = reflect.New(elemType).Elem()
- } else {
- mapElem.Set(reflect.Zero(elemType))
- }
- subv = mapElem
- } else {
- var f *field
- if i, ok := fields.nameIndex[string(key)]; ok {
- // Found an exact name match.
- f = &fields.list[i]
- } else {
- // Fall back to the expensive case-insensitive
- // linear search.
- for i := range fields.list {
- ff := &fields.list[i]
- if ff.equalFold(ff.nameBytes, key) {
- f = ff
- break
- }
- }
- }
- if f != nil {
- subv = v
- destring = f.quoted
- for _, i := range f.index {
- if subv.Kind() == reflect.Pointer {
- if subv.IsNil() {
- // If a struct embeds a pointer to an unexported type,
- // it is not possible to set a newly allocated value
- // since the field is unexported.
- //
- // See https://golang.org/issue/21357
- if !subv.CanSet() {
- d.saveError(fmt.Errorf("json: cannot set embedded pointer to unexported struct: %v", subv.Type().Elem()))
- // Invalidate subv to ensure d.value(subv) skips over
- // the JSON value without assigning it to subv.
- subv = reflect.Value{}
- destring = false
- break
- }
- subv.Set(reflect.New(subv.Type().Elem()))
- }
- subv = subv.Elem()
- }
- subv = subv.Field(i)
- }
- if d.errorContext == nil {
- d.errorContext = new(errorContext)
- }
- d.errorContext.FieldStack = append(d.errorContext.FieldStack, f.name)
- d.errorContext.Struct = t
- } else if d.disallowUnknownFields {
- d.saveError(fmt.Errorf("json: unknown field %q", key))
- }
- }
-
- // Read : before value.
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.opcode != scanObjectKey {
- panic(phasePanicMsg)
- }
- d.scanWhile(scanSkipSpace)
-
- if destring {
- switch qv := d.valueQuoted().(type) {
- case nil:
- if err := d.literalStore(nullLiteral, subv, false); err != nil {
- return err
- }
- case string:
- if err := d.literalStore([]byte(qv), subv, true); err != nil {
- return err
- }
- default:
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", subv.Type()))
- }
- } else {
- if err := d.value(subv); err != nil {
- return err
- }
- }
-
- // Write value back to map;
- // if using struct, subv points into struct already.
- if v.Kind() == reflect.Map {
- kt := t.Key()
- var kv reflect.Value
- switch {
- case reflect.PointerTo(kt).Implements(textUnmarshalerType):
- kv = reflect.New(kt)
- if err := d.literalStore(item, kv, true); err != nil {
- return err
- }
- kv = kv.Elem()
- case kt.Kind() == reflect.String:
- kv = reflect.ValueOf(key).Convert(kt)
- default:
- switch kt.Kind() {
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- s := string(key)
- n, err := strconv.ParseInt(s, 10, 64)
- if err != nil || reflect.Zero(kt).OverflowInt(n) {
- d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
- break
- }
- kv = reflect.ValueOf(n).Convert(kt)
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- s := string(key)
- n, err := strconv.ParseUint(s, 10, 64)
- if err != nil || reflect.Zero(kt).OverflowUint(n) {
- d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
- break
- }
- kv = reflect.ValueOf(n).Convert(kt)
- default:
- panic("json: Unexpected key type") // should never occur
- }
- }
- if kv.IsValid() {
- v.SetMapIndex(kv, subv)
- }
- }
-
- // Next token must be , or }.
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.errorContext != nil {
- // Reset errorContext to its original state.
- // Keep the same underlying array for FieldStack, to reuse the
- // space and avoid unnecessary allocs.
- d.errorContext.FieldStack = d.errorContext.FieldStack[:len(origErrorContext.FieldStack)]
- d.errorContext.Struct = origErrorContext.Struct
- }
- if d.opcode == scanEndObject {
- break
- }
- if d.opcode != scanObjectValue {
- panic(phasePanicMsg)
- }
- }
-
- if v.Kind() == reflect.Map {
- d.lastKeys = keys
- }
- return nil
-}
-
-// convertNumber converts the number literal s to a float64 or a Number
-// depending on the setting of d.useNumber.
-func (d *decodeState) convertNumber(s string) (any, error) {
- if d.useNumber {
- return Number(s), nil
- }
- f, err := strconv.ParseFloat(s, 64)
- if err != nil {
- return nil, &UnmarshalTypeError{Value: "number " + s, Type: reflect.TypeOf(0.0), Offset: int64(d.off)}
- }
- return f, nil
-}
-
-var numberType = reflect.TypeOf(Number(""))
-
-// literalStore decodes a literal stored in item into v.
-//
-// fromQuoted indicates whether this literal came from unwrapping a
-// string from the ",string" struct tag option. this is used only to
-// produce more helpful error messages.
-func (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) error {
- // Check for unmarshaler.
- if len(item) == 0 {
- //Empty string given
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
- return nil
- }
- isNull := item[0] == 'n' // null
- u, ut, pv := indirect(v, isNull)
- if u != nil {
- return u.UnmarshalJSON(item)
- }
- if ut != nil {
- if item[0] != '"' {
- if fromQuoted {
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
- return nil
- }
- val := "number"
- switch item[0] {
- case 'n':
- val = "null"
- case 't', 'f':
- val = "bool"
- }
- d.saveError(&UnmarshalTypeError{Value: val, Type: v.Type(), Offset: int64(d.readIndex())})
- return nil
- }
- s, ok := unquoteBytes(item)
- if !ok {
- if fromQuoted {
- return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
- }
- panic(phasePanicMsg)
- }
- return ut.UnmarshalText(s)
- }
-
- v = pv
-
- switch c := item[0]; c {
- case 'n': // null
- // The main parser checks that only true and false can reach here,
- // but if this was a quoted string input, it could be anything.
- if fromQuoted && string(item) != "null" {
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
- break
- }
- switch v.Kind() {
- case reflect.Interface, reflect.Pointer, reflect.Map, reflect.Slice:
- v.Set(reflect.Zero(v.Type()))
- // otherwise, ignore null for primitives/string
- }
- case 't', 'f': // true, false
- value := item[0] == 't'
- // The main parser checks that only true and false can reach here,
- // but if this was a quoted string input, it could be anything.
- if fromQuoted && string(item) != "true" && string(item) != "false" {
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
- break
- }
- switch v.Kind() {
- default:
- if fromQuoted {
- d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
- } else {
- d.saveError(&UnmarshalTypeError{Value: "bool", Type: v.Type(), Offset: int64(d.readIndex())})
- }
- case reflect.Bool:
- v.SetBool(value)
- case reflect.Interface:
- if v.NumMethod() == 0 {
- v.Set(reflect.ValueOf(value))
- } else {
- d.saveError(&UnmarshalTypeError{Value: "bool", Type: v.Type(), Offset: int64(d.readIndex())})
- }
- }
-
- case '"': // string
- s, ok := unquoteBytes(item)
- if !ok {
- if fromQuoted {
- return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
- }
- panic(phasePanicMsg)
- }
- switch v.Kind() {
- default:
- d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
- case reflect.Slice:
- if v.Type().Elem().Kind() != reflect.Uint8 {
- d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
- break
- }
- b := make([]byte, base64.StdEncoding.DecodedLen(len(s)))
- n, err := base64.StdEncoding.Decode(b, s)
- if err != nil {
- d.saveError(err)
- break
- }
- v.SetBytes(b[:n])
- case reflect.String:
- if v.Type() == numberType && !isValidNumber(string(s)) {
- return fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", item)
- }
- v.SetString(string(s))
- case reflect.Interface:
- if v.NumMethod() == 0 {
- v.Set(reflect.ValueOf(string(s)))
- } else {
- d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
- }
- }
-
- default: // number
- if c != '-' && (c < '0' || c > '9') {
- if fromQuoted {
- return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
- }
- panic(phasePanicMsg)
- }
- s := string(item)
- switch v.Kind() {
- default:
- if v.Kind() == reflect.String && v.Type() == numberType {
- // s must be a valid number, because it's
- // already been tokenized.
- v.SetString(s)
- break
- }
- if fromQuoted {
- return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
- }
- d.saveError(&UnmarshalTypeError{Value: "number", Type: v.Type(), Offset: int64(d.readIndex())})
- case reflect.Interface:
- n, err := d.convertNumber(s)
- if err != nil {
- d.saveError(err)
- break
- }
- if v.NumMethod() != 0 {
- d.saveError(&UnmarshalTypeError{Value: "number", Type: v.Type(), Offset: int64(d.readIndex())})
- break
- }
- v.Set(reflect.ValueOf(n))
-
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- n, err := strconv.ParseInt(s, 10, 64)
- if err != nil || v.OverflowInt(n) {
- d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
- break
- }
- v.SetInt(n)
-
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- n, err := strconv.ParseUint(s, 10, 64)
- if err != nil || v.OverflowUint(n) {
- d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
- break
- }
- v.SetUint(n)
-
- case reflect.Float32, reflect.Float64:
- n, err := strconv.ParseFloat(s, v.Type().Bits())
- if err != nil || v.OverflowFloat(n) {
- d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
- break
- }
- v.SetFloat(n)
- }
- }
- return nil
-}
-
-// The xxxInterface routines build up a value to be stored
-// in an empty interface. They are not strictly necessary,
-// but they avoid the weight of reflection in this common case.
-
-// valueInterface is like value but returns interface{}
-func (d *decodeState) valueInterface() (val any) {
- switch d.opcode {
- default:
- panic(phasePanicMsg)
- case scanBeginArray:
- val = d.arrayInterface()
- d.scanNext()
- case scanBeginObject:
- val = d.objectInterface()
- d.scanNext()
- case scanBeginLiteral:
- val = d.literalInterface()
- }
- return
-}
-
-// arrayInterface is like array but returns []interface{}.
-func (d *decodeState) arrayInterface() []any {
- var v = make([]any, 0)
- for {
- // Look ahead for ] - can only happen on first iteration.
- d.scanWhile(scanSkipSpace)
- if d.opcode == scanEndArray {
- break
- }
-
- v = append(v, d.valueInterface())
-
- // Next token must be , or ].
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.opcode == scanEndArray {
- break
- }
- if d.opcode != scanArrayValue {
- panic(phasePanicMsg)
- }
- }
- return v
-}
-
-// objectInterface is like object but returns map[string]interface{}.
-func (d *decodeState) objectInterface() map[string]any {
- m := make(map[string]any)
- for {
- // Read opening " of string key or closing }.
- d.scanWhile(scanSkipSpace)
- if d.opcode == scanEndObject {
- // closing } - can only happen on first iteration.
- break
- }
- if d.opcode != scanBeginLiteral {
- panic(phasePanicMsg)
- }
-
- // Read string key.
- start := d.readIndex()
- d.rescanLiteral()
- item := d.data[start:d.readIndex()]
- key, ok := unquote(item)
- if !ok {
- panic(phasePanicMsg)
- }
-
- // Read : before value.
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.opcode != scanObjectKey {
- panic(phasePanicMsg)
- }
- d.scanWhile(scanSkipSpace)
-
- // Read value.
- m[key] = d.valueInterface()
-
- // Next token must be , or }.
- if d.opcode == scanSkipSpace {
- d.scanWhile(scanSkipSpace)
- }
- if d.opcode == scanEndObject {
- break
- }
- if d.opcode != scanObjectValue {
- panic(phasePanicMsg)
- }
- }
- return m
-}
-
-// literalInterface consumes and returns a literal from d.data[d.off-1:] and
-// it reads the following byte ahead. The first byte of the literal has been
-// read already (that's how the caller knows it's a literal).
-func (d *decodeState) literalInterface() any {
- // All bytes inside literal return scanContinue op code.
- start := d.readIndex()
- d.rescanLiteral()
-
- item := d.data[start:d.readIndex()]
-
- switch c := item[0]; c {
- case 'n': // null
- return nil
-
- case 't', 'f': // true, false
- return c == 't'
-
- case '"': // string
- s, ok := unquote(item)
- if !ok {
- panic(phasePanicMsg)
- }
- return s
-
- default: // number
- if c != '-' && (c < '0' || c > '9') {
- panic(phasePanicMsg)
- }
- n, err := d.convertNumber(string(item))
- if err != nil {
- d.saveError(err)
- }
- return n
- }
-}
-
-// getu4 decodes \uXXXX from the beginning of s, returning the hex value,
-// or it returns -1.
-func getu4(s []byte) rune {
- if len(s) < 6 || s[0] != '\\' || s[1] != 'u' {
- return -1
- }
- var r rune
- for _, c := range s[2:6] {
- switch {
- case '0' <= c && c <= '9':
- c = c - '0'
- case 'a' <= c && c <= 'f':
- c = c - 'a' + 10
- case 'A' <= c && c <= 'F':
- c = c - 'A' + 10
- default:
- return -1
- }
- r = r*16 + rune(c)
- }
- return r
-}
-
-// unquote converts a quoted JSON string literal s into an actual string t.
-// The rules are different than for Go, so cannot use strconv.Unquote.
-func unquote(s []byte) (t string, ok bool) {
- s, ok = unquoteBytes(s)
- t = string(s)
- return
-}
-
-func unquoteBytes(s []byte) (t []byte, ok bool) {
- if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' {
- return
- }
- s = s[1 : len(s)-1]
-
- // Check for unusual characters. If there are none,
- // then no unquoting is needed, so return a slice of the
- // original bytes.
- r := 0
- for r < len(s) {
- c := s[r]
- if c == '\\' || c == '"' || c < ' ' {
- break
- }
- if c < utf8.RuneSelf {
- r++
- continue
- }
- rr, size := utf8.DecodeRune(s[r:])
- if rr == utf8.RuneError && size == 1 {
- break
- }
- r += size
- }
- if r == len(s) {
- return s, true
- }
-
- b := make([]byte, len(s)+2*utf8.UTFMax)
- w := copy(b, s[0:r])
- for r < len(s) {
- // Out of room? Can only happen if s is full of
- // malformed UTF-8 and we're replacing each
- // byte with RuneError.
- if w >= len(b)-2*utf8.UTFMax {
- nb := make([]byte, (len(b)+utf8.UTFMax)*2)
- copy(nb, b[0:w])
- b = nb
- }
- switch c := s[r]; {
- case c == '\\':
- r++
- if r >= len(s) {
- return
- }
- switch s[r] {
- default:
- return
- case '"', '\\', '/', '\'':
- b[w] = s[r]
- r++
- w++
- case 'b':
- b[w] = '\b'
- r++
- w++
- case 'f':
- b[w] = '\f'
- r++
- w++
- case 'n':
- b[w] = '\n'
- r++
- w++
- case 'r':
- b[w] = '\r'
- r++
- w++
- case 't':
- b[w] = '\t'
- r++
- w++
- case 'u':
- r--
- rr := getu4(s[r:])
- if rr < 0 {
- return
- }
- r += 6
- if utf16.IsSurrogate(rr) {
- rr1 := getu4(s[r:])
- if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {
- // A valid pair; consume.
- r += 6
- w += utf8.EncodeRune(b[w:], dec)
- break
- }
- // Invalid surrogate; fall back to replacement rune.
- rr = unicode.ReplacementChar
- }
- w += utf8.EncodeRune(b[w:], rr)
- }
-
- // Quote, control characters are invalid.
- case c == '"', c < ' ':
- return
-
- // ASCII
- case c < utf8.RuneSelf:
- b[w] = c
- r++
- w++
-
- // Coerce to well-formed UTF-8.
- default:
- rr, size := utf8.DecodeRune(s[r:])
- r += size
- w += utf8.EncodeRune(b[w:], rr)
- }
- }
- return b[0:w], true
-}
diff --git a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go b/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go
deleted file mode 100644
index 2e6eca44..00000000
--- a/upstream/image/git-init/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go
+++ /dev/null
@@ -1,1486 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package json implements encoding and decoding of JSON as defined in
-// RFC 7159. The mapping between JSON and Go values is described
-// in the documentation for the Marshal and Unmarshal functions.
-//
-// See "JSON and Go" for an introduction to this package:
-// https://golang.org/doc/articles/json_and_go.html
-package json
-
-import (
- "bytes"
- "encoding"
- "encoding/base64"
- "fmt"
- "math"
- "reflect"
- "sort"
- "strconv"
- "strings"
- "sync"
- "unicode"
- "unicode/utf8"
-)
-
-// Marshal returns the JSON encoding of v.
-//
-// Marshal traverses the value v recursively.
-// If an encountered value implements the Marshaler interface
-// and is not a nil pointer, Marshal calls its MarshalJSON method
-// to produce JSON. If no MarshalJSON method is present but the
-// value implements encoding.TextMarshaler instead, Marshal calls
-// its MarshalText method and encodes the result as a JSON string.
-// The nil pointer exception is not strictly necessary
-// but mimics a similar, necessary exception in the behavior of
-// UnmarshalJSON.
-//
-// Otherwise, Marshal uses the following type-dependent default encodings:
-//
-// Boolean values encode as JSON booleans.
-//
-// Floating point, integer, and Number values encode as JSON numbers.
-//
-// String values encode as JSON strings coerced to valid UTF-8,
-// replacing invalid bytes with the Unicode replacement rune.
-// So that the JSON will be safe to embed inside HTML