From 4b812343956e9aa4dd24f17df6ae08a783ecd252 Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Fri, 15 May 2020 11:06:23 +1000 Subject: [PATCH 01/96] Initial fork --- .github/ISSUE_TEMPLATE.md | 2 +- CHANGELOG.md | 688 +++++++++++++++---------------- CONTRIBUTING.md | 6 +- Makefile | 2 +- README.md | 16 +- cmd/liquid/main.go | 2 +- engine.go | 8 +- engine_examples_test.go | 2 +- evaluator/evaluator.go | 2 +- expressions/builders.go | 2 +- expressions/context.go | 2 +- expressions/expressions.go | 2 +- expressions/expressions.y | 2 +- expressions/filters.go | 2 +- expressions/filters_test.go | 2 +- expressions/parser.go | 2 +- expressions/y.go | 82 ++-- filters/sort_filters.go | 2 +- filters/standard_filters.go | 2 +- filters/standard_filters_test.go | 2 +- go.mod | 10 + go.sum | 31 ++ liquid.go | 6 +- parser/ast.go | 2 +- parser/config.go | 2 +- parser/parser.go | 2 +- render/blocks.go | 2 +- render/compiler.go | 2 +- render/compiler_test.go | 2 +- render/config.go | 2 +- render/context.go | 2 +- render/context_test.go | 2 +- render/error.go | 2 +- render/node_context.go | 2 +- render/nodes.go | 4 +- render/render.go | 2 +- render/render_test.go | 2 +- tags/control_flow_tags.go | 6 +- tags/control_flow_tags_test.go | 4 +- tags/include_tag.go | 2 +- tags/include_tag_test.go | 4 +- tags/iteration_tags.go | 4 +- tags/iteration_tags_test.go | 4 +- tags/standard_tags.go | 4 +- tags/standard_tags_test.go | 4 +- template.go | 4 +- template_test.go | 2 +- 47 files changed, 494 insertions(+), 451 deletions(-) create mode 100644 go.mod create mode 100644 go.sum diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index bb8681bc..a6630f10 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,6 +1,6 @@ ## Checklist -- [ ] I have searched the [issue list](https://github.com/osteele/liquid/issues) +- [ ] I have searched the [issue list](https://github.com/autopilot3/liquid/issues) - [ ] I have tested my example against Shopify Liquid. (This isn't necessary if the actual behavior is a panic, or an error for which `IsTemplateError` returns false.) ## Expected Behavior diff --git a/CHANGELOG.md b/CHANGELOG.md index e0673eed..9ad0ea38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,406 +1,406 @@ ## 1.2.4 (2018-06-05) Contributors: -* @nsf — proper handling of [variadic functions](https://github.com/osteele/liquid/commit/1a2066b87e06ffc189c6cf8671893d4fdba2e607), [implicit conversion to integer types](https://github.com/osteele/liquid/commit/4354d48a0460b6bdebdb6b462abce0ea94f50fa8), and [error handling during expression evaluation](https://github.com/osteele/liquid/commit/c32908a4f3ef1425b3f73530a7de2412e0613c78) +* @nsf — proper handling of [variadic functions](https://github.com/autopilot3/liquid/commit/1a2066b87e06ffc189c6cf8671893d4fdba2e607), [implicit conversion to integer types](https://github.com/autopilot3/liquid/commit/4354d48a0460b6bdebdb6b462abce0ea94f50fa8), and [error handling during expression evaluation](https://github.com/autopilot3/liquid/commit/c32908a4f3ef1425b3f73530a7de2412e0613c78) * @osteele – docs and infrastructure ### Bug Fixes and Compatibility -* Returning proper error type causes less panics during expression eval. ([c32908a](https://github.com/osteele/liquid/commit/c32908a)) -* Properly handle implicit conversion to integer types. ([4354d48](https://github.com/osteele/liquid/commit/4354d48)) -* Properly handle variadic functions. ([1a2066b](https://github.com/osteele/liquid/commit/1a2066b)) -* map[unhashable] returns nil instead of panic ([b6c65ff](https://github.com/osteele/liquid/commit/b6c65ff)) -* join filter: default sep is space; omit nil entries ([cb6efbf](https://github.com/osteele/liquid/commit/cb6efbf)) -* Match Ruby string split semantics ([8874615](https://github.com/osteele/liquid/commit/8874615)) -* Convert MapSlice -> map ([1a12f12](https://github.com/osteele/liquid/commit/1a12f12)) -* list filters operate on MapSlice ([bb24f32](https://github.com/osteele/liquid/commit/bb24f32)) +* Returning proper error type causes less panics during expression eval. ([c32908a](https://github.com/autopilot3/liquid/commit/c32908a)) +* Properly handle implicit conversion to integer types. ([4354d48](https://github.com/autopilot3/liquid/commit/4354d48)) +* Properly handle variadic functions. ([1a2066b](https://github.com/autopilot3/liquid/commit/1a2066b)) +* map[unhashable] returns nil instead of panic ([b6c65ff](https://github.com/autopilot3/liquid/commit/b6c65ff)) +* join filter: default sep is space; omit nil entries ([cb6efbf](https://github.com/autopilot3/liquid/commit/cb6efbf)) +* Match Ruby string split semantics ([8874615](https://github.com/autopilot3/liquid/commit/8874615)) +* Convert MapSlice -> map ([1a12f12](https://github.com/autopilot3/liquid/commit/1a12f12)) +* list filters operate on MapSlice ([bb24f32](https://github.com/autopilot3/liquid/commit/bb24f32)) ### Docs -* Re-organize README ([dbf0f7d](https://github.com/osteele/liquid/commit/dbf0f7d)) -* Add Contributors section; add nsf as contributor; adopt All Contributors and all-contributors-cli ([d2be34e](https://github.com/osteele/liquid/commit/d2be34e)) -* Minor formatting fixes in the README ([aadc886](https://github.com/osteele/liquid/commit/aadc886)) +* Re-organize README ([dbf0f7d](https://github.com/autopilot3/liquid/commit/dbf0f7d)) +* Add Contributors section; add nsf as contributor; adopt All Contributors and all-contributors-cli ([d2be34e](https://github.com/autopilot3/liquid/commit/d2be34e)) +* Minor formatting fixes in the README ([aadc886](https://github.com/autopilot3/liquid/commit/aadc886)) ### Test Coverage -* Add Convert tests ([a50dc10](https://github.com/osteele/liquid/commit/a50dc10)) +* Add Convert tests ([a50dc10](https://github.com/autopilot3/liquid/commit/a50dc10)) ### Build and CI -* Add make pre-commit; lint before testing ([6e1f41e](https://github.com/osteele/liquid/commit/6e1f41e)) -* Add go 1.9 to travis build matrix ([ba2ecf9](https://github.com/osteele/liquid/commit/ba2ecf9)) -* Travis: add go 1.10; drop 1.8 ([e30a0e2](https://github.com/osteele/liquid/commit/e30a0e2)) +* Add make pre-commit; lint before testing ([6e1f41e](https://github.com/autopilot3/liquid/commit/6e1f41e)) +* Add go 1.9 to travis build matrix ([ba2ecf9](https://github.com/autopilot3/liquid/commit/ba2ecf9)) +* Travis: add go 1.10; drop 1.8 ([e30a0e2](https://github.com/autopilot3/liquid/commit/e30a0e2)) ### Code Internals -* Follow go style guide re declaring empty slices ([a02d9e1](https://github.com/osteele/liquid/commit/a02d9e1)) -* variable names ([d27c839](https://github.com/osteele/liquid/commit/d27c839)) -* variable names ([e1c7224](https://github.com/osteele/liquid/commit/e1c7224)) -* Remove errant file ([3811e16](https://github.com/osteele/liquid/commit/3811e16)) +* Follow go style guide re declaring empty slices ([a02d9e1](https://github.com/autopilot3/liquid/commit/a02d9e1)) +* variable names ([d27c839](https://github.com/autopilot3/liquid/commit/d27c839)) +* variable names ([e1c7224](https://github.com/autopilot3/liquid/commit/e1c7224)) +* Remove errant file ([3811e16](https://github.com/autopilot3/liquid/commit/3811e16)) ## 1.2.3 (2017-08-18) -* Default time format is compatible w/ Liquid ([5ebf31a](https://github.com/osteele/liquid/commit/5ebf31a)) -* Define IterationKeyedMap ([4bc4c8a](https://github.com/osteele/liquid/commit/4bc4c8a)) -* Move strftime to a separate repo ([cdb0e44](https://github.com/osteele/liquid/commit/cdb0e44)) -* Nil pointers are equal, even if different types ([fd4d34c](https://github.com/osteele/liquid/commit/fd4d34c)) -* Rearrange tests ([804e3d6](https://github.com/osteele/liquid/commit/804e3d6)) -* Rearrange value methods w/in file ([62f44fa](https://github.com/osteele/liquid/commit/62f44fa)) -* Rename rbstrftime package ([c49d979](https://github.com/osteele/liquid/commit/c49d979)) -* Tests; implement map[nil] ([6b15fbf](https://github.com/osteele/liquid/commit/6b15fbf)) +* Default time format is compatible w/ Liquid ([5ebf31a](https://github.com/autopilot3/liquid/commit/5ebf31a)) +* Define IterationKeyedMap ([4bc4c8a](https://github.com/autopilot3/liquid/commit/4bc4c8a)) +* Move strftime to a separate repo ([cdb0e44](https://github.com/autopilot3/liquid/commit/cdb0e44)) +* Nil pointers are equal, even if different types ([fd4d34c](https://github.com/autopilot3/liquid/commit/fd4d34c)) +* Rearrange tests ([804e3d6](https://github.com/autopilot3/liquid/commit/804e3d6)) +* Rearrange value methods w/in file ([62f44fa](https://github.com/autopilot3/liquid/commit/62f44fa)) +* Rename rbstrftime package ([c49d979](https://github.com/autopilot3/liquid/commit/c49d979)) +* Tests; implement map[nil] ([6b15fbf](https://github.com/autopilot3/liquid/commit/6b15fbf)) ## 1.2.2 (2017-08-08) ### Bug Fixes -* Fix array[nil] ([e39a1fe](https://github.com/osteele/liquid/commit/e39a1fe)) -* Fix file not found tests for Windows ([068afef](https://github.com/osteele/liquid/commit/068afef)) -* Restore m['str'] where m map[interface{}]interface{} ([9852226](https://github.com/osteele/liquid/commit/9852226)) +* Fix array[nil] ([e39a1fe](https://github.com/autopilot3/liquid/commit/e39a1fe)) +* Fix file not found tests for Windows ([068afef](https://github.com/autopilot3/liquid/commit/068afef)) +* Restore m['str'] where m map[interface{}]interface{} ([9852226](https://github.com/autopilot3/liquid/commit/9852226)) ### Docs -* More drop examples ([c50491f](https://github.com/osteele/liquid/commit/c50491f)) -* Package docs ([51d7166](https://github.com/osteele/liquid/commit/51d7166)) +* More drop examples ([c50491f](https://github.com/autopilot3/liquid/commit/c50491f)) +* Package docs ([51d7166](https://github.com/autopilot3/liquid/commit/51d7166)) ### Tests -* Beefy strftime tests ([4a2c4b4](https://github.com/osteele/liquid/commit/4a2c4b4)) +* Beefy strftime tests ([4a2c4b4](https://github.com/autopilot3/liquid/commit/4a2c4b4)) ### Build and CI -* README: add Appveyor badge ([0adf6e7](https://github.com/osteele/liquid/commit/0adf6e7)) -* Appveyor: remove mingw ([1b3e55a](https://github.com/osteele/liquid/commit/1b3e55a)) +* README: add Appveyor badge ([0adf6e7](https://github.com/autopilot3/liquid/commit/0adf6e7)) +* Appveyor: remove mingw ([1b3e55a](https://github.com/autopilot3/liquid/commit/1b3e55a)) ### Code Internals -* Remove (commented-out) Strptime and tests ([8d53a6b](https://github.com/osteele/liquid/commit/8d53a6b)) -* Replace extern "C" strftime by go implementation ([85bd1dd](https://github.com/osteele/liquid/commit/85bd1dd)) +* Remove (commented-out) Strptime and tests ([8d53a6b](https://github.com/autopilot3/liquid/commit/8d53a6b)) +* Replace extern "C" strftime by go implementation ([85bd1dd](https://github.com/autopilot3/liquid/commit/85bd1dd)) ## 1.2.1 (2017-08-03) Contributors: @osteele, @thessem -* "type" filters works on nil ([96307fa](https://github.com/osteele/liquid/commit/96307fa)) -* Actually cache the drop resolution ([83652f5](https://github.com/osteele/liquid/commit/83652f5)) -* Add comments and update tests ([dd4d967](https://github.com/osteele/liquid/commit/dd4d967)) -* Add engine.ParseString ([5151799](https://github.com/osteele/liquid/commit/5151799)) -* Add forwarders from evaluator pkg ([fb70314](https://github.com/osteele/liquid/commit/fb70314)) -* Add setting to customise delimiters ([9dd9191](https://github.com/osteele/liquid/commit/9dd9191)) -* Add some tests ([a07e5fa](https://github.com/osteele/liquid/commit/a07e5fa)) -* Add test ([3d99b41](https://github.com/osteele/liquid/commit/3d99b41)) -* Add top-level test cases for &map, struct ([f670bfc](https://github.com/osteele/liquid/commit/f670bfc)), closes [#23](https://github.com/osteele/liquid/issues/23) -* Allow value to be a pointer ([222559a](https://github.com/osteele/liquid/commit/222559a)) -* Benchmarks ([023fca4](https://github.com/osteele/liquid/commit/023fca4)) -* Change name of repository in README to liquid from goliquid ([08cf333](https://github.com/osteele/liquid/commit/08cf333)) -* Consolidate {expressions,values}/drops.go ([516182a](https://github.com/osteele/liquid/commit/516182a)) -* Document values, includng new struct behavior ([1bc9726](https://github.com/osteele/liquid/commit/1bc9726)) -* Fix struct PropertyValue attempting to use an invalid pointer ([b2f5f1f](https://github.com/osteele/liquid/commit/b2f5f1f)) -* gitgnore *.test ([605d883](https://github.com/osteele/liquid/commit/605d883)) -* Implement #11 contains on hashes ([1b0f0cf](https://github.com/osteele/liquid/commit/1b0f0cf)), closes [#11](https://github.com/osteele/liquid/issues/11) -* make lint includes tests ([dd0fcda](https://github.com/osteele/liquid/commit/dd0fcda)) -* Match Liquid/Ruby array[float] ([fa5de60](https://github.com/osteele/liquid/commit/fa5de60)) -* Move pkg evaluator -> values ([6269836](https://github.com/osteele/liquid/commit/6269836)) -* Move structValue to own file ([bbdb40e](https://github.com/osteele/liquid/commit/bbdb40e)) -* Obey struct field tags ([303027b](https://github.com/osteele/liquid/commit/303027b)) -* Property access to struct pointers ([de5fffa](https://github.com/osteele/liquid/commit/de5fffa)) -* Property access to struct values ([2cdd59d](https://github.com/osteele/liquid/commit/2cdd59d)) -* Pull loop renderer into separate method ([eac67c3](https://github.com/osteele/liquid/commit/eac67c3)) -* Race condition ([9866cbf](https://github.com/osteele/liquid/commit/9866cbf)) -* Race test, benchmarks, for drop resolution ([7f501ce](https://github.com/osteele/liquid/commit/7f501ce)) -* Recognize yaml.MapSlice as a value ([46807c4](https://github.com/osteele/liquid/commit/46807c4)) -* remove fmt.Stringer render case ([474edc1](https://github.com/osteele/liquid/commit/474edc1)) -* Remove generic Index, ObjectProperty ([8040e9e](https://github.com/osteele/liquid/commit/8040e9e)) -* Remove obsolete generic predicates ([cf54755](https://github.com/osteele/liquid/commit/cf54755)) -* Remove obsolete note re Awesome Go ([df3f7b2](https://github.com/osteele/liquid/commit/df3f7b2)) -* Return errors applying filters as Render errors ([8ee8cef](https://github.com/osteele/liquid/commit/8ee8cef)) -* Store original stacktrace in re-thrown errors ([a1c5927](https://github.com/osteele/liquid/commit/a1c5927)) -* Support delimiters of any length ([b7ef67f](https://github.com/osteele/liquid/commit/b7ef67f)) -* Support registering variadic functions as filters ([82a1a6e](https://github.com/osteele/liquid/commit/82a1a6e)) -* teach iteration about MapSlice ([306be63](https://github.com/osteele/liquid/commit/306be63)) -* Test cases for new code ([17def25](https://github.com/osteele/liquid/commit/17def25)) -* test liquid:"-", not liquid:"" (both work, though) ([7634673](https://github.com/osteele/liquid/commit/7634673)) -* Tests ([fd230ed](https://github.com/osteele/liquid/commit/fd230ed)) -* Treat []byte as string, for some purposes ([fd7b1f0](https://github.com/osteele/liquid/commit/fd7b1f0)) -* Value layer recognizes, resolves drops ([560c55e](https://github.com/osteele/liquid/commit/560c55e)) -* Wrap values instead of using generic functions ([85cd6c9](https://github.com/osteele/liquid/commit/85cd6c9)) +* "type" filters works on nil ([96307fa](https://github.com/autopilot3/liquid/commit/96307fa)) +* Actually cache the drop resolution ([83652f5](https://github.com/autopilot3/liquid/commit/83652f5)) +* Add comments and update tests ([dd4d967](https://github.com/autopilot3/liquid/commit/dd4d967)) +* Add engine.ParseString ([5151799](https://github.com/autopilot3/liquid/commit/5151799)) +* Add forwarders from evaluator pkg ([fb70314](https://github.com/autopilot3/liquid/commit/fb70314)) +* Add setting to customise delimiters ([9dd9191](https://github.com/autopilot3/liquid/commit/9dd9191)) +* Add some tests ([a07e5fa](https://github.com/autopilot3/liquid/commit/a07e5fa)) +* Add test ([3d99b41](https://github.com/autopilot3/liquid/commit/3d99b41)) +* Add top-level test cases for &map, struct ([f670bfc](https://github.com/autopilot3/liquid/commit/f670bfc)), closes [#23](https://github.com/autopilot3/liquid/issues/23) +* Allow value to be a pointer ([222559a](https://github.com/autopilot3/liquid/commit/222559a)) +* Benchmarks ([023fca4](https://github.com/autopilot3/liquid/commit/023fca4)) +* Change name of repository in README to liquid from goliquid ([08cf333](https://github.com/autopilot3/liquid/commit/08cf333)) +* Consolidate {expressions,values}/drops.go ([516182a](https://github.com/autopilot3/liquid/commit/516182a)) +* Document values, includng new struct behavior ([1bc9726](https://github.com/autopilot3/liquid/commit/1bc9726)) +* Fix struct PropertyValue attempting to use an invalid pointer ([b2f5f1f](https://github.com/autopilot3/liquid/commit/b2f5f1f)) +* gitgnore *.test ([605d883](https://github.com/autopilot3/liquid/commit/605d883)) +* Implement #11 contains on hashes ([1b0f0cf](https://github.com/autopilot3/liquid/commit/1b0f0cf)), closes [#11](https://github.com/autopilot3/liquid/issues/11) +* make lint includes tests ([dd0fcda](https://github.com/autopilot3/liquid/commit/dd0fcda)) +* Match Liquid/Ruby array[float] ([fa5de60](https://github.com/autopilot3/liquid/commit/fa5de60)) +* Move pkg evaluator -> values ([6269836](https://github.com/autopilot3/liquid/commit/6269836)) +* Move structValue to own file ([bbdb40e](https://github.com/autopilot3/liquid/commit/bbdb40e)) +* Obey struct field tags ([303027b](https://github.com/autopilot3/liquid/commit/303027b)) +* Property access to struct pointers ([de5fffa](https://github.com/autopilot3/liquid/commit/de5fffa)) +* Property access to struct values ([2cdd59d](https://github.com/autopilot3/liquid/commit/2cdd59d)) +* Pull loop renderer into separate method ([eac67c3](https://github.com/autopilot3/liquid/commit/eac67c3)) +* Race condition ([9866cbf](https://github.com/autopilot3/liquid/commit/9866cbf)) +* Race test, benchmarks, for drop resolution ([7f501ce](https://github.com/autopilot3/liquid/commit/7f501ce)) +* Recognize yaml.MapSlice as a value ([46807c4](https://github.com/autopilot3/liquid/commit/46807c4)) +* remove fmt.Stringer render case ([474edc1](https://github.com/autopilot3/liquid/commit/474edc1)) +* Remove generic Index, ObjectProperty ([8040e9e](https://github.com/autopilot3/liquid/commit/8040e9e)) +* Remove obsolete generic predicates ([cf54755](https://github.com/autopilot3/liquid/commit/cf54755)) +* Remove obsolete note re Awesome Go ([df3f7b2](https://github.com/autopilot3/liquid/commit/df3f7b2)) +* Return errors applying filters as Render errors ([8ee8cef](https://github.com/autopilot3/liquid/commit/8ee8cef)) +* Store original stacktrace in re-thrown errors ([a1c5927](https://github.com/autopilot3/liquid/commit/a1c5927)) +* Support delimiters of any length ([b7ef67f](https://github.com/autopilot3/liquid/commit/b7ef67f)) +* Support registering variadic functions as filters ([82a1a6e](https://github.com/autopilot3/liquid/commit/82a1a6e)) +* teach iteration about MapSlice ([306be63](https://github.com/autopilot3/liquid/commit/306be63)) +* Test cases for new code ([17def25](https://github.com/autopilot3/liquid/commit/17def25)) +* test liquid:"-", not liquid:"" (both work, though) ([7634673](https://github.com/autopilot3/liquid/commit/7634673)) +* Tests ([fd230ed](https://github.com/autopilot3/liquid/commit/fd230ed)) +* Treat []byte as string, for some purposes ([fd7b1f0](https://github.com/autopilot3/liquid/commit/fd7b1f0)) +* Value layer recognizes, resolves drops ([560c55e](https://github.com/autopilot3/liquid/commit/560c55e)) +* Wrap values instead of using generic functions ([85cd6c9](https://github.com/autopilot3/liquid/commit/85cd6c9)) ## 1.1.2 (2017-07-20) -* Coverage ([023536f](https://github.com/osteele/liquid/commit/023536f)) -* Coverage ([27580ca](https://github.com/osteele/liquid/commit/27580ca)) -* Coverage ([413b328](https://github.com/osteele/liquid/commit/413b328)) -* Coverage ([a78d95d](https://github.com/osteele/liquid/commit/a78d95d)) -* Lint ([dde3ea7](https://github.com/osteele/liquid/commit/dde3ea7)) -* Lint ([73f0fef](https://github.com/osteele/liquid/commit/73f0fef)) -* make lint enables gofmt ([510b0cb](https://github.com/osteele/liquid/commit/510b0cb)) -* Remove quote from README ([5f79cf1](https://github.com/osteele/liquid/commit/5f79cf1)) -* Rename parse error -> syntax error ([7af399a](https://github.com/osteele/liquid/commit/7af399a)) -* Update expressions.y ParseError -> SyntaxError ([17c5c9c](https://github.com/osteele/liquid/commit/17c5c9c)) +* Coverage ([023536f](https://github.com/autopilot3/liquid/commit/023536f)) +* Coverage ([27580ca](https://github.com/autopilot3/liquid/commit/27580ca)) +* Coverage ([413b328](https://github.com/autopilot3/liquid/commit/413b328)) +* Coverage ([a78d95d](https://github.com/autopilot3/liquid/commit/a78d95d)) +* Lint ([dde3ea7](https://github.com/autopilot3/liquid/commit/dde3ea7)) +* Lint ([73f0fef](https://github.com/autopilot3/liquid/commit/73f0fef)) +* make lint enables gofmt ([510b0cb](https://github.com/autopilot3/liquid/commit/510b0cb)) +* Remove quote from README ([5f79cf1](https://github.com/autopilot3/liquid/commit/5f79cf1)) +* Rename parse error -> syntax error ([7af399a](https://github.com/autopilot3/liquid/commit/7af399a)) +* Update expressions.y ParseError -> SyntaxError ([17c5c9c](https://github.com/autopilot3/liquid/commit/17c5c9c)) ## 1.1.1 (2017-07-17) -* Iterating over hash yields [key, value] pairs ([67cb2e0](https://github.com/osteele/liquid/commit/67cb2e0)) -* Quote tag names in error messages ([2c497e3](https://github.com/osteele/liquid/commit/2c497e3)) +* Iterating over hash yields [key, value] pairs ([67cb2e0](https://github.com/autopilot3/liquid/commit/67cb2e0)) +* Quote tag names in error messages ([2c497e3](https://github.com/autopilot3/liquid/commit/2c497e3)) ## 1.1.0 (2017-07-16) -* CLI script to run shopify liquid for cf. ([534c0e3](https://github.com/osteele/liquid/commit/534c0e3)) -* Disable interfacer linter :frowning: ([6701199](https://github.com/osteele/liquid/commit/6701199)) -* Implement whitespace control ([f9ac12b](https://github.com/osteele/liquid/commit/f9ac12b)) -* Numbers can't start or end with a dot ([f1412b6](https://github.com/osteele/liquid/commit/f1412b6)) -* README ([9fe6a96](https://github.com/osteele/liquid/commit/9fe6a96)) -* README filters and variables ([cfc8a8c](https://github.com/osteele/liquid/commit/cfc8a8c)) -* Report the line only if != 0 ([af93d57](https://github.com/osteele/liquid/commit/af93d57)) -* Scan whitespace control ([bf43fb8](https://github.com/osteele/liquid/commit/bf43fb8)) -* Warn on too many filter args ([de4f81d](https://github.com/osteele/liquid/commit/de4f81d)) -* Whitespace control uses byte.Buffer ([dd49b22](https://github.com/osteele/liquid/commit/dd49b22)) +* CLI script to run shopify liquid for cf. ([534c0e3](https://github.com/autopilot3/liquid/commit/534c0e3)) +* Disable interfacer linter :frowning: ([6701199](https://github.com/autopilot3/liquid/commit/6701199)) +* Implement whitespace control ([f9ac12b](https://github.com/autopilot3/liquid/commit/f9ac12b)) +* Numbers can't start or end with a dot ([f1412b6](https://github.com/autopilot3/liquid/commit/f1412b6)) +* README ([9fe6a96](https://github.com/autopilot3/liquid/commit/9fe6a96)) +* README filters and variables ([cfc8a8c](https://github.com/autopilot3/liquid/commit/cfc8a8c)) +* Report the line only if != 0 ([af93d57](https://github.com/autopilot3/liquid/commit/af93d57)) +* Scan whitespace control ([bf43fb8](https://github.com/autopilot3/liquid/commit/bf43fb8)) +* Warn on too many filter args ([de4f81d](https://github.com/autopilot3/liquid/commit/de4f81d)) +* Whitespace control uses byte.Buffer ([dd49b22](https://github.com/autopilot3/liquid/commit/dd49b22)) ## 1.0.0 (2017-07-16) -* Add appveyor.yml ([06e0833](https://github.com/osteele/liquid/commit/06e0833)) -* Add expression.ParseStatement, statement selector literals ([c864f3c](https://github.com/osteele/liquid/commit/c864f3c)) -* Add FromDrop func ([8efaada](https://github.com/osteele/liquid/commit/8efaada)) -* Add ParseTemplateLocation ([16c3b6e](https://github.com/osteele/liquid/commit/16c3b6e)) -* Allow float index into array ([247c1b1](https://github.com/osteele/liquid/commit/247c1b1)) -* Close #18 loop range ([271f637](https://github.com/osteele/liquid/commit/271f637)), closes [#18](https://github.com/osteele/liquid/issues/18) -* Combine CompilationError -> parser.Error ([816b46a](https://github.com/osteele/liquid/commit/816b46a)) -* Complete #14 and #15 url{en,de}code filters ([2e5cc60](https://github.com/osteele/liquid/commit/2e5cc60)), closes [#14](https://github.com/osteele/liquid/issues/14) [#15](https://github.com/osteele/liquid/issues/15) -* Complete #17 sort_natural filter ([3c242c4](https://github.com/osteele/liquid/commit/3c242c4)), closes [#17](https://github.com/osteele/liquid/issues/17) -* Complete #19 when a or b ([2880ef4](https://github.com/osteele/liquid/commit/2880ef4)), closes [#19](https://github.com/osteele/liquid/issues/19) -* Complete #4 case…else ([26bdd09](https://github.com/osteele/liquid/commit/26bdd09)), closes [#4](https://github.com/osteele/liquid/issues/4) -* Consolidate render.Error -> parser.Error ([198f6bf](https://github.com/osteele/liquid/commit/198f6bf)) -* Coverage ([a2a4a1a](https://github.com/osteele/liquid/commit/a2a4a1a)) -* Coverage ([d6d6929](https://github.com/osteele/liquid/commit/d6d6929)) -* Coverage ([29c902f](https://github.com/osteele/liquid/commit/29c902f)) -* Cycle uses Statement; steps towards cycle groups ([7444118](https://github.com/osteele/liquid/commit/7444118)) -* docs ([4317bfc](https://github.com/osteele/liquid/commit/4317bfc)) -* Error.Filename -> Path ([b95775c](https://github.com/osteele/liquid/commit/b95775c)) -* fun w/ time zones ([4163dfa](https://github.com/osteele/liquid/commit/4163dfa)) -* Implement #15 truncate_words filter ([fdfc5d3](https://github.com/osteele/liquid/commit/fdfc5d3)), closes [#15](https://github.com/osteele/liquid/issues/15) -* Implement tablerow ([cd23447](https://github.com/osteele/liquid/commit/cd23447)) -* Improve strftime error test ([55cf56e](https://github.com/osteele/liquid/commit/55cf56e)) -* Loop uses the statement record ([110fee6](https://github.com/osteele/liquid/commit/110fee6)) -* Make harmless iterating over value ([bad5593](https://github.com/osteele/liquid/commit/bad5593)) -* make install-dev-tools -> setup ([0808c10](https://github.com/osteele/liquid/commit/0808c10)) -* make setup installs dependencies ([68a3e9b](https://github.com/osteele/liquid/commit/68a3e9b)) -* Move control flow tags to separate file ([c3c9de7](https://github.com/osteele/liquid/commit/c3c9de7)) -* Move interpreter ops into evaluator package ([c11cf2a](https://github.com/osteele/liquid/commit/c11cf2a)) -* Move package expression -> expressions ([6ff5721](https://github.com/osteele/liquid/commit/6ff5721)) -* New ParseStatement returns record with different statement parse types ([8964daf](https://github.com/osteele/liquid/commit/8964daf)) -* Parse in local time; switch to stdlib strftime ([f39a2d2](https://github.com/osteele/liquid/commit/f39a2d2)) -* ParseError -> parser.Error; takes Locatable ([8995782](https://github.com/osteele/liquid/commit/8995782)) -* Prep loop for ranges ([22d583f](https://github.com/osteele/liquid/commit/22d583f)) -* Property names can end in ? ([dbba680](https://github.com/osteele/liquid/commit/dbba680)) -* ranges…but need to separated by .. ([497a932](https://github.com/osteele/liquid/commit/497a932)) -* README ([ce7cc8f](https://github.com/osteele/liquid/commit/ce7cc8f)) -* Remove a test that fails on Travis ([55ec347](https://github.com/osteele/liquid/commit/55ec347)) -* Remove dependency on strptime ([da541ab](https://github.com/osteele/liquid/commit/da541ab)) -* Remove IsTemplateError ([724da61](https://github.com/osteele/liquid/commit/724da61)) -* Rename branch -> clause (and remove Governs) ([5547532](https://github.com/osteele/liquid/commit/5547532)) -* Rename Config.Filename -> SourcePath ([df80e8c](https://github.com/osteele/liquid/commit/df80e8c)) -* Rename files -> standard_tags, standard_filters ([8882a7d](https://github.com/osteele/liquid/commit/8882a7d)) -* Rename loop_tag -> iteration_tags ([55eb5b4](https://github.com/osteele/liquid/commit/55eb5b4)) -* rename node.Branch -> Clause too ([5a12245](https://github.com/osteele/liquid/commit/5a12245)) -* Rename xxxTagParser -> xxxTagCompiler ([6b8f76c](https://github.com/osteele/liquid/commit/6b8f76c)) -* Reorganize docs and examples ([bfc7ced](https://github.com/osteele/liquid/commit/bfc7ced)) -* Replace render switch by polymorphism ([1c94b61](https://github.com/osteele/liquid/commit/1c94b61)) -* set travis email notification freq ([9701daa](https://github.com/osteele/liquid/commit/9701daa)) -* Source location is an initialization parameter ([92a4f2d](https://github.com/osteele/liquid/commit/92a4f2d)) -* Start #2 cycle tag ([a637d27](https://github.com/osteele/liquid/commit/a637d27)), closes [#2](https://github.com/osteele/liquid/issues/2) -* Test case for main ([6a3a853](https://github.com/osteele/liquid/commit/6a3a853)) -* TIL io.WriteString ([41e7b29](https://github.com/osteele/liquid/commit/41e7b29)) -* try disabling strptime ([bb0590d](https://github.com/osteele/liquid/commit/bb0590d)) -* Update README to v1 ([f1cddfa](https://github.com/osteele/liquid/commit/f1cddfa)) +* Add appveyor.yml ([06e0833](https://github.com/autopilot3/liquid/commit/06e0833)) +* Add expression.ParseStatement, statement selector literals ([c864f3c](https://github.com/autopilot3/liquid/commit/c864f3c)) +* Add FromDrop func ([8efaada](https://github.com/autopilot3/liquid/commit/8efaada)) +* Add ParseTemplateLocation ([16c3b6e](https://github.com/autopilot3/liquid/commit/16c3b6e)) +* Allow float index into array ([247c1b1](https://github.com/autopilot3/liquid/commit/247c1b1)) +* Close #18 loop range ([271f637](https://github.com/autopilot3/liquid/commit/271f637)), closes [#18](https://github.com/autopilot3/liquid/issues/18) +* Combine CompilationError -> parser.Error ([816b46a](https://github.com/autopilot3/liquid/commit/816b46a)) +* Complete #14 and #15 url{en,de}code filters ([2e5cc60](https://github.com/autopilot3/liquid/commit/2e5cc60)), closes [#14](https://github.com/autopilot3/liquid/issues/14) [#15](https://github.com/autopilot3/liquid/issues/15) +* Complete #17 sort_natural filter ([3c242c4](https://github.com/autopilot3/liquid/commit/3c242c4)), closes [#17](https://github.com/autopilot3/liquid/issues/17) +* Complete #19 when a or b ([2880ef4](https://github.com/autopilot3/liquid/commit/2880ef4)), closes [#19](https://github.com/autopilot3/liquid/issues/19) +* Complete #4 case…else ([26bdd09](https://github.com/autopilot3/liquid/commit/26bdd09)), closes [#4](https://github.com/autopilot3/liquid/issues/4) +* Consolidate render.Error -> parser.Error ([198f6bf](https://github.com/autopilot3/liquid/commit/198f6bf)) +* Coverage ([a2a4a1a](https://github.com/autopilot3/liquid/commit/a2a4a1a)) +* Coverage ([d6d6929](https://github.com/autopilot3/liquid/commit/d6d6929)) +* Coverage ([29c902f](https://github.com/autopilot3/liquid/commit/29c902f)) +* Cycle uses Statement; steps towards cycle groups ([7444118](https://github.com/autopilot3/liquid/commit/7444118)) +* docs ([4317bfc](https://github.com/autopilot3/liquid/commit/4317bfc)) +* Error.Filename -> Path ([b95775c](https://github.com/autopilot3/liquid/commit/b95775c)) +* fun w/ time zones ([4163dfa](https://github.com/autopilot3/liquid/commit/4163dfa)) +* Implement #15 truncate_words filter ([fdfc5d3](https://github.com/autopilot3/liquid/commit/fdfc5d3)), closes [#15](https://github.com/autopilot3/liquid/issues/15) +* Implement tablerow ([cd23447](https://github.com/autopilot3/liquid/commit/cd23447)) +* Improve strftime error test ([55cf56e](https://github.com/autopilot3/liquid/commit/55cf56e)) +* Loop uses the statement record ([110fee6](https://github.com/autopilot3/liquid/commit/110fee6)) +* Make harmless iterating over value ([bad5593](https://github.com/autopilot3/liquid/commit/bad5593)) +* make install-dev-tools -> setup ([0808c10](https://github.com/autopilot3/liquid/commit/0808c10)) +* make setup installs dependencies ([68a3e9b](https://github.com/autopilot3/liquid/commit/68a3e9b)) +* Move control flow tags to separate file ([c3c9de7](https://github.com/autopilot3/liquid/commit/c3c9de7)) +* Move interpreter ops into evaluator package ([c11cf2a](https://github.com/autopilot3/liquid/commit/c11cf2a)) +* Move package expression -> expressions ([6ff5721](https://github.com/autopilot3/liquid/commit/6ff5721)) +* New ParseStatement returns record with different statement parse types ([8964daf](https://github.com/autopilot3/liquid/commit/8964daf)) +* Parse in local time; switch to stdlib strftime ([f39a2d2](https://github.com/autopilot3/liquid/commit/f39a2d2)) +* ParseError -> parser.Error; takes Locatable ([8995782](https://github.com/autopilot3/liquid/commit/8995782)) +* Prep loop for ranges ([22d583f](https://github.com/autopilot3/liquid/commit/22d583f)) +* Property names can end in ? ([dbba680](https://github.com/autopilot3/liquid/commit/dbba680)) +* ranges…but need to separated by .. ([497a932](https://github.com/autopilot3/liquid/commit/497a932)) +* README ([ce7cc8f](https://github.com/autopilot3/liquid/commit/ce7cc8f)) +* Remove a test that fails on Travis ([55ec347](https://github.com/autopilot3/liquid/commit/55ec347)) +* Remove dependency on strptime ([da541ab](https://github.com/autopilot3/liquid/commit/da541ab)) +* Remove IsTemplateError ([724da61](https://github.com/autopilot3/liquid/commit/724da61)) +* Rename branch -> clause (and remove Governs) ([5547532](https://github.com/autopilot3/liquid/commit/5547532)) +* Rename Config.Filename -> SourcePath ([df80e8c](https://github.com/autopilot3/liquid/commit/df80e8c)) +* Rename files -> standard_tags, standard_filters ([8882a7d](https://github.com/autopilot3/liquid/commit/8882a7d)) +* Rename loop_tag -> iteration_tags ([55eb5b4](https://github.com/autopilot3/liquid/commit/55eb5b4)) +* rename node.Branch -> Clause too ([5a12245](https://github.com/autopilot3/liquid/commit/5a12245)) +* Rename xxxTagParser -> xxxTagCompiler ([6b8f76c](https://github.com/autopilot3/liquid/commit/6b8f76c)) +* Reorganize docs and examples ([bfc7ced](https://github.com/autopilot3/liquid/commit/bfc7ced)) +* Replace render switch by polymorphism ([1c94b61](https://github.com/autopilot3/liquid/commit/1c94b61)) +* set travis email notification freq ([9701daa](https://github.com/autopilot3/liquid/commit/9701daa)) +* Source location is an initialization parameter ([92a4f2d](https://github.com/autopilot3/liquid/commit/92a4f2d)) +* Start #2 cycle tag ([a637d27](https://github.com/autopilot3/liquid/commit/a637d27)), closes [#2](https://github.com/autopilot3/liquid/issues/2) +* Test case for main ([6a3a853](https://github.com/autopilot3/liquid/commit/6a3a853)) +* TIL io.WriteString ([41e7b29](https://github.com/autopilot3/liquid/commit/41e7b29)) +* try disabling strptime ([bb0590d](https://github.com/autopilot3/liquid/commit/bb0590d)) +* Update README to v1 ([f1cddfa](https://github.com/autopilot3/liquid/commit/f1cddfa)) ## 0.2.0 (2017-07-10) -* Change Engine, Template from Interface -> struct ([ebb37f8](https://github.com/osteele/liquid/commit/ebb37f8)) -* comments ([328d84f](https://github.com/osteele/liquid/commit/328d84f)) -* docs ([163290b](https://github.com/osteele/liquid/commit/163290b)) -* errors return source location, phase 1 ([342a8b3](https://github.com/osteele/liquid/commit/342a8b3)) -* gopkg; docs ([635383b](https://github.com/osteele/liquid/commit/635383b)) -* Implement hash.size ([c2b7157](https://github.com/osteele/liquid/commit/c2b7157)) -* Parser grammar is distinct from (and embedded in) config ([b269138](https://github.com/osteele/liquid/commit/b269138)) -* README ([c291b2f](https://github.com/osteele/liquid/commit/c291b2f)) -* Rename ParseTime -> ParseDate ([a3a3473](https://github.com/osteele/liquid/commit/a3a3473)) -* Tests ([bfad047](https://github.com/osteele/liquid/commit/bfad047)) -* Update remaining public API to return SourceError ([378c0b2](https://github.com/osteele/liquid/commit/378c0b2)) +* Change Engine, Template from Interface -> struct ([ebb37f8](https://github.com/autopilot3/liquid/commit/ebb37f8)) +* comments ([328d84f](https://github.com/autopilot3/liquid/commit/328d84f)) +* docs ([163290b](https://github.com/autopilot3/liquid/commit/163290b)) +* errors return source location, phase 1 ([342a8b3](https://github.com/autopilot3/liquid/commit/342a8b3)) +* gopkg; docs ([635383b](https://github.com/autopilot3/liquid/commit/635383b)) +* Implement hash.size ([c2b7157](https://github.com/autopilot3/liquid/commit/c2b7157)) +* Parser grammar is distinct from (and embedded in) config ([b269138](https://github.com/autopilot3/liquid/commit/b269138)) +* README ([c291b2f](https://github.com/autopilot3/liquid/commit/c291b2f)) +* Rename ParseTime -> ParseDate ([a3a3473](https://github.com/autopilot3/liquid/commit/a3a3473)) +* Tests ([bfad047](https://github.com/autopilot3/liquid/commit/bfad047)) +* Update remaining public API to return SourceError ([378c0b2](https://github.com/autopilot3/liquid/commit/378c0b2)) ## 0.1.0 (2017-07-09) -* "contains" tests for arrays too ([24d83f1](https://github.com/osteele/liquid/commit/24d83f1)) -* (Some) relationship operators ([d03efed](https://github.com/osteele/liquid/commit/d03efed)) -* a.b syntax ([5dbd972](https://github.com/osteele/liquid/commit/5dbd972)) -* a[b] for invalid a or b ([50d11a6](https://github.com/osteele/liquid/commit/50d11a6)) -* Add a Grammar interface for parsing ([f313e6f](https://github.com/osteele/liquid/commit/f313e6f)) -* Add a Travis file ([8e673ac](https://github.com/osteele/liquid/commit/8e673ac)) -* Add an executable ([f1b2777](https://github.com/osteele/liquid/commit/f1b2777)) -* Add an type filter; inspect is more robust ([3a1506b](https://github.com/osteele/liquid/commit/3a1506b)) -* Add contribution guidelines ([1b7564d](https://github.com/osteele/liquid/commit/1b7564d)) -* Add coverage status ([6297319](https://github.com/osteele/liquid/commit/6297319)) -* Add docs; remove unused UnimplementedError ([983b9f5](https://github.com/osteele/liquid/commit/983b9f5)) -* Add engine.DefineControlTag; currently does nothing ([8f7bcae](https://github.com/osteele/liquid/commit/8f7bcae)) -* Add error line number ([4472b15](https://github.com/osteele/liquid/commit/4472b15)) -* Add goveralls to travis ([c415f89](https://github.com/osteele/liquid/commit/c415f89)) -* Add install-dev-toolsl to travis ([008f1ed](https://github.com/osteele/liquid/commit/008f1ed)) -* Add IsTemplateError ([2161bb6](https://github.com/osteele/liquid/commit/2161bb6)) -* Add Makefile ([29c9ad8](https://github.com/osteele/liquid/commit/29c9ad8)) -* Add more dependencies to credits ([97b36ab](https://github.com/osteele/liquid/commit/97b36ab)) -* Add more parse time formats ([77c5dc9](https://github.com/osteele/liquid/commit/77c5dc9)) -* Add MustConvertItem; convert bool -> int ([80d58dc](https://github.com/osteele/liquid/commit/80d58dc)) -* Add nil; distinguish between identifier and property patterns ([7a2b28c](https://github.com/osteele/liquid/commit/7a2b28c)) -* Add public DefineTag ([e21d2a7](https://github.com/osteele/liquid/commit/e21d2a7)) -* Add references to README ([ac12225](https://github.com/osteele/liquid/commit/ac12225)) -* Add RenderContext.ParseTagArgs ([7c48138](https://github.com/osteele/liquid/commit/7c48138)) -* Add reverse filter; improve generics ([54b9f13](https://github.com/osteele/liquid/commit/54b9f13)) -* Add status badges to the README ([465a681](https://github.com/osteele/liquid/commit/465a681)) -* Add strptime for time parsing ([8ea72e4](https://github.com/osteele/liquid/commit/8ea72e4)) -* Add Template.SetSourcePath ([5425668](https://github.com/osteele/liquid/commit/5425668)) -* Allow - in identifiers ([af8c486](https://github.com/osteele/liquid/commit/af8c486)) -* Allow parens ([607f4f4](https://github.com/osteele/liquid/commit/607f4f4)) -* Catch unimplemented panics ([b1cf056](https://github.com/osteele/liquid/commit/b1cf056)) -* Chunk regex wasn't sufficiently non-greedy ([f8b5503](https://github.com/osteele/liquid/commit/f8b5503)) -* Chunk scanner test cases ([fc6d96e](https://github.com/osteele/liquid/commit/fc6d96e)) -* Closure.Bind copies the original bindings ([4e96c15](https://github.com/osteele/liquid/commit/4e96c15)) -* Compiler copies the syntax tree ([8f63cb7](https://github.com/osteele/liquid/commit/8f63cb7)) -* contains operates on strings not arrays ([9dda87f](https://github.com/osteele/liquid/commit/9dda87f)) -* Control tag parsers can return an error ([61663ab](https://github.com/osteele/liquid/commit/61663ab)) -* Control tags actions are table-driven ([20e4df3](https://github.com/osteele/liquid/commit/20e4df3)) -* Convert -> map[string] ([767f1f4](https://github.com/osteele/liquid/commit/767f1f4)) -* Convert map -> [] ([6075f39](https://github.com/osteele/liquid/commit/6075f39)) -* Convert maps ([2fed70b](https://github.com/osteele/liquid/commit/2fed70b)) -* Convert returns an error; create MustConvert ([4df3f04](https://github.com/osteele/liquid/commit/4df3f04)) -* Coverage ([6f7b67f](https://github.com/osteele/liquid/commit/6f7b67f)) -* Coverage ([36929af](https://github.com/osteele/liquid/commit/36929af)) -* Coverage ([caca7a2](https://github.com/osteele/liquid/commit/caca7a2)) -* Coverage ([78526e7](https://github.com/osteele/liquid/commit/78526e7)) -* Coverage; simplify ([a8afb01](https://github.com/osteele/liquid/commit/a8afb01)) -* Create an Expression interface; add some docs ([2a2f333](https://github.com/osteele/liquid/commit/2a2f333)) -* Create LICENSE ([e3425cc](https://github.com/osteele/liquid/commit/e3425cc)) -* Create top-level interface to liquid package ([514559e](https://github.com/osteele/liquid/commit/514559e)) -* Docs ([f15de87](https://github.com/osteele/liquid/commit/f15de87)) -* Docs ([803fbbc](https://github.com/osteele/liquid/commit/803fbbc)) -* Embed the Chunk in the AST nodes ([089a0c8](https://github.com/osteele/liquid/commit/089a0c8)) -* Expression evaluator tests; fix revealed bugs ([1f805d5](https://github.com/osteele/liquid/commit/1f805d5)) -* Filters are an engine configuration ([2e9903f](https://github.com/osteele/liquid/commit/2e9903f)) -* Filters can have (single) parameters ([70aa70d](https://github.com/osteele/liquid/commit/70aa70d)) -* Filters support multiple argument, including expressions ([a93848a](https://github.com/osteele/liquid/commit/a93848a)) -* Finish generic comparison ([dbdcca4](https://github.com/osteele/liquid/commit/dbdcca4)) -* Fix forloop.last with offset modifier ([394036d](https://github.com/osteele/liquid/commit/394036d)) -* Fix generic equality with nil ([229059c](https://github.com/osteele/liquid/commit/229059c)) -* Fix previous ([87b8198](https://github.com/osteele/liquid/commit/87b8198)) -* Fix the raw tag ([e2bb7c6](https://github.com/osteele/liquid/commit/e2bb7c6)) -* for over a map iterates over its keys ([decd8dd](https://github.com/osteele/liquid/commit/decd8dd)) -* Functional is constructed within parser, not scanner ([c02fbd5](https://github.com/osteele/liquid/commit/c02fbd5)) -* FunctionalNode -> TagNode ([18e2540](https://github.com/osteele/liquid/commit/18e2540)) -* Generic Convert handles conversion to time ([2083747](https://github.com/osteele/liquid/commit/2083747)) -* Generics ([87708a0](https://github.com/osteele/liquid/commit/87708a0)) -* GitHub templates ([7bd8a8d](https://github.com/osteele/liquid/commit/7bd8a8d)) -* gometalinter doesn't have a config in this repo ([28db298](https://github.com/osteele/liquid/commit/28db298)) -* identifiers can include '-' ([606870e](https://github.com/osteele/liquid/commit/606870e)) -* If tag parses during parse stage ([621992c](https://github.com/osteele/liquid/commit/621992c)) -* Implement {% else %}, {% elsif %} ([cab7845](https://github.com/osteele/liquid/commit/cab7845)) -* Implement {% if %} ([60d2f78](https://github.com/osteele/liquid/commit/60d2f78)) -* Implement {% unless %} ([6a06665](https://github.com/osteele/liquid/commit/6a06665)) -* Implement <=, >=, contains ([6c56efd](https://github.com/osteele/liquid/commit/6c56efd)) -* Implement a big chunk of filters ([1630af7](https://github.com/osteele/liquid/commit/1630af7)) -* Implement a[n] ([555991c](https://github.com/osteele/liquid/commit/555991c)) -* Implement and, or, != ([a5a3ad2](https://github.com/osteele/liquid/commit/a5a3ad2)) -* Implement ar.first, ar.list ([c648a70](https://github.com/osteele/liquid/commit/c648a70)) -* Implement booleans ([6af4fca](https://github.com/osteele/liquid/commit/6af4fca)) -* Implement break, continue ([a1784cd](https://github.com/osteele/liquid/commit/a1784cd)) -* Implement capture tag ([055e789](https://github.com/osteele/liquid/commit/055e789)) -* Implement case (w/out else) ([c5e7e6c](https://github.com/osteele/liquid/commit/c5e7e6c)) -* Implement comment tag ([eb7a18e](https://github.com/osteele/liquid/commit/eb7a18e)) -* Implement date formats ([61b651c](https://github.com/osteele/liquid/commit/61b651c)) -* Implement drops ([ba874de](https://github.com/osteele/liquid/commit/ba874de)) -* Implement expression scanner ([57be549](https://github.com/osteele/liquid/commit/57be549)) -* Implement filters: default; date (w/out format) ([d849e74](https://github.com/osteele/liquid/commit/d849e74)) -* Implement forloop variables ([e9c35a3](https://github.com/osteele/liquid/commit/e9c35a3)) -* Implement include ([fab31d9](https://github.com/osteele/liquid/commit/fab31d9)) -* Implement loop modifiers ([53a41f3](https://github.com/osteele/liquid/commit/53a41f3)) -* Implement loop reversed ([383db45](https://github.com/osteele/liquid/commit/383db45)) -* Implement loop tag ([babfc3e](https://github.com/osteele/liquid/commit/babfc3e)) -* Implement obj['name'] ([63e2c5c](https://github.com/osteele/liquid/commit/63e2c5c)) -* Implement raw tag ([c09652b](https://github.com/osteele/liquid/commit/c09652b)) -* Implement remaining numeric filters ([5ec1f66](https://github.com/osteele/liquid/commit/5ec1f66)) -* Implement some filters ([30211ac](https://github.com/osteele/liquid/commit/30211ac)) -* Implement sort: key ([612f456](https://github.com/osteele/liquid/commit/612f456)) -* Implement string literals (without escapes) ([ed150c5](https://github.com/osteele/liquid/commit/ed150c5)) -* Implement uniq filter ([585cc5d](https://github.com/osteele/liquid/commit/585cc5d)) -* Implement variable assignment ([cd15950](https://github.com/osteele/liquid/commit/cd15950)) -* Improve docs ([a077502](https://github.com/osteele/liquid/commit/a077502)) -* Improve some internal names ([1da9d40](https://github.com/osteele/liquid/commit/1da9d40)) -* Initial ([58395a8](https://github.com/osteele/liquid/commit/58395a8)) -* lint ([a824673](https://github.com/osteele/liquid/commit/a824673)) -* Lint ([e71bc95](https://github.com/osteele/liquid/commit/e71bc95)) -* Lint ([09d3650](https://github.com/osteele/liquid/commit/09d3650)) -* Lint ([c4bd99b](https://github.com/osteele/liquid/commit/c4bd99b)) -* Lint; remove dead code ([fb26bb3](https://github.com/osteele/liquid/commit/fb26bb3)) -* make install-dev-tools doesn't update packages ([9714544](https://github.com/osteele/liquid/commit/9714544)) -* Makefile default target is ci ([3dba4ee](https://github.com/osteele/liquid/commit/3dba4ee)) -* Match print object to observed ([d924e0b](https://github.com/osteele/liquid/commit/d924e0b)) -* Match split filter to observed ([6a8127a](https://github.com/osteele/liquid/commit/6a8127a)) -* More filters ([910d4b2](https://github.com/osteele/liquid/commit/910d4b2)) -* More filters ([c433c08](https://github.com/osteele/liquid/commit/c433c08)) -* More generic.Less; tests ([43bedef](https://github.com/osteele/liquid/commit/43bedef)) -* More time formats ([2f0f6ba](https://github.com/osteele/liquid/commit/2f0f6ba)) -* Move assign tag -> tags package ([d31fe04](https://github.com/osteele/liquid/commit/d31fe04)) -* Move chunk marshalling to separate file ([b367592](https://github.com/osteele/liquid/commit/b367592)) -* Move chunks -> render ([6161e6d](https://github.com/osteele/liquid/commit/6161e6d)) -* Move chunks to sub-package ([2e61304](https://github.com/osteele/liquid/commit/2e61304)) -* Move expression parser to sub-package ([373b2fb](https://github.com/osteele/liquid/commit/373b2fb)) -* Move expressions -> expression ([9691dc2](https://github.com/osteele/liquid/commit/9691dc2)) -* Move filters to own package ([4189f03](https://github.com/osteele/liquid/commit/4189f03)) -* Move generics -> evaluator ([a434a75](https://github.com/osteele/liquid/commit/a434a75)) -* Move generics to own package ([f52d00f](https://github.com/osteele/liquid/commit/f52d00f)) -* Move tag compilation to compiler stage ([54e840c](https://github.com/osteele/liquid/commit/54e840c)) -* Move tags to own package ([83503a1](https://github.com/osteele/liquid/commit/83503a1)) -* Negative integer indexes from end of list ([c1fd00c](https://github.com/osteele/liquid/commit/c1fd00c)) -* New top-level Context wrapper ([d6bc456](https://github.com/osteele/liquid/commit/d6bc456)) -* Optional filter arguments declared as functions ([8397c5e](https://github.com/osteele/liquid/commit/8397c5e)) -* Parse control tag forms at parse time ([5dddabe](https://github.com/osteele/liquid/commit/5dddabe)) -* Parse object expressions during parse stage; report error source ([d4c895d](https://github.com/osteele/liquid/commit/d4c895d)) -* Rationalize some filenames ([c4ff3d2](https://github.com/osteele/liquid/commit/c4ff3d2)) -* README ([d29e4b2](https://github.com/osteele/liquid/commit/d29e4b2)) -* README ([c67d027](https://github.com/osteele/liquid/commit/c67d027)) -* README links to godoc ([a4b1835](https://github.com/osteele/liquid/commit/a4b1835)) -* Record source line number ([08fcc4e](https://github.com/osteele/liquid/commit/08fcc4e)) -* remove a debug print ([e332e53](https://github.com/osteele/liquid/commit/e332e53)) -* Remove else/elsif from unless ([12045b5](https://github.com/osteele/liquid/commit/12045b5)) -* Remove gratuitous Context wrapper ([cb8911a](https://github.com/osteele/liquid/commit/cb8911a)) -* Rename ([594ec99](https://github.com/osteele/liquid/commit/594ec99)) -* Rename chunk -> token ([69d26a2](https://github.com/osteele/liquid/commit/69d26a2)) -* Rename render.(Context,RenderContext) -> (NodeContext,Context) ([411a2f0](https://github.com/osteele/liquid/commit/411a2f0)) -* Rename renderError -> render.Error ([315af1a](https://github.com/osteele/liquid/commit/315af1a)) -* Rename Settings -> Config ([405c5bf](https://github.com/osteele/liquid/commit/405c5bf)) -* Rename some files ([bcef4dc](https://github.com/osteele/liquid/commit/bcef4dc)) -* Rename to match Liquid terminology ([2e8f51a](https://github.com/osteele/liquid/commit/2e8f51a)) -* Render tree is distinct type from parse AST ([803471c](https://github.com/osteele/liquid/commit/803471c)) -* Render uses a switch instead of polymorphism ([0559730](https://github.com/osteele/liquid/commit/0559730)) -* Renderers return a string, rather than taking an io.writer ([8d9df82](https://github.com/osteele/liquid/commit/8d9df82)) -* Replace GetVariableMap -> UpdateBindings, RenderFile ([a7cbb9b](https://github.com/osteele/liquid/commit/a7cbb9b)) -* Restore tag tests ([db5a3af](https://github.com/osteele/liquid/commit/db5a3af)) -* Separate interface.go from engine.go ([ebc29dc](https://github.com/osteele/liquid/commit/ebc29dc)) -* simplify ([af95c44](https://github.com/osteele/liquid/commit/af95c44)) -* simplify ([846987d](https://github.com/osteele/liquid/commit/846987d)) -* simplify ([c599761](https://github.com/osteele/liquid/commit/c599761)) -* Simplify external tag interface ([f6c4299](https://github.com/osteele/liquid/commit/f6c4299)) -* slice, truncate use runes not bytes ([a3c646c](https://github.com/osteele/liquid/commit/a3c646c)) -* SortByProperty can sort nil first or last ([e2fd3bb](https://github.com/osteele/liquid/commit/e2fd3bb)) -* Split package render->parser ([903acb8](https://github.com/osteele/liquid/commit/903acb8)) -* Start to separate parser and compiler ([c7d9af2](https://github.com/osteele/liquid/commit/c7d9af2)) -* Tags are an engine configuration ([e6f8eac](https://github.com/osteele/liquid/commit/e6f8eac)) -* Tags are called within a RenderContext ([41da3f9](https://github.com/osteele/liquid/commit/41da3f9)) -* tavis uses makefile lint ([8f148dc](https://github.com/osteele/liquid/commit/8f148dc)) -* tests ([d435cf5](https://github.com/osteele/liquid/commit/d435cf5)) -* Uh-oh – strftime gets the day of week wrong! ([25e97ed](https://github.com/osteele/liquid/commit/25e97ed)) -* Un-export ControlTagDefinition; create builder ([0c7a8d2](https://github.com/osteele/liquid/commit/0c7a8d2)) -* Unconfuse unless/endunless ([9b8da4f](https://github.com/osteele/liquid/commit/9b8da4f)) -* Undefined tags, filters are errors not panics ([9a807d0](https://github.com/osteele/liquid/commit/9a807d0)) -* Update Contributing to point to the project boards ([dd41a36](https://github.com/osteele/liquid/commit/dd41a36)) -* Update guidelines to refer to issues board ([aad76bd](https://github.com/osteele/liquid/commit/aad76bd)) -* Use C strptime to format dates ([247bec3](https://github.com/osteele/liquid/commit/247bec3)) -* Work around missing %-H in strftime ([fc227aa](https://github.com/osteele/liquid/commit/fc227aa)) -* Yacc expression parsing ([9c64c5a](https://github.com/osteele/liquid/commit/9c64c5a)) -* Yacc, ragel source match package moves ([a7a1ee5](https://github.com/osteele/liquid/commit/a7a1ee5)) +* "contains" tests for arrays too ([24d83f1](https://github.com/autopilot3/liquid/commit/24d83f1)) +* (Some) relationship operators ([d03efed](https://github.com/autopilot3/liquid/commit/d03efed)) +* a.b syntax ([5dbd972](https://github.com/autopilot3/liquid/commit/5dbd972)) +* a[b] for invalid a or b ([50d11a6](https://github.com/autopilot3/liquid/commit/50d11a6)) +* Add a Grammar interface for parsing ([f313e6f](https://github.com/autopilot3/liquid/commit/f313e6f)) +* Add a Travis file ([8e673ac](https://github.com/autopilot3/liquid/commit/8e673ac)) +* Add an executable ([f1b2777](https://github.com/autopilot3/liquid/commit/f1b2777)) +* Add an type filter; inspect is more robust ([3a1506b](https://github.com/autopilot3/liquid/commit/3a1506b)) +* Add contribution guidelines ([1b7564d](https://github.com/autopilot3/liquid/commit/1b7564d)) +* Add coverage status ([6297319](https://github.com/autopilot3/liquid/commit/6297319)) +* Add docs; remove unused UnimplementedError ([983b9f5](https://github.com/autopilot3/liquid/commit/983b9f5)) +* Add engine.DefineControlTag; currently does nothing ([8f7bcae](https://github.com/autopilot3/liquid/commit/8f7bcae)) +* Add error line number ([4472b15](https://github.com/autopilot3/liquid/commit/4472b15)) +* Add goveralls to travis ([c415f89](https://github.com/autopilot3/liquid/commit/c415f89)) +* Add install-dev-toolsl to travis ([008f1ed](https://github.com/autopilot3/liquid/commit/008f1ed)) +* Add IsTemplateError ([2161bb6](https://github.com/autopilot3/liquid/commit/2161bb6)) +* Add Makefile ([29c9ad8](https://github.com/autopilot3/liquid/commit/29c9ad8)) +* Add more dependencies to credits ([97b36ab](https://github.com/autopilot3/liquid/commit/97b36ab)) +* Add more parse time formats ([77c5dc9](https://github.com/autopilot3/liquid/commit/77c5dc9)) +* Add MustConvertItem; convert bool -> int ([80d58dc](https://github.com/autopilot3/liquid/commit/80d58dc)) +* Add nil; distinguish between identifier and property patterns ([7a2b28c](https://github.com/autopilot3/liquid/commit/7a2b28c)) +* Add public DefineTag ([e21d2a7](https://github.com/autopilot3/liquid/commit/e21d2a7)) +* Add references to README ([ac12225](https://github.com/autopilot3/liquid/commit/ac12225)) +* Add RenderContext.ParseTagArgs ([7c48138](https://github.com/autopilot3/liquid/commit/7c48138)) +* Add reverse filter; improve generics ([54b9f13](https://github.com/autopilot3/liquid/commit/54b9f13)) +* Add status badges to the README ([465a681](https://github.com/autopilot3/liquid/commit/465a681)) +* Add strptime for time parsing ([8ea72e4](https://github.com/autopilot3/liquid/commit/8ea72e4)) +* Add Template.SetSourcePath ([5425668](https://github.com/autopilot3/liquid/commit/5425668)) +* Allow - in identifiers ([af8c486](https://github.com/autopilot3/liquid/commit/af8c486)) +* Allow parens ([607f4f4](https://github.com/autopilot3/liquid/commit/607f4f4)) +* Catch unimplemented panics ([b1cf056](https://github.com/autopilot3/liquid/commit/b1cf056)) +* Chunk regex wasn't sufficiently non-greedy ([f8b5503](https://github.com/autopilot3/liquid/commit/f8b5503)) +* Chunk scanner test cases ([fc6d96e](https://github.com/autopilot3/liquid/commit/fc6d96e)) +* Closure.Bind copies the original bindings ([4e96c15](https://github.com/autopilot3/liquid/commit/4e96c15)) +* Compiler copies the syntax tree ([8f63cb7](https://github.com/autopilot3/liquid/commit/8f63cb7)) +* contains operates on strings not arrays ([9dda87f](https://github.com/autopilot3/liquid/commit/9dda87f)) +* Control tag parsers can return an error ([61663ab](https://github.com/autopilot3/liquid/commit/61663ab)) +* Control tags actions are table-driven ([20e4df3](https://github.com/autopilot3/liquid/commit/20e4df3)) +* Convert -> map[string] ([767f1f4](https://github.com/autopilot3/liquid/commit/767f1f4)) +* Convert map -> [] ([6075f39](https://github.com/autopilot3/liquid/commit/6075f39)) +* Convert maps ([2fed70b](https://github.com/autopilot3/liquid/commit/2fed70b)) +* Convert returns an error; create MustConvert ([4df3f04](https://github.com/autopilot3/liquid/commit/4df3f04)) +* Coverage ([6f7b67f](https://github.com/autopilot3/liquid/commit/6f7b67f)) +* Coverage ([36929af](https://github.com/autopilot3/liquid/commit/36929af)) +* Coverage ([caca7a2](https://github.com/autopilot3/liquid/commit/caca7a2)) +* Coverage ([78526e7](https://github.com/autopilot3/liquid/commit/78526e7)) +* Coverage; simplify ([a8afb01](https://github.com/autopilot3/liquid/commit/a8afb01)) +* Create an Expression interface; add some docs ([2a2f333](https://github.com/autopilot3/liquid/commit/2a2f333)) +* Create LICENSE ([e3425cc](https://github.com/autopilot3/liquid/commit/e3425cc)) +* Create top-level interface to liquid package ([514559e](https://github.com/autopilot3/liquid/commit/514559e)) +* Docs ([f15de87](https://github.com/autopilot3/liquid/commit/f15de87)) +* Docs ([803fbbc](https://github.com/autopilot3/liquid/commit/803fbbc)) +* Embed the Chunk in the AST nodes ([089a0c8](https://github.com/autopilot3/liquid/commit/089a0c8)) +* Expression evaluator tests; fix revealed bugs ([1f805d5](https://github.com/autopilot3/liquid/commit/1f805d5)) +* Filters are an engine configuration ([2e9903f](https://github.com/autopilot3/liquid/commit/2e9903f)) +* Filters can have (single) parameters ([70aa70d](https://github.com/autopilot3/liquid/commit/70aa70d)) +* Filters support multiple argument, including expressions ([a93848a](https://github.com/autopilot3/liquid/commit/a93848a)) +* Finish generic comparison ([dbdcca4](https://github.com/autopilot3/liquid/commit/dbdcca4)) +* Fix forloop.last with offset modifier ([394036d](https://github.com/autopilot3/liquid/commit/394036d)) +* Fix generic equality with nil ([229059c](https://github.com/autopilot3/liquid/commit/229059c)) +* Fix previous ([87b8198](https://github.com/autopilot3/liquid/commit/87b8198)) +* Fix the raw tag ([e2bb7c6](https://github.com/autopilot3/liquid/commit/e2bb7c6)) +* for over a map iterates over its keys ([decd8dd](https://github.com/autopilot3/liquid/commit/decd8dd)) +* Functional is constructed within parser, not scanner ([c02fbd5](https://github.com/autopilot3/liquid/commit/c02fbd5)) +* FunctionalNode -> TagNode ([18e2540](https://github.com/autopilot3/liquid/commit/18e2540)) +* Generic Convert handles conversion to time ([2083747](https://github.com/autopilot3/liquid/commit/2083747)) +* Generics ([87708a0](https://github.com/autopilot3/liquid/commit/87708a0)) +* GitHub templates ([7bd8a8d](https://github.com/autopilot3/liquid/commit/7bd8a8d)) +* gometalinter doesn't have a config in this repo ([28db298](https://github.com/autopilot3/liquid/commit/28db298)) +* identifiers can include '-' ([606870e](https://github.com/autopilot3/liquid/commit/606870e)) +* If tag parses during parse stage ([621992c](https://github.com/autopilot3/liquid/commit/621992c)) +* Implement {% else %}, {% elsif %} ([cab7845](https://github.com/autopilot3/liquid/commit/cab7845)) +* Implement {% if %} ([60d2f78](https://github.com/autopilot3/liquid/commit/60d2f78)) +* Implement {% unless %} ([6a06665](https://github.com/autopilot3/liquid/commit/6a06665)) +* Implement <=, >=, contains ([6c56efd](https://github.com/autopilot3/liquid/commit/6c56efd)) +* Implement a big chunk of filters ([1630af7](https://github.com/autopilot3/liquid/commit/1630af7)) +* Implement a[n] ([555991c](https://github.com/autopilot3/liquid/commit/555991c)) +* Implement and, or, != ([a5a3ad2](https://github.com/autopilot3/liquid/commit/a5a3ad2)) +* Implement ar.first, ar.list ([c648a70](https://github.com/autopilot3/liquid/commit/c648a70)) +* Implement booleans ([6af4fca](https://github.com/autopilot3/liquid/commit/6af4fca)) +* Implement break, continue ([a1784cd](https://github.com/autopilot3/liquid/commit/a1784cd)) +* Implement capture tag ([055e789](https://github.com/autopilot3/liquid/commit/055e789)) +* Implement case (w/out else) ([c5e7e6c](https://github.com/autopilot3/liquid/commit/c5e7e6c)) +* Implement comment tag ([eb7a18e](https://github.com/autopilot3/liquid/commit/eb7a18e)) +* Implement date formats ([61b651c](https://github.com/autopilot3/liquid/commit/61b651c)) +* Implement drops ([ba874de](https://github.com/autopilot3/liquid/commit/ba874de)) +* Implement expression scanner ([57be549](https://github.com/autopilot3/liquid/commit/57be549)) +* Implement filters: default; date (w/out format) ([d849e74](https://github.com/autopilot3/liquid/commit/d849e74)) +* Implement forloop variables ([e9c35a3](https://github.com/autopilot3/liquid/commit/e9c35a3)) +* Implement include ([fab31d9](https://github.com/autopilot3/liquid/commit/fab31d9)) +* Implement loop modifiers ([53a41f3](https://github.com/autopilot3/liquid/commit/53a41f3)) +* Implement loop reversed ([383db45](https://github.com/autopilot3/liquid/commit/383db45)) +* Implement loop tag ([babfc3e](https://github.com/autopilot3/liquid/commit/babfc3e)) +* Implement obj['name'] ([63e2c5c](https://github.com/autopilot3/liquid/commit/63e2c5c)) +* Implement raw tag ([c09652b](https://github.com/autopilot3/liquid/commit/c09652b)) +* Implement remaining numeric filters ([5ec1f66](https://github.com/autopilot3/liquid/commit/5ec1f66)) +* Implement some filters ([30211ac](https://github.com/autopilot3/liquid/commit/30211ac)) +* Implement sort: key ([612f456](https://github.com/autopilot3/liquid/commit/612f456)) +* Implement string literals (without escapes) ([ed150c5](https://github.com/autopilot3/liquid/commit/ed150c5)) +* Implement uniq filter ([585cc5d](https://github.com/autopilot3/liquid/commit/585cc5d)) +* Implement variable assignment ([cd15950](https://github.com/autopilot3/liquid/commit/cd15950)) +* Improve docs ([a077502](https://github.com/autopilot3/liquid/commit/a077502)) +* Improve some internal names ([1da9d40](https://github.com/autopilot3/liquid/commit/1da9d40)) +* Initial ([58395a8](https://github.com/autopilot3/liquid/commit/58395a8)) +* lint ([a824673](https://github.com/autopilot3/liquid/commit/a824673)) +* Lint ([e71bc95](https://github.com/autopilot3/liquid/commit/e71bc95)) +* Lint ([09d3650](https://github.com/autopilot3/liquid/commit/09d3650)) +* Lint ([c4bd99b](https://github.com/autopilot3/liquid/commit/c4bd99b)) +* Lint; remove dead code ([fb26bb3](https://github.com/autopilot3/liquid/commit/fb26bb3)) +* make install-dev-tools doesn't update packages ([9714544](https://github.com/autopilot3/liquid/commit/9714544)) +* Makefile default target is ci ([3dba4ee](https://github.com/autopilot3/liquid/commit/3dba4ee)) +* Match print object to observed ([d924e0b](https://github.com/autopilot3/liquid/commit/d924e0b)) +* Match split filter to observed ([6a8127a](https://github.com/autopilot3/liquid/commit/6a8127a)) +* More filters ([910d4b2](https://github.com/autopilot3/liquid/commit/910d4b2)) +* More filters ([c433c08](https://github.com/autopilot3/liquid/commit/c433c08)) +* More generic.Less; tests ([43bedef](https://github.com/autopilot3/liquid/commit/43bedef)) +* More time formats ([2f0f6ba](https://github.com/autopilot3/liquid/commit/2f0f6ba)) +* Move assign tag -> tags package ([d31fe04](https://github.com/autopilot3/liquid/commit/d31fe04)) +* Move chunk marshalling to separate file ([b367592](https://github.com/autopilot3/liquid/commit/b367592)) +* Move chunks -> render ([6161e6d](https://github.com/autopilot3/liquid/commit/6161e6d)) +* Move chunks to sub-package ([2e61304](https://github.com/autopilot3/liquid/commit/2e61304)) +* Move expression parser to sub-package ([373b2fb](https://github.com/autopilot3/liquid/commit/373b2fb)) +* Move expressions -> expression ([9691dc2](https://github.com/autopilot3/liquid/commit/9691dc2)) +* Move filters to own package ([4189f03](https://github.com/autopilot3/liquid/commit/4189f03)) +* Move generics -> evaluator ([a434a75](https://github.com/autopilot3/liquid/commit/a434a75)) +* Move generics to own package ([f52d00f](https://github.com/autopilot3/liquid/commit/f52d00f)) +* Move tag compilation to compiler stage ([54e840c](https://github.com/autopilot3/liquid/commit/54e840c)) +* Move tags to own package ([83503a1](https://github.com/autopilot3/liquid/commit/83503a1)) +* Negative integer indexes from end of list ([c1fd00c](https://github.com/autopilot3/liquid/commit/c1fd00c)) +* New top-level Context wrapper ([d6bc456](https://github.com/autopilot3/liquid/commit/d6bc456)) +* Optional filter arguments declared as functions ([8397c5e](https://github.com/autopilot3/liquid/commit/8397c5e)) +* Parse control tag forms at parse time ([5dddabe](https://github.com/autopilot3/liquid/commit/5dddabe)) +* Parse object expressions during parse stage; report error source ([d4c895d](https://github.com/autopilot3/liquid/commit/d4c895d)) +* Rationalize some filenames ([c4ff3d2](https://github.com/autopilot3/liquid/commit/c4ff3d2)) +* README ([d29e4b2](https://github.com/autopilot3/liquid/commit/d29e4b2)) +* README ([c67d027](https://github.com/autopilot3/liquid/commit/c67d027)) +* README links to godoc ([a4b1835](https://github.com/autopilot3/liquid/commit/a4b1835)) +* Record source line number ([08fcc4e](https://github.com/autopilot3/liquid/commit/08fcc4e)) +* remove a debug print ([e332e53](https://github.com/autopilot3/liquid/commit/e332e53)) +* Remove else/elsif from unless ([12045b5](https://github.com/autopilot3/liquid/commit/12045b5)) +* Remove gratuitous Context wrapper ([cb8911a](https://github.com/autopilot3/liquid/commit/cb8911a)) +* Rename ([594ec99](https://github.com/autopilot3/liquid/commit/594ec99)) +* Rename chunk -> token ([69d26a2](https://github.com/autopilot3/liquid/commit/69d26a2)) +* Rename render.(Context,RenderContext) -> (NodeContext,Context) ([411a2f0](https://github.com/autopilot3/liquid/commit/411a2f0)) +* Rename renderError -> render.Error ([315af1a](https://github.com/autopilot3/liquid/commit/315af1a)) +* Rename Settings -> Config ([405c5bf](https://github.com/autopilot3/liquid/commit/405c5bf)) +* Rename some files ([bcef4dc](https://github.com/autopilot3/liquid/commit/bcef4dc)) +* Rename to match Liquid terminology ([2e8f51a](https://github.com/autopilot3/liquid/commit/2e8f51a)) +* Render tree is distinct type from parse AST ([803471c](https://github.com/autopilot3/liquid/commit/803471c)) +* Render uses a switch instead of polymorphism ([0559730](https://github.com/autopilot3/liquid/commit/0559730)) +* Renderers return a string, rather than taking an io.writer ([8d9df82](https://github.com/autopilot3/liquid/commit/8d9df82)) +* Replace GetVariableMap -> UpdateBindings, RenderFile ([a7cbb9b](https://github.com/autopilot3/liquid/commit/a7cbb9b)) +* Restore tag tests ([db5a3af](https://github.com/autopilot3/liquid/commit/db5a3af)) +* Separate interface.go from engine.go ([ebc29dc](https://github.com/autopilot3/liquid/commit/ebc29dc)) +* simplify ([af95c44](https://github.com/autopilot3/liquid/commit/af95c44)) +* simplify ([846987d](https://github.com/autopilot3/liquid/commit/846987d)) +* simplify ([c599761](https://github.com/autopilot3/liquid/commit/c599761)) +* Simplify external tag interface ([f6c4299](https://github.com/autopilot3/liquid/commit/f6c4299)) +* slice, truncate use runes not bytes ([a3c646c](https://github.com/autopilot3/liquid/commit/a3c646c)) +* SortByProperty can sort nil first or last ([e2fd3bb](https://github.com/autopilot3/liquid/commit/e2fd3bb)) +* Split package render->parser ([903acb8](https://github.com/autopilot3/liquid/commit/903acb8)) +* Start to separate parser and compiler ([c7d9af2](https://github.com/autopilot3/liquid/commit/c7d9af2)) +* Tags are an engine configuration ([e6f8eac](https://github.com/autopilot3/liquid/commit/e6f8eac)) +* Tags are called within a RenderContext ([41da3f9](https://github.com/autopilot3/liquid/commit/41da3f9)) +* tavis uses makefile lint ([8f148dc](https://github.com/autopilot3/liquid/commit/8f148dc)) +* tests ([d435cf5](https://github.com/autopilot3/liquid/commit/d435cf5)) +* Uh-oh – strftime gets the day of week wrong! ([25e97ed](https://github.com/autopilot3/liquid/commit/25e97ed)) +* Un-export ControlTagDefinition; create builder ([0c7a8d2](https://github.com/autopilot3/liquid/commit/0c7a8d2)) +* Unconfuse unless/endunless ([9b8da4f](https://github.com/autopilot3/liquid/commit/9b8da4f)) +* Undefined tags, filters are errors not panics ([9a807d0](https://github.com/autopilot3/liquid/commit/9a807d0)) +* Update Contributing to point to the project boards ([dd41a36](https://github.com/autopilot3/liquid/commit/dd41a36)) +* Update guidelines to refer to issues board ([aad76bd](https://github.com/autopilot3/liquid/commit/aad76bd)) +* Use C strptime to format dates ([247bec3](https://github.com/autopilot3/liquid/commit/247bec3)) +* Work around missing %-H in strftime ([fc227aa](https://github.com/autopilot3/liquid/commit/fc227aa)) +* Yacc expression parsing ([9c64c5a](https://github.com/autopilot3/liquid/commit/9c64c5a)) +* Yacc, ragel source match package moves ([a7a1ee5](https://github.com/autopilot3/liquid/commit/a7a1ee5)) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5ea25622..5384efb0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,11 +2,11 @@ Here's some ways to help: -* Select an item from the [issues list](https://github.com/osteele/liquid/issues) +* Select an item from the [issues list](https://github.com/autopilot3/liquid/issues) * Search the sources for FIXME and TODO comments. * Improve the [code coverage](https://coveralls.io/github/osteele/liquid?branch=master). -Review the [pull request template](https://github.com/osteele/liquid/blob/master/.github/PULL_REQUEST_TEMPLATE.md) before you get too far along on coding. +Review the [pull request template](https://github.com/autopilot3/liquid/blob/master/.github/PULL_REQUEST_TEMPLATE.md) before you get too far along on coding. A note on lint: `nolint: gocyclo` has been used to disable cyclomatic complexity checks on generated functions, hand-written parsers, and some of the generic interpreter functions. IMO this check isn't appropriate for those classes of functions. This isn't a license to disable cyclomatic complexity checks or lint in general. @@ -40,7 +40,7 @@ make lint ```bash godoc -http=:6060 -open http://localhost:6060/pkg/github.com/osteele/liquid/ +open http://localhost:6060/pkg/github.com/autopilot3/liquid/ ``` ### Work on the Expression Parser and Lexer diff --git a/Makefile b/Makefile index d4cf0dba..acb7bd90 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ SOURCEDIR=. SOURCES := $(shell find $(SOURCEDIR) -name '*.go') LIB = liquid -PACKAGE = github.com/osteele/liquid +PACKAGE = github.com/autopilot3/liquid LDFLAGS= .DEFAULT_GOAL: ci diff --git a/README.md b/README.md index 2e734a06..997a20e1 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ It was developed for use in the [Gojekyll](https://github.com/osteele/gojekyll) `go get gopkg.in/osteele/liquid.v1` # latest snapshot -`go get -u github.com/osteele/liquid` # development version +`go get -u github.com/autopilot3/liquid` # development version ## Usage @@ -83,7 +83,7 @@ Drops have a different design from the Shopify (Ruby) implementation. A Ruby drop sets `liquid_attributes` to a list of attributes that are exposed to Liquid. A Go drop implements `ToLiquid() interface{}`, that returns a proxy object. Conventionally, the proxy is a `map` or `struct` that defines the exposed properties. -See for additional information. +See for additional information. ### Value Types @@ -141,7 +141,7 @@ Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds -| [
Oliver Steele](https://osteele.com/)
[💻](https://github.com/osteele/liquid/commits?author=osteele "Code") [📖](https://github.com/osteele/liquid/commits?author=osteele "Documentation") [🤔](#ideas-osteele "Ideas, Planning, & Feedback") [🚇](#infra-osteele "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-osteele "Reviewed Pull Requests") [⚠️](https://github.com/osteele/liquid/commits?author=osteele "Tests") | [
James Littlejohn](https://github.com/thessem)
[💻](https://github.com/osteele/liquid/commits?author=thessem "Code") [📖](https://github.com/osteele/liquid/commits?author=thessem "Documentation") [⚠️](https://github.com/osteele/liquid/commits?author=thessem "Tests") | [
nsf](http://nosmileface.ru)
[💻](https://github.com/osteele/liquid/commits?author=nsf "Code") [⚠️](https://github.com/osteele/liquid/commits?author=nsf "Tests") | +| [
Oliver Steele](https://osteele.com/)
[💻](https://github.com/autopilot3/liquid/commits?author=osteele "Code") [📖](https://github.com/autopilot3/liquid/commits?author=osteele "Documentation") [🤔](#ideas-osteele "Ideas, Planning, & Feedback") [🚇](#infra-osteele "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-osteele "Reviewed Pull Requests") [⚠️](https://github.com/autopilot3/liquid/commits?author=osteele "Tests") | [
James Littlejohn](https://github.com/thessem)
[💻](https://github.com/autopilot3/liquid/commits?author=thessem "Code") [📖](https://github.com/autopilot3/liquid/commits?author=thessem "Documentation") [⚠️](https://github.com/autopilot3/liquid/commits?author=thessem "Tests") | [
nsf](http://nosmileface.ru)
[💻](https://github.com/autopilot3/liquid/commits?author=nsf "Code") [⚠️](https://github.com/autopilot3/liquid/commits?author=nsf "Tests") | | :---: | :---: | :---: | @@ -177,14 +177,14 @@ MIT License [coveralls-url]: https://coveralls.io/r/osteele/liquid?branch=master [coveralls-svg]: https://img.shields.io/coveralls/osteele/liquid.svg?branch=master -[godoc-url]: https://godoc.org/github.com/osteele/liquid -[godoc-svg]: https://godoc.org/github.com/osteele/liquid?status.svg +[godoc-url]: https://godoc.org/github.com/autopilot3/liquid +[godoc-svg]: https://godoc.org/github.com/autopilot3/liquid?status.svg -[license-url]: https://github.com/osteele/liquid/blob/master/LICENSE +[license-url]: https://github.com/autopilot3/liquid/blob/master/LICENSE [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg -[go-report-card-url]: https://goreportcard.com/report/github.com/osteele/liquid -[go-report-card-svg]: https://goreportcard.com/badge/github.com/osteele/liquid +[go-report-card-url]: https://goreportcard.com/report/github.com/autopilot3/liquid +[go-report-card-svg]: https://goreportcard.com/badge/github.com/autopilot3/liquid [travis-url]: https://travis-ci.org/osteele/liquid [travis-svg]: https://img.shields.io/travis/osteele/liquid.svg?branch=master diff --git a/cmd/liquid/main.go b/cmd/liquid/main.go index 2b59d00c..72db9408 100644 --- a/cmd/liquid/main.go +++ b/cmd/liquid/main.go @@ -16,7 +16,7 @@ import ( "os" "strings" - "github.com/osteele/liquid" + "github.com/autopilot3/liquid" ) // for testing diff --git a/engine.go b/engine.go index d1433648..282eab84 100644 --- a/engine.go +++ b/engine.go @@ -3,9 +3,9 @@ package liquid import ( "io" - "github.com/osteele/liquid/filters" - "github.com/osteele/liquid/render" - "github.com/osteele/liquid/tags" + "github.com/autopilot3/liquid/filters" + "github.com/autopilot3/liquid/render" + "github.com/autopilot3/liquid/tags" ) // An Engine parses template source into renderable text. @@ -40,7 +40,7 @@ func (e *Engine) RegisterBlock(name string, td Renderer) { // // Examples: // -// * https://github.com/osteele/liquid/blob/master/filters/filters.go +// * https://github.com/autopilot3/liquid/blob/master/filters/filters.go // // * https://github.com/osteele/gojekyll/blob/master/filters/filters.go // diff --git a/engine_examples_test.go b/engine_examples_test.go index 81607129..1fd8b683 100644 --- a/engine_examples_test.go +++ b/engine_examples_test.go @@ -5,7 +5,7 @@ import ( "log" "strings" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/render" ) func Example() { diff --git a/evaluator/evaluator.go b/evaluator/evaluator.go index 497254d4..3836b56f 100644 --- a/evaluator/evaluator.go +++ b/evaluator/evaluator.go @@ -5,7 +5,7 @@ import ( "reflect" "time" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) // Convert should be replaced by values.Convert. diff --git a/expressions/builders.go b/expressions/builders.go index 3f47d70f..ee9c936d 100644 --- a/expressions/builders.go +++ b/expressions/builders.go @@ -1,7 +1,7 @@ package expressions import ( - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) func makeRangeExpr(startFn, endFn func(Context) values.Value) func(Context) values.Value { diff --git a/expressions/context.go b/expressions/context.go index 4d6392ba..607fb0f5 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -1,6 +1,6 @@ package expressions -import "github.com/osteele/liquid/values" +import "github.com/autopilot3/liquid/values" // Context is the expression evaluation context. It maps variables names to values. type Context interface { diff --git a/expressions/expressions.go b/expressions/expressions.go index 61d98b66..8f6fd12a 100644 --- a/expressions/expressions.go +++ b/expressions/expressions.go @@ -7,7 +7,7 @@ import ( "fmt" "runtime/debug" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) // TODO Expression and Closure are confusing names. diff --git a/expressions/expressions.y b/expressions/expressions.y index da46b7ba..68aa08bf 100644 --- a/expressions/expressions.y +++ b/expressions/expressions.y @@ -3,7 +3,7 @@ package expressions import ( "fmt" "math" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) func init() { diff --git a/expressions/filters.go b/expressions/filters.go index f80ee6d5..eb79daf7 100644 --- a/expressions/filters.go +++ b/expressions/filters.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) // An InterpreterError is an error during expression interpretation. diff --git a/expressions/filters_test.go b/expressions/filters_test.go index 2a938de8..03fac0ef 100644 --- a/expressions/filters_test.go +++ b/expressions/filters_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" "github.com/stretchr/testify/require" ) diff --git a/expressions/parser.go b/expressions/parser.go index 88c2c824..09408ccf 100644 --- a/expressions/parser.go +++ b/expressions/parser.go @@ -7,7 +7,7 @@ package expressions import ( "fmt" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) type parseValue struct { diff --git a/expressions/y.go b/expressions/y.go index dd627031..94d5b614 100644 --- a/expressions/y.go +++ b/expressions/y.go @@ -1,3 +1,5 @@ +// Code generated by goyacc expressions.y. DO NOT EDIT. + //line expressions.y:2 package expressions @@ -6,7 +8,7 @@ import __yyfmt__ "fmt" //line expressions.y:2 import ( "fmt" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" "math" ) @@ -542,87 +544,87 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] - //line expressions.y:46 +//line expressions.y:46 { yylex.(*lexer).val = yyDollar[1].f } case 2: yyDollar = yyS[yypt-5 : yypt+1] - //line expressions.y:47 +//line expressions.y:47 { yylex.(*lexer).Assignment = Assignment{yyDollar[2].name, &expression{yyDollar[4].f}} } case 3: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:50 +//line expressions.y:50 { yylex.(*lexer).Cycle = yyDollar[2].cycle } case 4: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:51 +//line expressions.y:51 { yylex.(*lexer).Loop = yyDollar[2].loop } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:52 +//line expressions.y:52 { yylex.(*lexer).When = When{yyDollar[2].exprs} } case 6: yyDollar = yyS[yypt-2 : yypt+1] - //line expressions.y:55 +//line expressions.y:55 { yyVAL.cycle = yyDollar[2].cyclefn(yyDollar[1].s) } case 7: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:58 +//line expressions.y:58 { h, t := yyDollar[2].s, yyDollar[3].ss yyVAL.cyclefn = func(g string) Cycle { return Cycle{g, append([]string{h}, t...)} } } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:62 +//line expressions.y:62 { vals := yyDollar[1].ss yyVAL.cyclefn = func(h string) Cycle { return Cycle{Values: append([]string{h}, vals...)} } } case 9: yyDollar = yyS[yypt-0 : yypt+1] - //line expressions.y:69 +//line expressions.y:69 { yyVAL.ss = []string{} } case 10: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:70 +//line expressions.y:70 { yyVAL.ss = append([]string{yyDollar[2].s}, yyDollar[3].ss...) } case 11: yyDollar = yyS[yypt-2 : yypt+1] - //line expressions.y:73 +//line expressions.y:73 { yyVAL.exprs = append([]Expression{&expression{yyDollar[1].f}}, yyDollar[2].exprs...) } case 12: yyDollar = yyS[yypt-0 : yypt+1] - //line expressions.y:75 +//line expressions.y:75 { yyVAL.exprs = []Expression{} } case 13: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:76 +//line expressions.y:76 { yyVAL.exprs = append([]Expression{&expression{yyDollar[2].f}}, yyDollar[3].exprs...) } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:79 +//line expressions.y:79 { s, ok := yyDollar[1].val.(string) if !ok { @@ -632,40 +634,40 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line expressions.y:87 +//line expressions.y:87 { name, expr, mods := yyDollar[1].name, yyDollar[3].f, yyDollar[4].loopmods yyVAL.loop = Loop{name, &expression{expr}, mods} } case 16: yyDollar = yyS[yypt-5 : yypt+1] - //line expressions.y:93 +//line expressions.y:93 { yyVAL.f = makeRangeExpr(yyDollar[2].f, yyDollar[4].f) } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:101 +//line expressions.y:101 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:102 +//line expressions.y:102 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 20: yyDollar = yyS[yypt-0 : yypt+1] - //line expressions.y:105 +//line expressions.y:105 { yyVAL.loopmods = loopModifiers{Cols: math.MaxUint32} } case 21: yyDollar = yyS[yypt-2 : yypt+1] - //line expressions.y:106 +//line expressions.y:106 { switch yyDollar[2].name { case "reversed": @@ -677,7 +679,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:115 +//line expressions.y:115 { // TODO can this be a variable? switch yyDollar[2].name { case "cols": @@ -705,63 +707,63 @@ yydefault: } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:143 +//line expressions.y:143 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:144 +//line expressions.y:144 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 25: yyDollar = yyS[yypt-2 : yypt+1] - //line expressions.y:145 +//line expressions.y:145 { yyVAL.f = makeObjectPropertyExpr(yyDollar[1].f, yyDollar[2].name) } case 26: yyDollar = yyS[yypt-4 : yypt+1] - //line expressions.y:146 +//line expressions.y:146 { yyVAL.f = makeIndexExpr(yyDollar[1].f, yyDollar[3].f) } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:147 +//line expressions.y:147 { yyVAL.f = yyDollar[2].f } case 29: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:152 +//line expressions.y:152 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, nil) } case 30: yyDollar = yyS[yypt-4 : yypt+1] - //line expressions.y:153 +//line expressions.y:153 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, yyDollar[4].filter_params) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line expressions.y:157 +//line expressions.y:157 { yyVAL.filter_params = []valueFn{yyDollar[1].f} } case 32: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:159 +//line expressions.y:159 { yyVAL.filter_params = append(yyDollar[1].filter_params, yyDollar[3].f) } case 34: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:163 +//line expressions.y:163 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -771,7 +773,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:170 +//line expressions.y:170 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -781,7 +783,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:177 +//line expressions.y:177 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -791,7 +793,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:184 +//line expressions.y:184 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -801,7 +803,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:191 +//line expressions.y:191 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -811,7 +813,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:198 +//line expressions.y:198 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -821,13 +823,13 @@ yydefault: } case 40: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:205 +//line expressions.y:205 { yyVAL.f = makeContainsExpr(yyDollar[1].f, yyDollar[3].f) } case 42: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:210 +//line expressions.y:210 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -836,7 +838,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-3 : yypt+1] - //line expressions.y:216 +//line expressions.y:216 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { diff --git a/filters/sort_filters.go b/filters/sort_filters.go index 7ef2fb03..741d5e66 100644 --- a/filters/sort_filters.go +++ b/filters/sort_filters.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) func sortFilter(array []interface{}, key interface{}) []interface{} { diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 1e0b25c6..4cdafc0d 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -14,7 +14,7 @@ import ( "unicode" "unicode/utf8" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" "github.com/osteele/tuesday" ) diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 76a116e2..e8f67272 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -8,7 +8,7 @@ import ( yaml "gopkg.in/yaml.v2" - "github.com/osteele/liquid/expressions" + "github.com/autopilot3/liquid/expressions" "github.com/stretchr/testify/require" ) diff --git a/go.mod b/go.mod new file mode 100644 index 00000000..d76fff05 --- /dev/null +++ b/go.mod @@ -0,0 +1,10 @@ +module github.com/autopilot3/liquid + +go 1.14 + +require ( + github.com/osteele/tuesday v1.0.3 + github.com/stretchr/testify v1.5.1 + golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d // indirect + gopkg.in/yaml.v2 v2.2.2 +) diff --git a/go.sum b/go.sum new file mode 100644 index 00000000..791a648e --- /dev/null +++ b/go.sum @@ -0,0 +1,31 @@ +github.com/autopilot3/liquid v1.2.4/go.mod h1:oHTQMjfkZ9nrpsfLu6bWobx8k/9MpNXNF7TAMDpDfaI= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= +github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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/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/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d h1:TXDc+pGgyl3dOQIFVMRXQbyy9WF9eCffkgk/oyvXssc= +golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +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= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/liquid.go b/liquid.go index 341e11ba..de60b89a 100644 --- a/liquid.go +++ b/liquid.go @@ -1,7 +1,7 @@ /* Package liquid is a pure Go implementation of Shopify Liquid templates, developed for use in https://github.com/osteele/gojekyll. -See the project README https://github.com/osteele/liquid for additional information and implementation status. +See the project README https://github.com/autopilot3/liquid for additional information and implementation status. The liquid package itself is versioned in gopkg.in. Subpackages have no compatibility guarantees. Except where specifically documented, the “public” entities of subpackages are intended only for use by the liquid package and its subpackages. @@ -9,8 +9,8 @@ The liquid package itself is versioned in gopkg.in. Subpackages have no compatib package liquid import ( - "github.com/osteele/liquid/render" - "github.com/osteele/liquid/tags" + "github.com/autopilot3/liquid/render" + "github.com/autopilot3/liquid/tags" ) // Bindings is a map of variable names to values. diff --git a/parser/ast.go b/parser/ast.go index 32568175..4009c18c 100644 --- a/parser/ast.go +++ b/parser/ast.go @@ -1,7 +1,7 @@ package parser import ( - "github.com/osteele/liquid/expressions" + "github.com/autopilot3/liquid/expressions" ) // ASTNode is a node of an AST. diff --git a/parser/config.go b/parser/config.go index 162f1179..251b6ca4 100644 --- a/parser/config.go +++ b/parser/config.go @@ -1,6 +1,6 @@ package parser -import "github.com/osteele/liquid/expressions" +import "github.com/autopilot3/liquid/expressions" // A Config holds configuration information for parsing and rendering. type Config struct { diff --git a/parser/parser.go b/parser/parser.go index 9211a15d..4adf70b2 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/osteele/liquid/expressions" + "github.com/autopilot3/liquid/expressions" ) // Parse parses a source template. It returns an AST root, that can be compiled and evaluated. diff --git a/render/blocks.go b/render/blocks.go index ce80c00f..3c790290 100644 --- a/render/blocks.go +++ b/render/blocks.go @@ -4,7 +4,7 @@ import ( "io" "sort" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" ) // BlockCompiler builds a renderer for the tag instance. diff --git a/render/compiler.go b/render/compiler.go index 745504cb..b0e19d1f 100644 --- a/render/compiler.go +++ b/render/compiler.go @@ -3,7 +3,7 @@ package render import ( "fmt" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" ) // Compile parses a source template. It returns an AST root, that can be evaluated. diff --git a/render/compiler_test.go b/render/compiler_test.go index 2c00023b..56f22743 100644 --- a/render/compiler_test.go +++ b/render/compiler_test.go @@ -5,7 +5,7 @@ import ( "io" "testing" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" "github.com/stretchr/testify/require" ) diff --git a/render/config.go b/render/config.go index ab66bf27..070d67b7 100644 --- a/render/config.go +++ b/render/config.go @@ -1,7 +1,7 @@ package render import ( - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" ) // Config holds configuration information for parsing and rendering. diff --git a/render/context.go b/render/context.go index 0931924d..95bbb8d0 100644 --- a/render/context.go +++ b/render/context.go @@ -6,7 +6,7 @@ import ( "io/ioutil" "strings" - "github.com/osteele/liquid/expressions" + "github.com/autopilot3/liquid/expressions" ) // Context provides the rendering context for a tag renderer. diff --git a/render/context_test.go b/render/context_test.go index e5559258..aaf3b7eb 100644 --- a/render/context_test.go +++ b/render/context_test.go @@ -8,7 +8,7 @@ import ( "os" "testing" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" "github.com/stretchr/testify/require" ) diff --git a/render/error.go b/render/error.go index 649d79d6..7255be38 100644 --- a/render/error.go +++ b/render/error.go @@ -1,7 +1,7 @@ package render import ( - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" ) // An Error is an error during template rendering. diff --git a/render/node_context.go b/render/node_context.go index b71b90b9..a99a3ba7 100644 --- a/render/node_context.go +++ b/render/node_context.go @@ -1,7 +1,7 @@ package render import ( - "github.com/osteele/liquid/expressions" + "github.com/autopilot3/liquid/expressions" ) // nodeContext provides the evaluation context for rendering the AST. diff --git a/render/nodes.go b/render/nodes.go index 6695d2fa..5282cc7d 100644 --- a/render/nodes.go +++ b/render/nodes.go @@ -3,8 +3,8 @@ package render import ( "io" - "github.com/osteele/liquid/expressions" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/expressions" + "github.com/autopilot3/liquid/parser" ) // Node is a node of the render tree. diff --git a/render/render.go b/render/render.go index 3e8b8129..3dab54e0 100644 --- a/render/render.go +++ b/render/render.go @@ -7,7 +7,7 @@ import ( "reflect" "time" - "github.com/osteele/liquid/values" + "github.com/autopilot3/liquid/values" ) // Render renders the render tree. diff --git a/render/render_test.go b/render/render_test.go index db8d334a..81226661 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/osteele/liquid/parser" + "github.com/autopilot3/liquid/parser" "github.com/stretchr/testify/require" ) diff --git a/tags/control_flow_tags.go b/tags/control_flow_tags.go index 6639a393..ff56ff5e 100644 --- a/tags/control_flow_tags.go +++ b/tags/control_flow_tags.go @@ -3,9 +3,9 @@ package tags import ( "io" - e "github.com/osteele/liquid/expressions" - "github.com/osteele/liquid/render" - "github.com/osteele/liquid/values" + e "github.com/autopilot3/liquid/expressions" + "github.com/autopilot3/liquid/render" + "github.com/autopilot3/liquid/values" ) type caseInterpreter interface { diff --git a/tags/control_flow_tags_test.go b/tags/control_flow_tags_test.go index 8e357167..817371f4 100644 --- a/tags/control_flow_tags_test.go +++ b/tags/control_flow_tags_test.go @@ -7,8 +7,8 @@ import ( "io/ioutil" "testing" - "github.com/osteele/liquid/parser" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/parser" + "github.com/autopilot3/liquid/render" "github.com/stretchr/testify/require" ) diff --git a/tags/include_tag.go b/tags/include_tag.go index 6442a248..c14ab9a2 100644 --- a/tags/include_tag.go +++ b/tags/include_tag.go @@ -4,7 +4,7 @@ import ( "io" "path/filepath" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/render" ) func includeTag(source string) (func(io.Writer, render.Context) error, error) { diff --git a/tags/include_tag_test.go b/tags/include_tag_test.go index 52647ab1..bdb35d6d 100644 --- a/tags/include_tag_test.go +++ b/tags/include_tag_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/osteele/liquid/parser" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/parser" + "github.com/autopilot3/liquid/render" "github.com/stretchr/testify/require" ) diff --git a/tags/iteration_tags.go b/tags/iteration_tags.go index 581ff851..74ea44e9 100644 --- a/tags/iteration_tags.go +++ b/tags/iteration_tags.go @@ -8,8 +8,8 @@ import ( yaml "gopkg.in/yaml.v2" - "github.com/osteele/liquid/expressions" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/expressions" + "github.com/autopilot3/liquid/render" ) // An IterationKeyedMap is a map that yields its keys, instead of (key, value) pairs, when iterated. diff --git a/tags/iteration_tags_test.go b/tags/iteration_tags_test.go index d3acfecc..02af2cf7 100644 --- a/tags/iteration_tags_test.go +++ b/tags/iteration_tags_test.go @@ -10,8 +10,8 @@ import ( yaml "gopkg.in/yaml.v2" - "github.com/osteele/liquid/parser" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/parser" + "github.com/autopilot3/liquid/render" "github.com/stretchr/testify/require" ) diff --git a/tags/standard_tags.go b/tags/standard_tags.go index 38b3e5ab..b05e5fa4 100644 --- a/tags/standard_tags.go +++ b/tags/standard_tags.go @@ -4,8 +4,8 @@ package tags import ( "io" - "github.com/osteele/liquid/expressions" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/expressions" + "github.com/autopilot3/liquid/render" ) // AddStandardTags defines the standard Liquid tags. diff --git a/tags/standard_tags_test.go b/tags/standard_tags_test.go index a0cbf6c6..05bf8577 100644 --- a/tags/standard_tags_test.go +++ b/tags/standard_tags_test.go @@ -6,8 +6,8 @@ import ( "io/ioutil" "testing" - "github.com/osteele/liquid/parser" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/parser" + "github.com/autopilot3/liquid/render" "github.com/stretchr/testify/require" ) diff --git a/template.go b/template.go index 0628272a..7614b938 100644 --- a/template.go +++ b/template.go @@ -3,8 +3,8 @@ package liquid import ( "bytes" - "github.com/osteele/liquid/parser" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/parser" + "github.com/autopilot3/liquid/render" ) // A Template is a compiled Liquid template. It knows how to evaluate itself within a variable binding environment, to create a rendered byte slice. diff --git a/template_test.go b/template_test.go index 1f164496..5dc5cfd9 100644 --- a/template_test.go +++ b/template_test.go @@ -5,7 +5,7 @@ import ( "sync" "testing" - "github.com/osteele/liquid/render" + "github.com/autopilot3/liquid/render" "github.com/stretchr/testify/require" ) From fe5cffc39678467d3cbd3549e07ae21165ed2d7b Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Fri, 15 May 2020 16:21:19 +1000 Subject: [PATCH 02/96] Add ability to find variables --- expressions/context.go | 122 ++++++++++++++++++++++++++++++++++++++++- render/node_context.go | 21 ++++++- render/render.go | 10 ++++ template.go | 4 ++ values/value.go | 1 + 5 files changed, 154 insertions(+), 4 deletions(-) diff --git a/expressions/context.go b/expressions/context.go index 607fb0f5..07c40b76 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -1,6 +1,10 @@ package expressions -import "github.com/autopilot3/liquid/values" +import ( + "reflect" + + "github.com/autopilot3/liquid/values" +) // Context is the expression evaluation context. It maps variables names to values. type Context interface { @@ -39,3 +43,119 @@ func (c *context) Get(name string) interface{} { func (c *context) Set(name string, value interface{}) { c.bindings[name] = value } + +type varsContext struct { + Config + variables map[string]interface{} +} + +// NewContext makes a new expression evaluation context. +func NewVariablesContext(vars map[string]interface{}, cfg Config) Context { + return &varsContext{ + Config: cfg, + variables: vars, + } +} + +func (c *varsContext) Clone() Context { + return c +} + +type traceValue struct { + name string + variables map[string]interface{} +} + +// just to validate interface complience +var valInterface values.Value = &traceValue{} + +func (t *traceValue) Interface() interface{} { + return values.NilValue +} + +func (t *traceValue) Int() int { + return 0 +} + +// Comparison +func (t *traceValue) Equal(values.Value) bool { + return false +} + +func (t *traceValue) Less(values.Value) bool { + return false +} + +func (t *traceValue) Contains(values.Value) bool { + return false +} +func (t *traceValue) IndexValue(values.Value) values.Value { + return values.NilValue +} + +func (t *traceValue) PropertyValue(v values.Value) values.Value { + key, ok := v.Interface().(string) + if ok { + m, ok := t.variables[t.name] + if !ok || m == nil { + m = make(map[string]interface{}, 1) + t.variables[t.name] = m + } + si := m.(map[string]interface{}) + si[key] = nil + } + return values.NilValue +} + +func (t *traceValue) Test() bool { + return true +} + +// Get looks up a variable value in the expression context. +func (c *varsContext) Get(name string) interface{} { + _, ok := c.variables[name] + if !ok { + c.variables[name] = nil + } + return &traceValue{ + name: name, + variables: c.variables, + } +} + +// Set sets a variable value in the expression context. +func (c *varsContext) Set(name string, value interface{}) { +} + +func (ctx *varsContext) ApplyFilter(name string, receiver valueFn, params []valueFn) (interface{}, error) { + filter, ok := ctx.filters[name] + if !ok { + panic(UndefinedFilter(name)) + } + fr := reflect.ValueOf(filter) + args := []interface{}{receiver(ctx).Interface()} + for i, param := range params { + if i+1 < fr.Type().NumIn() && isClosureInterfaceType(fr.Type().In(i+1)) { + expr, err := Parse(param(ctx).Interface().(string)) + if err != nil { + panic(err) + } + args = append(args, closure{expr, ctx}) + } else { + args = append(args, param(ctx).Interface()) + } + } + out, err := values.Call(fr, args) + if err != nil { + if e, ok := err.(*values.CallParityError); ok { + err = &values.CallParityError{NumArgs: e.NumArgs - 1, NumParams: e.NumParams - 1} + } + return nil, err + } + switch out := out.(type) { + case []byte: + return string(out), nil + default: + return out, nil + } +} diff --git a/render/node_context.go b/render/node_context.go index a99a3ba7..652031ae 100644 --- a/render/node_context.go +++ b/render/node_context.go @@ -9,8 +9,9 @@ import ( // This type has a clumsy name so that render.Context, in the public API, can // have a clean name that doesn't stutter. type nodeContext struct { - bindings map[string]interface{} - config Config + bindings map[string]interface{} + config Config + findVariablesOnly bool } // newNodeContext creates a new evaluation context. @@ -21,10 +22,24 @@ func newNodeContext(scope map[string]interface{}, c Config) nodeContext { for k, v := range scope { vars[k] = v } - return nodeContext{vars, c} + return nodeContext{ + bindings: vars, + config: c, + } +} + +func newFindVariablesNodeContext(c Config) nodeContext { + return nodeContext{ + bindings: make(map[string]interface{}), + config: c, + findVariablesOnly: true, + } } // Evaluate evaluates an expression within the template context. func (c nodeContext) Evaluate(expr expressions.Expression) (out interface{}, err error) { + if c.findVariablesOnly { + return expr.Evaluate(expressions.NewVariablesContext(c.bindings, c.config.Config.Config)) + } return expr.Evaluate(expressions.NewContext(c.bindings, c.config.Config.Config)) } diff --git a/render/render.go b/render/render.go index 3dab54e0..c2d667c7 100644 --- a/render/render.go +++ b/render/render.go @@ -4,6 +4,7 @@ package render import ( "fmt" "io" + "io/ioutil" "reflect" "time" @@ -22,6 +23,15 @@ func Render(node Node, w io.Writer, vars map[string]interface{}, c Config) Error return nil } +func FindVariables(node Node, c Config) (map[string]interface{}, Error) { + tw := trimWriter{w: ioutil.Discard} + ctx := newFindVariablesNodeContext(c) + if err := node.render(&tw, ctx); err != nil { + return nil, err + } + return ctx.bindings, nil +} + // RenderASTSequence renders a sequence of nodes. func (c nodeContext) RenderSequence(w io.Writer, seq []Node) Error { tw := trimWriter{w: w} diff --git a/template.go b/template.go index 7614b938..828cb3b6 100644 --- a/template.go +++ b/template.go @@ -42,3 +42,7 @@ func (t *Template) RenderString(b Bindings) (string, SourceError) { } return string(bs), nil } + +func (t *Template) FindVariables() (map[string]interface{}, SourceError) { + return render.FindVariables(t.root, *t.cfg) +} diff --git a/values/value.go b/values/value.go index 6bee0be0..af80c36c 100644 --- a/values/value.go +++ b/values/value.go @@ -107,6 +107,7 @@ func (v wrapperValue) Int() int { } // interned values +var NilValue = wrapperValue{nil} var nilValue = wrapperValue{nil} var falseValue = wrapperValue{false} var trueValue = wrapperValue{true} From e3fc505375366fd92b515782002535d5d85a4de8 Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Fri, 26 Jun 2020 12:37:06 +1000 Subject: [PATCH 03/96] Fix `{{ people.custom.company | default: 'there' }}` variables --- expressions/builders.go | 4 +++ expressions/context.go | 73 +++++++++-------------------------------- 2 files changed, 19 insertions(+), 58 deletions(-) diff --git a/expressions/builders.go b/expressions/builders.go index ee9c936d..b6b5d5da 100644 --- a/expressions/builders.go +++ b/expressions/builders.go @@ -40,6 +40,10 @@ func makeIndexExpr(sequenceFn, indexFn func(Context) values.Value) func(Context) func makeObjectPropertyExpr(objFn func(Context) values.Value, name string) func(Context) values.Value { index := values.ValueOf(name) return func(ctx Context) values.Value { + k, ok := ctx.(*varsContext) + if ok { + k.BuildVar(name) + } return objFn(ctx).PropertyValue(index) } } diff --git a/expressions/context.go b/expressions/context.go index 07c40b76..c26a1a95 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -46,7 +46,8 @@ func (c *context) Set(name string, value interface{}) { type varsContext struct { Config - variables map[string]interface{} + variables map[string]interface{} + currentVars []string } // NewContext makes a new expression evaluation context. @@ -57,70 +58,26 @@ func NewVariablesContext(vars map[string]interface{}, cfg Config) Context { } } -func (c *varsContext) Clone() Context { - return c -} - -type traceValue struct { - name string - variables map[string]interface{} -} - -// just to validate interface complience -var valInterface values.Value = &traceValue{} - -func (t *traceValue) Interface() interface{} { - return values.NilValue -} - -func (t *traceValue) Int() int { - return 0 -} - -// Comparison -func (t *traceValue) Equal(values.Value) bool { - return false -} - -func (t *traceValue) Less(values.Value) bool { - return false +func (c *varsContext) BuildVar(name string) { + c.currentVars = append(c.currentVars, name) } -func (t *traceValue) Contains(values.Value) bool { - return false -} -func (t *traceValue) IndexValue(values.Value) values.Value { - return values.NilValue -} - -func (t *traceValue) PropertyValue(v values.Value) values.Value { - key, ok := v.Interface().(string) - if ok { - m, ok := t.variables[t.name] - if !ok || m == nil { - m = make(map[string]interface{}, 1) - t.variables[t.name] = m - } - si := m.(map[string]interface{}) - si[key] = nil - } - return values.NilValue -} - -func (t *traceValue) Test() bool { - return true +func (c *varsContext) Clone() Context { + return c } // Get looks up a variable value in the expression context. func (c *varsContext) Get(name string) interface{} { - _, ok := c.variables[name] - if !ok { - c.variables[name] = nil - } - return &traceValue{ - name: name, - variables: c.variables, + if len(c.currentVars) == 0 { + c.variables[name] = struct{}{} + } else { + for idx := len(c.currentVars) - 1; idx >= 0; idx-- { + name += "." + c.currentVars[idx] + } + c.variables[name] = struct{}{} + c.currentVars = c.currentVars[:0] } + return values.ValueOf(nil) } // Set sets a variable value in the expression context. From d23f1cea88b8bcea63d4c0a172d5ce292cda6112 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 15 Oct 2020 15:46:00 +1100 Subject: [PATCH 04/96] new filter for subject --- engine.go | 100 ++++++++++++++++- go.mod | 4 +- go.sum | 321 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 419 insertions(+), 6 deletions(-) diff --git a/engine.go b/engine.go index 282eab84..bb297274 100644 --- a/engine.go +++ b/engine.go @@ -1,8 +1,12 @@ package liquid import ( + "fmt" "io" + "strings" + "time" + "github.com/autopilot3/ap3-types-go/types/date" "github.com/autopilot3/liquid/filters" "github.com/autopilot3/liquid/render" "github.com/autopilot3/liquid/tags" @@ -15,10 +19,98 @@ type Engine struct{ cfg render.Config } // NewEngine returns a new Engine. func NewEngine() *Engine { - e := Engine{render.NewConfig()} - filters.AddStandardFilters(&e.cfg) - tags.AddStandardTags(e.cfg) - return &e + engine := &Engine{render.NewConfig()} + filters.AddStandardFilters(&engine.cfg) + tags.AddStandardTags(engine.cfg) + engine.RegisterFilter("hideCountryCode", func(s string) string { + splits := strings.Split(s, " ") + if len(splits) == 2 { + return splits[1] + } + return s + }) + + engine.RegisterFilter("dateTimeFormatOrDefault", func(s time.Time, format string, defaultValue string) string { + if s.IsZero() { + if defaultValue != "" { + return defaultValue + } + + return "" + } + + switch format { + case "mdy12": + return s.Format("Jan 02 2006 3:04 PM") + case "mdy24": + return s.Format("Jan 02 2006 15:04") + case "dmy12": + return s.Format("02 Jan 2006 3:04 PM") + case "dmy24": + return s.Format("02 Jan 2006 15:04") + default: + return s.String() + } + }) + + engine.RegisterFilter("dateFormatOrDefault", func(s date.Date, format string, defaultValue string) string { + if s == 0 { + if defaultValue != "" { + return defaultValue + } + return "" + } + + switch format { + case "mdy": + return fmt.Sprintf("%d/%d/%d", s.Month(), s.Day(), s.Year()) + case "dmy": + return fmt.Sprintf("%d/%d/%d", s.Day(), s.Month(), s.Year()) + default: + return s.String() + } + }) + + engine.RegisterFilter("decimal", func(s int64, format string, currency string) string { + var formatTemplate string + switch format { + case "whole": + formatTemplate = "%.0f" + case "one": + formatTemplate = "%.1f" + case "two": + formatTemplate = "%.2f" + default: + formatTemplate = "%.2f" + } + + value := fmt.Sprintf(formatTemplate, float64(s)/100) + if currency != "" { + return currency + value + } + + return value + }) + + engine.RegisterFilter("booleanFormat", func(s bool, format string) string { + if format == "yesNo" { + if s { + return "Yes" + } + return "No" + } + if format == "onOff" { + if s { + return "On" + } + return "Off" + } + if s { + return "True" + } + return "False" + }) + return engine } // RegisterBlock defines a block e.g. {% tag %}…{% endtag %}. diff --git a/go.mod b/go.mod index d76fff05..05db9226 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/autopilot3/liquid go 1.14 require ( + github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.5.1 - golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d // indirect - gopkg.in/yaml.v2 v2.2.2 + gopkg.in/yaml.v2 v2.3.0 ) diff --git a/go.sum b/go.sum index 791a648e..fddbbf35 100644 --- a/go.sum +++ b/go.sum @@ -1,31 +1,352 @@ +9fans.net/go v0.0.0-20181112161441-237454027057/go.mod h1:diCsxrliIURU9xsYtjCp5AbpQKqdhKmf0ujWDUSkfoY= +9fans.net/go v0.0.2/go.mod h1:lfPdxjq9v8pVQXUMBCx5EO5oLXWQFlKRQgs1kEkjoIM= +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.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +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/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/autopilot3/ap3-client-go v0.0.0-20200612011247-9b7352951a11/go.mod h1:GpczvGLXbuZHI7Ld8Rtlv+xnWr52BxU9skBK59ClhS0= +github.com/autopilot3/ap3-config-go v0.0.0-20190902072625-b22adcd3a1e1/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= +github.com/autopilot3/ap3-config-go v0.0.0-20200630042032-646f272a79b9/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200211061454-48c445db3c72/go.mod h1:NXrQo8sAaW//J6cb4Cp25D6ehk+qYa3MznfJy+zhtw4= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200421061531-fdb77916ef53/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200820043429-164cdc554333 h1:kKHhZ0+Amd1oABd6XW+om0jtl6r5jytCqgjGUmv8m1o= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200820043429-164cdc554333/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-types-go v0.0.0-20200319062058-3b94959eea5a/go.mod h1:MNl6xFXknu/xpGmgpbNomot+LEUS/9nvj85aPVFE1vo= +github.com/autopilot3/ap3-types-go v0.0.0-20200610062123-2056c77dad72/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= +github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350 h1:HOlOPJ0QXuzK+uiNliceEPCXav6+4Vd6O3XFs5nND3k= +github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= github.com/autopilot3/liquid v1.2.4/go.mod h1:oHTQMjfkZ9nrpsfLu6bWobx8k/9MpNXNF7TAMDpDfaI= +github.com/autopilot3/uasurfer v0.0.0-20200701072946-9ade43ee0e99/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= +github.com/autopilothq/base62 v0.0.0-20180507014355-3a012c7ef818/go.mod h1:H2/Uf5WyB5fyCrNwyOv1aJJSlnreOg12lyqGKSsiXQQ= +github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= +github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.23/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.29.28/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= +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/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/cweill/gotests v1.5.3/go.mod h1:XZYOJkGVkCRoymaIzmp9Wyi3rUgfA3oOnkuljYrjFV8= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidrjenni/reftools v0.0.0-20191222082827-65925cf01315/go.mod h1:QXiCu8WKyFL/X+NMCmtxoCq/jSOb54R4iDXdjsaYEWA= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +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/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +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-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-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= +github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= +github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= +github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= +github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= +github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= +github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= +github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= +github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gocql/gocql v0.0.0-20200624222514-34081eda590e/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gojp/goreportcard v0.0.0-20191001233754-41818f5fd295/go.mod h1:/DA2Xpp+OaR3EHafQSnT9SKOfbG2NPQR/qp6Qr8AgIw= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +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/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.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +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/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/haya14busa/gopkgs v1.0.0/go.mod h1:QFVUm30EQcji7sZtl7ry4E+bwtxx63Ufi7Mf9JDpvpI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/johnfercher/maroto v0.27.0/go.mod h1:z/5eo/hH1g+01K4Mm0IVVbixHibtaNbZ9vHf+2H6fpM= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/josharian/impl v0.0.0-20191119165012-6b9658ad00c7/go.mod h1:t4Tr0tn92eq5ISef4cS5plFAMYAqZlAXtgUcKE6y8nw= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.4.2/go.mod h1:rZsO0wEsunjT/L9stF3fJjYbAHgqNYuQB4B8FWvBck0= +github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= +github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +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.2/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/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/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mdempsky/gocode v0.0.0-20191202075140-939b4a677f2f/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +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/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.6/go.mod h1:BL1NOtaBQ5/y97djERRVWNouMW7GT3gxnmbE/eC8u8A= +github.com/nats-io/nats.go v1.9.2/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.4/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= +github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/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 v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/godef v1.1.1/go.mod h1:oEo1eMy1VUEHUzUIX4F7IqvMJRiz9UId44mvnR8oPlQ= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= 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.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +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 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= +github.com/uber/jaeger-client-go v2.17.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.0.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zmb3/gogetdoc v0.0.0-20190228002656-b37376c5da6a/go.mod h1:ofmGw6LrMypycsiWcyug6516EXpIxSbZ+uI9ppGypfY= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.2.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.3.3 h1:9kX7WY6sU/5qBuhm5mdnNWdqaDAQKB2qSZOd5wMEPGQ= +go.mongodb.org/mongo-driver v1.3.3/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +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-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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-20180906233101-161cd47e91fd/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-20190125091013-d26f9f9a57f3/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-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-20200202094626-16171245cfb2/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/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/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-20190412183630-56d357773e84/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/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-20180909124046-d0be0721c37e/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-20181122145206-62eef0e2fa9b/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-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181130195746-895048a75ecf/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181207195948-8634b1ecd393/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-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190408220357-e5b8258f4918/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/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-20200212213342-7a21e308cf6c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200213224642-88e652f7a869/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d h1:TXDc+pGgyl3dOQIFVMRXQbyy9WF9eCffkgk/oyvXssc= golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200617212913-87be026d3888/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools/gopls v0.3.2/go.mod h1:k7Vveg58twOi4lDvLKpDIC04HGw8JJmRDBtJuSPGuI8= 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= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +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/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-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +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.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/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.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +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-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +mvdan.cc/xurls/v2 v2.1.0/go.mod h1:5GrSd9rOnKOpZaji1OZLYL/yeAAtGDlo/cFe+8K5n8E= From 808c2193f5bae7c8058a74879dd6f999e6be1ecf Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 15 Oct 2020 15:47:08 +1100 Subject: [PATCH 05/96] go mod tidy --- go.sum | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go.sum b/go.sum index fddbbf35..857c4cd1 100644 --- a/go.sum +++ b/go.sum @@ -23,7 +23,6 @@ github.com/autopilot3/ap3-types-go v0.0.0-20200319062058-3b94959eea5a/go.mod h1: github.com/autopilot3/ap3-types-go v0.0.0-20200610062123-2056c77dad72/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350 h1:HOlOPJ0QXuzK+uiNliceEPCXav6+4Vd6O3XFs5nND3k= github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/liquid v1.2.4/go.mod h1:oHTQMjfkZ9nrpsfLu6bWobx8k/9MpNXNF7TAMDpDfaI= github.com/autopilot3/uasurfer v0.0.0-20200701072946-9ade43ee0e99/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/autopilothq/base62 v0.0.0-20180507014355-3a012c7ef818/go.mod h1:H2/Uf5WyB5fyCrNwyOv1aJJSlnreOg12lyqGKSsiXQQ= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= @@ -137,8 +136,10 @@ github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0 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.2/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 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= @@ -309,8 +310,6 @@ golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200212213342-7a21e308cf6c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200213224642-88e652f7a869/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d h1:TXDc+pGgyl3dOQIFVMRXQbyy9WF9eCffkgk/oyvXssc= -golang.org/x/tools v0.0.0-20200514211350-d0dc4d41b76d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200617212913-87be026d3888/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools/gopls v0.3.2/go.mod h1:k7Vveg58twOi4lDvLKpDIC04HGw8JJmRDBtJuSPGuI8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -332,6 +331,7 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji 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 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= From ec1875abd1b8a9004b052bc1a55f0916290fb0b2 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 15 Oct 2020 16:13:27 +1100 Subject: [PATCH 06/96] add phone default support --- engine.go | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/engine.go b/engine.go index bb297274..f0f60b75 100644 --- a/engine.go +++ b/engine.go @@ -22,9 +22,12 @@ func NewEngine() *Engine { engine := &Engine{render.NewConfig()} filters.AddStandardFilters(&engine.cfg) tags.AddStandardTags(engine.cfg) - engine.RegisterFilter("hideCountryCode", func(s string) string { + engine.RegisterFilter("hideCountryCodeAndDefault", func(s string, hide bool, defaultValue string) string { + if s == "" { + return defaultValue + } splits := strings.Split(s, " ") - if len(splits) == 2 { + if len(splits) == 2 && hide { return splits[1] } return s @@ -32,11 +35,7 @@ func NewEngine() *Engine { engine.RegisterFilter("dateTimeFormatOrDefault", func(s time.Time, format string, defaultValue string) string { if s.IsZero() { - if defaultValue != "" { - return defaultValue - } - - return "" + return defaultValue } switch format { @@ -55,10 +54,7 @@ func NewEngine() *Engine { engine.RegisterFilter("dateFormatOrDefault", func(s date.Date, format string, defaultValue string) string { if s == 0 { - if defaultValue != "" { - return defaultValue - } - return "" + return defaultValue } switch format { From 1c32e6b8f7beb1035bb602b49fbaebd392aa3b5b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 15 Oct 2020 18:04:38 +1100 Subject: [PATCH 07/96] custom tags --- customtags/tags.go | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 customtags/tags.go diff --git a/customtags/tags.go b/customtags/tags.go new file mode 100644 index 00000000..483bbec6 --- /dev/null +++ b/customtags/tags.go @@ -0,0 +1,64 @@ +package customtags + +import "fmt" + +type TagType string + +const ( + TagTypeMergeTag TagType = "merge" + TagTypeMergeText TagType = "text" +) + +type Tag struct { + ID string `json:"id" bson:"id"` + Type TagType `json:"type" bson:"type"` + Icon string `json:"icon" bson:"icon"` + Title string `json:"title" bson:"title"` + DisplayType string `json:"displayType" bson:"displayType"` + LiquidName string `json:"liquidName" bson:"liquidName"` + DefaultValue string `json:"defaultValue" bson:"defaultValue"` + FormatOption string `json:"formatOption" bson:"formatOption"` + FieldID string `json:"namespaceId" bson:"namespaceId"` +} + +func (t *Tag) GetPreviewString() (string, error) { + if t.Type == TagTypeMergeText { + return t.Title, nil + } + if t.Type == TagTypeMergeTag { + return fmt.Sprintf("[%s]", t.Title), nil + } + return "", fmt.Errorf("unsupported subject merge tag %+v type: %s", t, t.Type) +} + +func (t *Tag) GetLiquidString() (string, error) { + if t.Type == TagTypeMergeText { + return t.Title, nil + } + if t.Type == TagTypeMergeTag { + switch t.DisplayType { + case "date": + return fmt.Sprintf(`{{ %s | dateFormatOrDefault: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil + case "time": + return fmt.Sprintf(`{{ %s | dateTimeFormatOrDefault: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil + case "bool": + return fmt.Sprintf(`{{ %s | booleanFormat: "%s" }}`, t.LiquidName, t.FormatOption), nil + case "currency", "decimal", "aggregate": + return fmt.Sprintf(`{{ %s | decimal: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil + case "phone": + willHide := false + if t.FormatOption == "hide" { + willHide = true + } + return fmt.Sprintf(`{{ %s | hideCountryCodeAndDefault: %t, "%s" }}`, t.LiquidName, willHide, t.DefaultValue), nil + default: + result := `{{ ` + t.LiquidName + if t.DefaultValue != "" { + result += ` | default: "` + t.DefaultValue + `"` + } + result += ` }}` + return result, nil + } + } + return "", fmt.Errorf("unsupported subject merge tag %+v type: %s", t, t.Type) +} From e40a7483ff1f9fc1b33199e55327772a3d782fcc Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 15 Oct 2020 18:09:26 +1100 Subject: [PATCH 08/96] crm display types const to avoid cyclic import --- customtags/tags.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index 483bbec6..cc44f94d 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -2,6 +2,16 @@ package customtags import "fmt" +const ( + TagDisplayTypeDate string = "date" + TagDisplayTypeTime string = "time" + TagDisplayTypeBool string = "bool" + TagDisplayTypeCurrency string = "currency" + TagDisplayTypeDecimal string = "decimal" + TagDisplayTypeAggregate string = "aggregate" + TagDisplayTypePhone string = "phone" +) + type TagType string const ( @@ -37,15 +47,15 @@ func (t *Tag) GetLiquidString() (string, error) { } if t.Type == TagTypeMergeTag { switch t.DisplayType { - case "date": + case TagDisplayTypeDate: return fmt.Sprintf(`{{ %s | dateFormatOrDefault: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil - case "time": + case TagDisplayTypeTime: return fmt.Sprintf(`{{ %s | dateTimeFormatOrDefault: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil - case "bool": + case TagDisplayTypeBool: return fmt.Sprintf(`{{ %s | booleanFormat: "%s" }}`, t.LiquidName, t.FormatOption), nil - case "currency", "decimal", "aggregate": + case TagDisplayTypeCurrency, TagDisplayTypeDecimal, TagDisplayTypeAggregate: return fmt.Sprintf(`{{ %s | decimal: "%s", "%s" }}`, t.LiquidName, t.FormatOption, t.DefaultValue), nil - case "phone": + case TagDisplayTypePhone: willHide := false if t.FormatOption == "hide" { willHide = true From 461df2237ae00e452ddcd2410ad791dd80a0bbab Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Wed, 13 Jan 2021 11:06:07 +1100 Subject: [PATCH 09/96] fix bad naming --- customtags/tags.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index cc44f94d..454a381a 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -24,11 +24,11 @@ type Tag struct { Type TagType `json:"type" bson:"type"` Icon string `json:"icon" bson:"icon"` Title string `json:"title" bson:"title"` - DisplayType string `json:"displayType" bson:"displayType"` - LiquidName string `json:"liquidName" bson:"liquidName"` - DefaultValue string `json:"defaultValue" bson:"defaultValue"` - FormatOption string `json:"formatOption" bson:"formatOption"` - FieldID string `json:"namespaceId" bson:"namespaceId"` + DisplayType string `json:"display_type" bson:"display_type"` + LiquidName string `json:"liquid_name" bson:"liquid_name"` + DefaultValue string `json:"default_value" bson:"default_value"` + FormatOption string `json:"format_option" bson:"format_option"` + FieldID string `json:"field_id" bson:"field_id"` } func (t *Tag) GetPreviewString() (string, error) { From 148991493f4ff12ae96b941dc30d56a3a8349db9 Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Wed, 13 Jan 2021 12:10:50 +1100 Subject: [PATCH 10/96] fix type --- customtags/tags.go | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index 454a381a..fa410121 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -1,6 +1,10 @@ package customtags -import "fmt" +import ( + "fmt" + + crmtypes "github.com/autopilot3/ap3-crm-api-go/services/types" +) const ( TagDisplayTypeDate string = "date" @@ -20,15 +24,15 @@ const ( ) type Tag struct { - ID string `json:"id" bson:"id"` - Type TagType `json:"type" bson:"type"` - Icon string `json:"icon" bson:"icon"` - Title string `json:"title" bson:"title"` - DisplayType string `json:"display_type" bson:"display_type"` - LiquidName string `json:"liquid_name" bson:"liquid_name"` - DefaultValue string `json:"default_value" bson:"default_value"` - FormatOption string `json:"format_option" bson:"format_option"` - FieldID string `json:"field_id" bson:"field_id"` + ID string `json:"id" bson:"id"` + Type TagType `json:"type" bson:"type"` + Icon string `json:"icon" bson:"icon"` + Title string `json:"title" bson:"title"` + DisplayType string `json:"display_type" bson:"display_type"` + LiquidName string `json:"liquid_name" bson:"liquid_name"` + DefaultValue string `json:"default_value" bson:"default_value"` + FormatOption string `json:"format_option" bson:"format_option"` + FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` } func (t *Tag) GetPreviewString() (string, error) { From 11c4dae78a2360841ebb500c187e755ddd3ffff4 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 18 Mar 2021 09:47:21 +1100 Subject: [PATCH 11/96] add activity id --- customtags/tags.go | 1 + go.mod | 7 +- go.sum | 1677 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 1672 insertions(+), 13 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index fa410121..70509d64 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -33,6 +33,7 @@ type Tag struct { DefaultValue string `json:"default_value" bson:"default_value"` FormatOption string `json:"format_option" bson:"format_option"` FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` + ActivityID crmtypes.FieldID `json:"activity_id" bson:"activity_id"` } func (t *Tag) GetPreviewString() (string, error) { diff --git a/go.mod b/go.mod index 05db9226..ef0a0406 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,9 @@ module github.com/autopilot3/liquid go 1.14 require ( - github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350 + github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a + github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.5.1 - gopkg.in/yaml.v2 v2.3.0 + github.com/stretchr/testify v1.6.1 + gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index 857c4cd1..60bb435b 100644 --- a/go.sum +++ b/go.sum @@ -3,65 +3,899 @@ 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.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +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.55.0/go.mod h1:ZHmoY+/lIMNkN2+fBmuTiqZ4inFhvQad8ft7MT8IV5Y= +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 v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.76.0/go.mod h1:r9EvIAvLrunusnetGdQ50M/gKui1x3zdGW/VELGkdpw= +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/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +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= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/360EntSecGroup-Skylar/excelize/v2 v2.3.1-0.20200906113200-01afc6e03f1d/go.mod h1:h7k4Sv9IrlPKj4z2hxxON5dioHrKqzMhqREeMdRauEA= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Bowery/prompt v0.0.0-20190419144237-972d0ceb96f5/go.mod h1:4/6eNcqZ09BZ9wLK3tZOjBA1nDj+B0728nlX5YRlSmQ= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= 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/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Djarvur/go-err113 v0.0.0-20200511133814-5174e21577d5/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/EdlinOrg/prominentcolor v1.0.0/go.mod h1:mYmDsxfcmBz6izH/SqtSzfsUiZdPNPpPgUPKCZq70KQ= +github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4= +github.com/HdrHistogram/hdrhistogram-go v1.0.0 h1:jivTvI9tBw5B8wW9Qd0uoQ2qaajb29y4TPhYTgh8Lb0= +github.com/HdrHistogram/hdrhistogram-go v1.0.0/go.mod h1:YzE1EgsuAz8q9lfGdlxBZo2Ma655+PfKp2mlzcAqIFw= +github.com/Joker/hpp v0.0.0-20180418125244-6893e659854a/go.mod h1:MzD2WMdSxvbHw5fM/OXOFily/lipJWRc9C1px0Mt0ZE= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Joker/jade v1.0.0/go.mod h1:efZIdO0py/LtcJRSa/j2WEklMSAw84WV0zZVMxNToB8= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= +github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= 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/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= +github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= +github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= +github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= +github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0= +github.com/antchfx/xmlquery v1.2.4/go.mod h1:KQQuESaxSlqugE2ZBcM/qn+ebIpt+d+4Xx7YcSGAIrM= +github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= +github.com/antchfx/xpath v1.1.8/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/autopilot3/ap2-assets-api-go v0.0.0-20200721015808-caa4b2c52701/go.mod h1:uMsnyr85TkjIvEi9TQcseorZx1bY4MOVmxDVG6PnrV0= +github.com/autopilot3/ap2-settings-api-go v0.0.0-20210127000609-43329f35fb0e/go.mod h1:tmBNi6Ob7HfTiPe2EVdygp1jtRx6WhXcEAMlBcxGF00= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200702065812-b3e6262f70ef/go.mod h1:XuY9jWBiEyaG0JXK5aRQZctnvJL/b0uZNmoIb0z1sLg= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200713002800-e0727d1a89fa/go.mod h1:WLpjr58ItrCZK1odT5S+eAs4yoenqypP8v5n2IjDMZQ= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200724051446-a8dc3fcd4f2b/go.mod h1:Jb/ATgbKCTFg++0GG/XdJcw6bWq5R1Rwkugl9h9niwI= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200728035643-5c454a0ee114/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200729021629-a859e5ecd2a7/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200803032816-cd637da94ae4/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200804001547-5b2840072b1d/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200804071625-1df8bdea6bd3/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200808001805-be66ab253e5c/go.mod h1:L7Ko5/2Y5TwoURbvpTXG+5MG0fqcxcrn+xEXY8qcpds= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200814021708-e6228a2658e4/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200820062241-aaddaca219a3/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200826052821-d15f04f3724b/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200827132527-f253b0dc3466/go.mod h1:CpQD1FDKoyHgufAhBTxi2O/M1OYWaeqlBcifwMB2L2g= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200828000746-5d121a46fa6f/go.mod h1:CpQD1FDKoyHgufAhBTxi2O/M1OYWaeqlBcifwMB2L2g= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200901060912-8b6c68b9d037/go.mod h1:IfP5n2rg31CLEw0JlNPtRSFh1H33DZTPSpGnlPlickY= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200902043525-59b4d85e5549/go.mod h1:ZQ7gUM3CfYQbgpHw9gXRlrFqGrqCDD2i5BzbxlbrT3Q= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200918044112-10dcac654391/go.mod h1:LvroAAAHUNzpt6aUC7ZKddr1w5qq4RsPnXXftA5PfGA= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200921062115-7e1c6d29c511/go.mod h1:LvroAAAHUNzpt6aUC7ZKddr1w5qq4RsPnXXftA5PfGA= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201007012502-4845df25051c/go.mod h1:roomzZUmbV7gDDsfnUZlO262CoUBDwoZ0i59w9weCA4= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008025405-c2046467e78a/go.mod h1:2nJz3ICJf3Gv12sq2WqDuYnpPx2O/ZbZgo0b5a+YiTg= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008034645-0605942bda40/go.mod h1:VI1nOV7wgWOJRiCX5EZ+0MzJLQvi3QnDWn/U1RfCaCc= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008043111-a247f708d75a/go.mod h1:KtLYAXF0xeYBG5lSTPVLxYmAGwtPO5oq8avoax8PBhY= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201014010657-5c17ad81df9c/go.mod h1:yFVtbRApexOmLK3H74A3S+8z5vaHDBQA3fYcxPoiF+E= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201014054432-e03b94b8922e/go.mod h1:yFVtbRApexOmLK3H74A3S+8z5vaHDBQA3fYcxPoiF+E= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201029004904-76a5c19ad0b2/go.mod h1:k5pvdVRUvl4ajAC1IJokW/s8EWcApN0c+WS3sRYD6Ic= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201101221841-9efeaa8b8752/go.mod h1:7kopEd2wSBUXocuubdPgGGFKRLYgQ/Q72pv9Y8MbYKI= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201103002541-57cbe744b31a/go.mod h1:ZEXlQKnq22uxFPgCXkysj8MRoWAIzVo8NvzjTeHyHS4= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201108234433-79b9bb142e30/go.mod h1:ZWP1TciBxSlevcFKwrzwSTSftq2VO+J35qVh1h0TDvw= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201109043313-7a36822c7f23/go.mod h1:02bAUKuMUKZ5LW4buM+Hzc5eBvm7UfcwSJuA8EquwpM= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201111054044-342fe9c64b9e/go.mod h1:pjRhj2tafBYBekmYcA88JAzw/tAZ5oTD5IR2OPTqAk8= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201112233731-82b6734a5f42/go.mod h1:gy5miYXomM6U5U2q049UmF//NN7rZIemCBQRVsiJ+bE= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201116033953-57cdad7ad590/go.mod h1:gy5miYXomM6U5U2q049UmF//NN7rZIemCBQRVsiJ+bE= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201119033719-ba06bfd694d5/go.mod h1:+8/fI5EpAB2c1GlK0QCdKtyb37GLeQzyws+jWCybiPw= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201123073049-2120cfc90d52/go.mod h1:HvSvSnc1osafHWKAd5XHtksKfnnY2wM/g07xZ7zfxAo= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201202051407-48e2633573dc/go.mod h1:FLUmb+6VnukZTvCiOGd4lEoK/in3zjpjQkZmfiXNyLw= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201214044514-17b6120a5ab9/go.mod h1:lno+4biUpK/XzW9AUDX1nwJlgizG7aZFBHQvzouzGJo= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201217003047-44f57d88ff74/go.mod h1:lno+4biUpK/XzW9AUDX1nwJlgizG7aZFBHQvzouzGJo= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210104225919-7cfbfd109c38/go.mod h1:uAeQDzqXBbX5W5driZhTfQHUFem4uOrhCziYRAmaISs= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210112215651-6782fa0716c3/go.mod h1:USrU6CuEx09kKJgd1XOZOSf2+woqHWo3K13hwZEPgxQ= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210112225404-50d3294b3935/go.mod h1:USrU6CuEx09kKJgd1XOZOSf2+woqHWo3K13hwZEPgxQ= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210114004043-b680797c83b2/go.mod h1:Airb1ugyw2ziK9CECdKwXEHmKYOsn0jxYZkk38rveqU= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210212070638-9fc199c6b221/go.mod h1:JmeKrcfTU6xkKsqkZiWwWIprk9bH1CtQU+vkHeREhhM= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210212071350-1a8c6faf7e0a/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210214225307-32b3ee205569/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210215020802-7b0bd97d8e12/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210216061041-1aeda85646d4/go.mod h1:PtmkPV7EKo14p46wpRTVJFNbDuBW0dUVYSINRFc280g= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210218022915-7291668600d2/go.mod h1:l31y3VXlSKeD+DZ05VUfl1sic7sDfH0BeDzf1IrNV7U= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210225033319-21b0854d8bc2/go.mod h1:u22oDl6rqXb6HYYqFpQGDA+3qs7fMp3UNUYRVK8LD2w= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210301062052-963a0e279b5e/go.mod h1:kjSJgfQVSO1Pjkt55F2+fhAAjKD2E4TG2VkPaOuQXWE= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210303000227-fb1f7dd80eed/go.mod h1:Y2N3PNNk5sj66TUMkfgRouRVJ3Pvt7r3dwFTnFQRHV8= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210303044420-94d5a0867410/go.mod h1:TYfQ6wHnO1DVVIVe+mFDL9i2IoqWXtC5289/lI5S730= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210305025258-0e2462f01b10/go.mod h1:+DX8MGFhhg2BosiKTR9G4E6r0CznWzPUYwuX2x/sXEs= +github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210308021144-e25af292d8a4/go.mod h1:iAsp7JznRSrADqhfWThGn1vaEyydG6zvw+HHxCNjP70= +github.com/autopilot3/ap3-api-gateway-go v0.0.0-20210127024942-46b79f1c364c/go.mod h1:16PTdjq/a3UNKYxohsrntUdSSqUKWn0p5ogqBqDd21A= +github.com/autopilot3/ap3-api-gateway-go v0.0.0-20210224232233-ecb8670c82a2/go.mod h1:RLCYgF1rIREtbxKQ4AhNBIS9Ruy+t7NshYlIwTjXBJU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200729053106-d1bf13977e2b/go.mod h1:1cP3tqSuAOI7bXzl0138iz3CtwbFHuf3R6qno203PEU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730041621-526893f2adcf/go.mod h1:1cP3tqSuAOI7bXzl0138iz3CtwbFHuf3R6qno203PEU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730070255-9609a8a88aa2/go.mod h1:YCUbwwsc2GIwbc1m/dGEqlgJ0r/dreRineklZxntu7Y= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730231513-9a3761a473a5/go.mod h1:GHvPHhBpv2xFRFfVgmr1JiunbeMbsuU9S0ZRkBFT4cU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200805052805-f0f1a77bca23/go.mod h1:AF3rvbQH6Xp3lsEBiQE9KW55Gk43eukmh7sI+KWDegU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200806043404-a1f79b6f7f00/go.mod h1:N/yNJ3RKUI2Q3cfLusqfZO0/gn5r/7qcEXDGYIu/kNA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200810234947-75c0a6b97c03/go.mod h1:vrv8XxWs7mKM+DWYCGdnb4+GVrLfLszk+6BIOKN+HUk= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200814000328-6d795154ef03/go.mod h1:X3MkCqlWuNcMW7WNY/AUpitjF9gL8dyuA++9+auZ7ow= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200819013233-a9859195996c/go.mod h1:kZnZOhpDCA6FzgGPuH2d8iQsLNNI8oZoCnGBXFagJl0= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200827225405-7db0bd9603d9/go.mod h1:wEA7U9sr/8DgHLRJIfAVosKm5mOYLmMjQSh5O2Z1i34= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200828035255-34dbfc371c7b/go.mod h1:nnZwF+xwxtYYPrKYTiOYta4g/NJBzMmAUBX+9tuIu4g= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20200917040214-60c00d8309f9/go.mod h1:cLBJWviXJpoSFJqUHjf9shRMHqdhqGU33CuHpB+MopU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201001020102-1db9d7eb0b32/go.mod h1:sNBnqQ3y0VkDFiaxAFbV/q64zg2AH3PyCLuGHU37rlg= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201001035744-be09b6426fe6/go.mod h1:4csEQkVq+ivBUu+8MbXkY1LmfopeTDB/A3lbiuDg4s0= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201008034247-a86f081c2745/go.mod h1:wKMNVrjDy2XDIVurSuPxvFgz5su9US1y/HFm7Y8avzA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201014042612-8a0ad46cc2ea/go.mod h1:SQkyqSeOCNlu6nTB7Zl/15JI20qZAwcHVvqEvyLvmEc= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201026045207-a750bf828385/go.mod h1:DvfzwvyR0dN3qC34w6bdGvixllOKWRBVzFbLXoCSac0= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201102002246-3c3653d8f3bb/go.mod h1:icp7RltRVO7ol7L34m0M+cc03AuBV8rQHI2zmVzNFjE= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201106032118-46be2ff39e75/go.mod h1:EBzNiWhLc2nnmeROjG1dmuqSClj7MkcYiAI8tAC/ujw= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201110050333-0325bcde0f27/go.mod h1:9hdQFIcTBaXHR/DzqVqYE7flXGMQgOKGnl0jsqkygQQ= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201111024922-2d565624388b/go.mod h1:JkRqpwipM2JgsbFLiWyvpZww7b7W0VadLPlsDK/wuUY= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201118001707-ed0114bc9914/go.mod h1:UoHztMXBCSJWJ/RDkL4FK3gS7YF/sbFUSaRV+xISPaw= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201207051113-e01f5b91bdef/go.mod h1:fZV5kbN96zpk6eb2KAaFW1Ic2StRsR/do9peCisWtZE= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20201216033843-572d588ef2c6/go.mod h1:lLd7I+vew5Y0MqOz1CrDN0NtMnvtuoFkGlOIxe9Azj4= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210104012342-9500032fb202/go.mod h1:p1lo+ObWbSrdlRw2rF3GG1cBw37ziiVzHW+axwCNv3Q= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108000939-2f067fb95b10/go.mod h1:QUWr6Q1ZKbvnhF1yTZXB0DGzj/yK9J/jUVaVKOAxNzA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108021210-0bf5e0f8aaf0/go.mod h1:5pApLd5QtxQuiyghF5wJQUQd31+4PDJLnq6Tr+Cu0+w= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108040823-c89f53935ba2/go.mod h1:yXprDI42bO2ffFubh7BNgihHS8HJc+kuGsckGq9j/BE= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210111065209-2fa78e5b8922/go.mod h1:yXprDI42bO2ffFubh7BNgihHS8HJc+kuGsckGq9j/BE= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210114063506-ea1cb59dcd44/go.mod h1:vuZE5kPYAEfv5dv5kCM1bu63fctedgWTKaUlgEPApf4= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210203030650-72880b5d9184/go.mod h1:D3GPAbFPECRvIbyXfvWXstikJTE97x5Gnh3IyMdugGU= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210208042923-66e5c4c95f68/go.mod h1:3S6xv0Ekt3xj/MpRF8qH9FrI9GelQXLqsMANAgMbmM8= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210209000814-920bd63ee131/go.mod h1:PrfHCD/YZwdAwMO06oX8G4SY7rgPTStsg/PSxb8f3KA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210209061202-a8535579d882/go.mod h1:aZ4SGAcZdviLC4xsTg2IWCg7cX64T9/XwMJo7PeB2VA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210216053014-f3c636de3148/go.mod h1:tb19g7pGzmR/PVpNempBJhMPvUlKOhcVLp+5ADvPwz4= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210218004137-da171764d847/go.mod h1:vFYniwoD1OxTZ2rBtN5qeZMmwwMS1orRdV3PbPwKISA= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210219071418-18ac9a9b9f10/go.mod h1:Z6j6ZOaIWbzpnkKQYELJ0pzY0iCjMIAky7HZufrdtFQ= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210225032134-19314b50f365/go.mod h1:gkCLZJ1FmacGGNP2lNE2rHwpMKcuYi2Nh73ckaCy0DY= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210303043209-5d0e8653c3c6/go.mod h1:7nAJkr0GSNsSVXIlPlBMaVlvxrbExdcIiWKCBLuXPuw= +github.com/autopilot3/ap3-assets-api-go v0.0.0-20210310005916-41daf2dd1383/go.mod h1:PFluM2Jq6pM+htEaEIMJcPj+h+hnPxyZWRZtQ53ve4Q= +github.com/autopilot3/ap3-auth-go v0.0.0-20200420230449-2e339c3c0903/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= +github.com/autopilot3/ap3-auth-go v0.0.0-20200506053855-218faa787062/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= +github.com/autopilot3/ap3-auth-go v0.0.0-20200520043610-146fa102c880/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= +github.com/autopilot3/ap3-auth-go v0.0.0-20200624224227-fbceb4e47849/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= +github.com/autopilot3/ap3-auth-go v0.0.0-20200703011055-c40021eee280/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= +github.com/autopilot3/ap3-auth-go v1.0.1/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= +github.com/autopilot3/ap3-auth-go v1.0.2-0.20200703011055-c40021eee280/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= +github.com/autopilot3/ap3-auth-go v1.0.2-0.20200902023453-e10bfc5836c9/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= +github.com/autopilot3/ap3-auth-go v1.0.4/go.mod h1:PmqzCTy5Jb2sAUB7JGAsK3verzznsrObiS9/vKQkv+U= +github.com/autopilot3/ap3-auth-go v1.0.5-0.20200930054527-6698882c06d0/go.mod h1:PmqzCTy5Jb2sAUB7JGAsK3verzznsrObiS9/vKQkv+U= +github.com/autopilot3/ap3-auth-go v1.0.5-0.20201001062458-cc8593590841/go.mod h1:R9nWeria3WEnj096Jf6WBYeDBKfpR4edrNOkZn4/diI= +github.com/autopilot3/ap3-auth-go v1.0.5-0.20201008022811-7c1fbbd938d8/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= +github.com/autopilot3/ap3-auth-go v1.0.5-0.20201008041151-94a223d6b7a4/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= +github.com/autopilot3/ap3-auth-go v1.0.5/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= +github.com/autopilot3/ap3-auth-go v1.0.6/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= +github.com/autopilot3/ap3-auth-go v1.0.9/go.mod h1:Rje54u0DSiCEh0+4H7rvePVjuxr5EH1UYMkDXR8CsdY= +github.com/autopilot3/ap3-auth-go v1.0.10/go.mod h1:rY/o3UBxVFeHM3p/DlZ4syZ6KtyfsH4DUiV+cwf8myI= +github.com/autopilot3/ap3-auth-go v1.0.11-0.20201201022431-94a6bec24f7c/go.mod h1:XCgIeFdBOEERatbbOivYX5pnCvS7wmNdBxRRX6bzYd8= +github.com/autopilot3/ap3-auth-go v1.0.12/go.mod h1:XCgIeFdBOEERatbbOivYX5pnCvS7wmNdBxRRX6bzYd8= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20210203035350-a60b2dca5456/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20210209005648-7fea83d52d98/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20210215055618-68562a315640 h1:n/fuqRnn+l3G98NaG6JvW64UQgDeyI8csLT78/t4sbQ= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20210215055618-68562a315640/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= +github.com/autopilot3/ap3-axolotl-client-go v0.0.0-20190808043249-86366937d955/go.mod h1:GBAc8kOI87Xi9e+g5fBeWoqRST+s1oq18T5L+FXte6s= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702065514-c37270ffbc60/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702080435-5c7b2f2c392e/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702081059-8f4a3452ac45/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200707231940-4b2bbae0e8e6/go.mod h1:3yZ8Ugs3IfAfor4Er4UC4TjIw52XdQjmlUz55YKVMMY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200722045614-d4b33f053491/go.mod h1:pLq61u/DBfxkSvMPScjqyTgUzD4fHru5t6atltus2Nw= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200728035104-7353510d8463/go.mod h1:alR2LmHn18BYNx4JeLQSfwtB0T9tv9o1559qN0o/lxQ= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200804004903-80b1cb91e22e/go.mod h1:alR2LmHn18BYNx4JeLQSfwtB0T9tv9o1559qN0o/lxQ= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200806042734-444daa98031e/go.mod h1:LfZ1Ut3RcI1GqKH98FhCHkHxQrPanMLAVwLD2F/FAtU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200812042643-cbace04db8e7/go.mod h1:LfZ1Ut3RcI1GqKH98FhCHkHxQrPanMLAVwLD2F/FAtU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200827070945-3e2a559b0b15/go.mod h1:YxbRkrFF963lH/Cd8LBn3cbXpkHTt6HnbgsaEnpCaVM= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200902042307-94ff1def08ae/go.mod h1:CzjfdfGJYP3tC+fYwrcirPi38EyU3GeS5AstjOYwF7U= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200902222454-7e21921675cc/go.mod h1:CzjfdfGJYP3tC+fYwrcirPi38EyU3GeS5AstjOYwF7U= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200908055735-6cc83ed66bd8/go.mod h1:V9efPaGcNPK0CZvrkZVTfrexqoh4t9BmhBuQOBMH/pI= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200914064231-96d55f0e9038/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200915073442-7bc3eea72a63/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200916065756-3845af9e4554/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200928050427-1be45a0327e2/go.mod h1:qGtbaNMNta7XKPUESKf8j85afRNJnLO6i+oWUTH/l5w= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20200930045935-0d7bc68f6bed/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201001080214-c0dd85a3b227/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201009031727-b0d189e7437d/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201013022225-fb8465f0a22d/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201013220827-7742c5451528/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201014001339-afc031a1d6b1/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201027221727-665a9b37eb85/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201029004708-3fb6bf861d4d/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201102050123-e5904576ccd3/go.mod h1:qlTixrpHD9wsvGQBvfMuv07uAJR4sljfKUAcAMkubdY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201108222017-074612a50ccc/go.mod h1:DGBMkG9xAGiTc+ZPtgZJnZrg/URyxxLex/mZZ9n/Cnk= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201109045744-509235f9b9b7/go.mod h1:69uoVH4AZ7gG9+uRdylm7B+GpTFcJ6As2f6g3h3JQm4= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201111025000-0109c912c7cb/go.mod h1:grnEgLaU5WonZt6MEHfOzega34CkJuJKjmjpMnnPIXA= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201111063213-dbd42a64cb15/go.mod h1:grnEgLaU5WonZt6MEHfOzega34CkJuJKjmjpMnnPIXA= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201117050551-3bbcb4051a63/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201119234418-503372431a3d/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201201031526-64e974235761/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201202224906-4cbf763cd524/go.mod h1:aXUx9jZRHDmOn1WW64vnZnOmJ3Zm8h01jPScVCSSugI= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20201214044606-2c7ef47b5c58/go.mod h1:nCyynCH08x7Ey/SIhIVCgEdppN92y3E5VQ4O/w0Hsk0= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210111063436-ed15c51a603e/go.mod h1:fSGA8WUSXGvHrj6mnUT/3FTzih2lAenWI/Dzz1sKe5s= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210121003536-46a010d166d6/go.mod h1:j+LQHjXExWAZ+hzN0NQm070Wi1KjmVB+fryiIvr/ITU= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210127031717-1fe1a7bc90f0/go.mod h1:Md9mqjRu/5Sn3YuS28pfyS0mQyziFFYJa2Ij0PHSoWE= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210208001451-a231980870eb/go.mod h1:e617ucWUQti5m/e2yMMEbw/5RmbnY1M5y+z6WL1+58k= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210209230429-05958b8f550a/go.mod h1:DMA7bN8AwrHPlpxA0yuomESIMH0bvkN5knZo3dDoMTc= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210211011204-9f83022992d4/go.mod h1:NQsnSNYX/RDOiATQ4Pnm7hKwxcOyFK3dmEjaVPGks/4= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210211231825-42ea6ea86eb2/go.mod h1:DrFgtVfC/bdGq7STL/GKxayf0lUkSuwfpARfTDsKCDM= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210224232006-f0cac42b69b3/go.mod h1:pKwMSQQBWz02kJQHLLovlaVDuQclWKBhYfYO5Yedy+Q= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210301020249-f1d9087e954f/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210304214420-87a73572f387/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210307235939-83b7c78f4715 h1:nMYxtGqYjzyuHeOFzJpBQkTZTBVaHUcHN8H8813ADeo= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20210307235939-83b7c78f4715/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730050521-f2d83f11087a/go.mod h1:alAnyL/NNb+tlnQ9fQAYivfB/Dn4YefIqCSNQwjGNBE= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730070629-101d6a4b7b3d/go.mod h1:PIWUCjpV94OVsZq3HAo6k0OyBUccPRWmQI+C8yMky0U= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730231543-d6c1133043fa/go.mod h1:g7Pkeh7wNE4V2ya60b12rVBCr5eFuIAU6y0ouFEBF1s= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200807061611-ce52a469211b/go.mod h1:1z8QJ7g4CEC8MjNzuD+mOdEAK9AW+Unaj8JuotXoWsw= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200814064429-6977f8b261e9/go.mod h1:XJaERwgiVZjWKSkV9Q+ZYTpHpjpSiQwpBOXwqhegx5g= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200820070037-16d34127ecae/go.mod h1:ZIAD45GjSAOYCA7BsOsqYnihEerbVbJBWdlsotYOOsA= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200828000708-626a5f67a5a7/go.mod h1:ga/RDQe+TPPZ0S8egVd2ohvnaKjNoY4oif0jblllnOs= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200831080514-9b60c3843796/go.mod h1:sxLP1gXJapcn3Ed3A0xakHRMQHLjZcHxVYjFp1mB1mo= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200918051845-a26389d2c0f5/go.mod h1:8eAaADO/hcDEGV+zStfQp5QmPIlxt7AICq9ahE71XsY= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201008043317-0e42e8bb887d/go.mod h1:buA+4PjTgHhxwMrllEXTFpfA4XO3bpSYPpF1itoKvSU= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201014223735-c82008bee721/go.mod h1:yKq1gpzdtaGr9/0FX+jLvV8UHdSnDsg+RS0kEG/M0Hw= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201109035620-53a9fb758833/go.mod h1:ETDhGcy0Y6fi98io7Mf3Ht3S4gVe03Hj2/lDy8bDLm0= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201119234423-d7a9d451f791/go.mod h1:Gzlmb4Oc07moLj24DRwJGFu0vGHhXcNVfnhaDsG4nuw= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201214053113-910cf36e91ae/go.mod h1:qpJFU9t7MIZau7WtA2MPQtYuYdBd6HKV+cbok4zwUt4= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201216042125-e6562ef05526/go.mod h1:D8WI3TL1H41zrdg5zjxaGqS/O5+L1BkqCIy7OUeNKK0= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201217032923-a59ed83a3b5e/go.mod h1:267NQJgHFKFq1GSZOZLQ4S8R1ItufjErRWSKqo2X3m0= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210104014000-c4338d7a2675/go.mod h1:/y+SZ/uGSHoGo1dxi8UC1LuJ4h0P8OBNT8n8pT0KwjM= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210108001516-1dea5ce909b0/go.mod h1:RUOAqH29U8Y4KWlAre4dX93ZswJAUBr2Y0cR9m+13QQ= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210108040427-33de5b6c6933/go.mod h1:G2mLXg7uk5MhysRp8l6auEuWi2zpRKvlgIkSwbMpoPY= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210113211426-6722f8833063/go.mod h1:qeG0TIiUvMi4A7R10v/+M0rZkidr1KcjwQM+grR5brs= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210114221527-9373e0e733be/go.mod h1:HNoEexUu+Q1OhqXdpQrRkLLhgpFB3AvP2INDS8+LphQ= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210115020030-b6adc857e5e1/go.mod h1:P9yOJEF7rfv7isLgMOjL47/90nhngjhuF75Jl9xR7z0= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210209000933-c777aef3a004/go.mod h1:DZsOU0g0vUgJpcp3krvaelUb7NMdMsFcRfTk7Kn/iPk= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210212025242-35f070bc2a39/go.mod h1:6kUQ+Al9YAaaoyP53/2vk3dEyfltKmvVaSi1jVyCyKE= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210218220205-8fcdf2584193/go.mod h1:44GVPmy6PtLTm+lVdhBi8/ZZzdZfweGS5vlcaSgzSNU= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210224054249-e4478c11203b/go.mod h1:m/lNszvhHhamP4oXGArsQS+PNwQ+qHeyO5G5K5hnSI0= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210225015838-10fb610fab6e/go.mod h1:1Mne7kzvol5qOmP86ymCVa4hmnH62CONha5PjCVGBac= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210301020042-f0f7655d2ea7/go.mod h1:TaRszkMM8ELHKPgTj1uRdHTaD9TwVSdWF57gnLv78bQ= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210303042306-21e8246969a3/go.mod h1:e85URxrOv6KgVjeSeYTjL9cwPB8MN05VszKRPhPzE9w= +github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210315025721-1f7fb1cf659b/go.mod h1:Jmr2M7j3dmF72ZQnQ5188N9C/bF3r5/7rJTn4SXn1vA= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20200702080934-90f094e84ac4/go.mod h1:h/9wS8YrMWi6mbEE/MwtILE1CBcBwQSIV5v/ckZGGi8= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20200802225724-9b5225d0afdd/go.mod h1:KSwPg+cRRGh8SvWgB6D4wW7X6Vl4fgwhvfhMYzr1MKY= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20200803051750-3b45851b6ce2/go.mod h1:vZ5ClldX6CQRrSNSbWkNCi0l639bQh3ODcG59km62vk= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20200819011530-b86c0dc9abb6/go.mod h1:Be+/ZAFwE5NK0h7bMF0KJyoMzrcUdJy4jxRPQkBBs4I= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20201014034712-b017a486b6e7/go.mod h1:Beh/kqdjxu4+tn669zL7ylEbs5Lj7BFZx+JxqvWHnzg= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20201016005035-e3ba0f4ad1af/go.mod h1:82i1tSGOPmiT1M4m+25fVqbLQNR9Dj4JNjS1AeMLprk= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20201018223222-4fcdf94723ab/go.mod h1:82i1tSGOPmiT1M4m+25fVqbLQNR9Dj4JNjS1AeMLprk= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20201103025144-eb9ebd11cb94/go.mod h1:LCT/aHZ31/j2CTfoKVqBInqgrte3w6NRZUxXcWcUalU= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20201109223525-8b169c9eba2b/go.mod h1:ATjtb2e+YKwbr8PQi+6keNzQ4dSwzxlW0IPi+NsV5mQ= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210115032104-58ed680f772d/go.mod h1:GkjGVf4I7bg0FoTBijfixzdR4w/Rz7rTWvLN0birkYE= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210212040702-7bce04f79d03/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210215235705-09f0e0f391c0/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210216024803-d64f70c911d2/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210224230607-086ee066ab1d/go.mod h1:TmBoNZ1VmgIFUlQQnhMUENjbe6jEFMl8wiiqtXlP/Ws= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210301014323-fe8787b83fba/go.mod h1:IQzjeVWfEMhmUc7NB0dSJWyWgL/qNirUu+eilN+uNIo= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210303042321-4ae92107b73a/go.mod h1:Mp4YWsKHrqTnGHBw5YVkj6+9mwga5jdc5RNO9zoxxdg= +github.com/autopilot3/ap3-capture-api-go v0.0.0-20210310053256-e9d4aa58cba1/go.mod h1:bUO02lCiN1YP2aSf4tiJhQSRHVucVTleVsfTLi9FGSY= +github.com/autopilot3/ap3-client-go v0.0.0-20200506004949-d23dfa57e16c/go.mod h1:Bf/O6Wc4EOoINWHPh0FyhvSzukHzH0OanmpWo1K5sXA= +github.com/autopilot3/ap3-client-go v0.0.0-20200518004718-eb967d6fa258/go.mod h1:Bf/O6Wc4EOoINWHPh0FyhvSzukHzH0OanmpWo1K5sXA= github.com/autopilot3/ap3-client-go v0.0.0-20200612011247-9b7352951a11/go.mod h1:GpczvGLXbuZHI7Ld8Rtlv+xnWr52BxU9skBK59ClhS0= +github.com/autopilot3/ap3-client-go v0.0.0-20200721015203-c563ed2bbe69/go.mod h1:GpczvGLXbuZHI7Ld8Rtlv+xnWr52BxU9skBK59ClhS0= +github.com/autopilot3/ap3-client-go v0.0.0-20200727084125-0b6d021bbaf2/go.mod h1:lYtFNEzSIy8/DXo3sznxnJhKdzu+mkPTCHp31F+J/60= +github.com/autopilot3/ap3-client-go v0.0.0-20201026101213-f9c35bf54833/go.mod h1:lYtFNEzSIy8/DXo3sznxnJhKdzu+mkPTCHp31F+J/60= +github.com/autopilot3/ap3-client-go v0.0.0-20201201233548-401ea5585c25/go.mod h1:99onXFRW+lZy/dAOavWRd+66TT8EBS1036T4gWg1dY4= +github.com/autopilot3/ap3-client-go v0.0.0-20201217023829-824b2cad6c3c/go.mod h1:7JuVWqS2NnUV59vaG1gI+btXbgIBZJjUQVdETjkdFqY= +github.com/autopilot3/ap3-client-go v0.0.0-20201222042926-588768535568/go.mod h1:7JuVWqS2NnUV59vaG1gI+btXbgIBZJjUQVdETjkdFqY= +github.com/autopilot3/ap3-client-go v0.0.0-20210303041551-2c51cd109c9a/go.mod h1:Tzq8OymZejqr90grVHU+ItMGj3OoMo6sCI7N4j/U+gk= github.com/autopilot3/ap3-config-go v0.0.0-20190902072625-b22adcd3a1e1/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= +github.com/autopilot3/ap3-config-go v0.0.0-20200318022128-6c2b0e2f17bc/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= +github.com/autopilot3/ap3-config-go v0.0.0-20200506052753-a229deed2950/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= github.com/autopilot3/ap3-config-go v0.0.0-20200630042032-646f272a79b9/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= +github.com/autopilot3/ap3-config-go v0.0.0-20210205062909-8aefecd794b4/go.mod h1:BDQTT+E9O3cOiRIuxwOPXiPgm3WczHLEYHQmyn9t4vk= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201105055606-540cae20848b/go.mod h1:GUxQ4/OPaUkEHr3GrdI4SULpm9KhTM9NyuLDzBO6iO4= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201106032110-cade438bd914/go.mod h1:GUxQ4/OPaUkEHr3GrdI4SULpm9KhTM9NyuLDzBO6iO4= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201116063202-bbdfe61e5d4e/go.mod h1:NMN2BJ0cwmRy5QVLck5sdK6FVRrXLdju122/WdQtlsE= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201208035605-82cf3ac1e01c/go.mod h1:NMN2BJ0cwmRy5QVLck5sdK6FVRrXLdju122/WdQtlsE= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201222054555-21eb94efac94/go.mod h1:DRI9N5G+6/76I/i3uPEUcQsV5N+oP8KnQHFSr2LaUBs= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113003714-53194413f27d/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113041725-81d0c855bac4/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113042935-a477d77c910c/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113065635-5f178bd3d0f5/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210115024905-f58cb06ea6f7/go.mod h1:nbXwA3wpVtLLDy8245mJ5wQehdFbjjbwzmPeVZZIjxE= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210118042407-532c9fe2dc69/go.mod h1:nbXwA3wpVtLLDy8245mJ5wQehdFbjjbwzmPeVZZIjxE= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210129015802-9f476df23add/go.mod h1:UJtmijp+4CVGh0BplsE/SLCfzfHeTp0W30PnkWRBbxE= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210205053954-10d0301d1ec6/go.mod h1:Nr5BerO2RHXjyiPIMI2keR9n9uBsNj3UQ80ud6h1I3A= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210214222124-c1a57feb1faf/go.mod h1:KwMWy3/VIGA0E6RW+WwIoeU8Ii8NagaaXBZVQmBgypY= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210224231144-6e5d6a6c06a0/go.mod h1:EuYgKZpu3dEfyOyky0GcisrdqM8b/pe1ElOJNImwxRA= +github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210312023218-f7196e24bfc1/go.mod h1:EuYgKZpu3dEfyOyky0GcisrdqM8b/pe1ElOJNImwxRA= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200702080152-c59e1d2c880b/go.mod h1:CbVdbTjtkAOkCQXgaCr3I6iWkdc1j8YYDC85kmq0ChE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200702081636-bf7b7ccf7f29/go.mod h1:cECJylxJb0LUn/+3jPP4RdgJZt3Eb4g8P+xH0pGZ6yg= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200706035844-52705ae38b92/go.mod h1:aEJy1U7mCS6H46kdm6lgviDwFIe/fGwrNBJ4cI1CW/o= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200721065821-12e2d5c2fabf/go.mod h1:S/e00OUef3rcXr5Ri5XeRX+qZ30jUoKXbMb7YgHR++Q= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200727002110-dec68c811e99/go.mod h1:OxEesPWf0JrIQgCFpYrhKeS/nDwozbmZRT1cJF8Dti0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200730041349-11d155128a63/go.mod h1:bYH/fZFjJGANOO3Qcr95+zY4XUmsvloPeCYcYBtEwt8= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200804053221-ec59c3a8cc71/go.mod h1:0lpH1Uc/MxAC0z5j+rrW08Ohuhk+I4aSufs1d8Y4qxE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200805223526-895287697339/go.mod h1:0lpH1Uc/MxAC0z5j+rrW08Ohuhk+I4aSufs1d8Y4qxE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200810054435-cd2fff2f0294/go.mod h1:SCNyyP0z5Myjc1NxQPJ3t3hy7OhvJOq5swa+N3CSmzA= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200811073139-cd9c9a1cdea1/go.mod h1:oOyG+0nIRHY9fnz/WO+6PT/ydS+XyE8bwrqTxcTx/3Q= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200813001743-1391733f47c0/go.mod h1:LADNcdgpPEBiP6z0kTRRqzZKFqRnndj4NW7xd6Z3s1Y= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200814044147-8e1b3a1d22f4/go.mod h1:LADNcdgpPEBiP6z0kTRRqzZKFqRnndj4NW7xd6Z3s1Y= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200814063000-6bc990bd701a/go.mod h1:ipNZBjmSiu//m06PzIX4XFvqOK7uxfGBPPPesUBHFdY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200819051735-45ed75fda7af/go.mod h1:ZsF02Y6RdAwoQaSPvKbZI9TNvzYprJCXhxBvVGTpFBQ= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827064835-265b5ca06eee/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827074355-c00ee184fa55/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827224948-61cf7cdcc6ea/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200831033353-a4bf6bdb36c6/go.mod h1:OBxpJUAnWNf7NxcUzQFH0mepA0FAURLnXY1HpeZDCrc= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200901061509-d62e5974f640/go.mod h1:ZNgMq4vy4ms7dBz65CPvtDNsLsrFJ5qrIf1oY41H1Wk= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200902071018-b834ded8d935/go.mod h1:Kw9MkrOgsdvunkE2DeGf2sSaMd5gT4GxUYZcHBwwcM0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200911065453-fa3c156bd58e/go.mod h1:BaxJr/Ghy3zo/3PiqXMSBCAY5n9FyStc4Is+OGd+5QA= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200915062637-811d2b8da36a/go.mod h1:e3s46JaC+n0PkjLCZcgEN2LfZpERC1uL1Cdxa8Al03E= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200916222644-010a998963a2/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917041321-92555223dcfb/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917044923-1177fa952791/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917065747-c4f703bb29ee/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200918061924-a1e2b1f247f3/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200920235217-e04b18a81b9a/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200924061356-3650d07e0047/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20200927235932-d507d71cb506/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201001000400-b67677b91cfa/go.mod h1:lHIWq2YBBKSmELfv1XtyJPtBkqrA4UJaN1yTMPEie8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201001064244-98e7efe2ec16/go.mod h1:7DnKozdz72dPCiN8MsnmEpw76ojLftl26QgriRtyrHA= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201013081027-3ea663e1276c/go.mod h1:jhr3FveVCFpH+T57nj1A15o+Ynno5NGMgAl/G5CDMf0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201014222757-2eb38999570b/go.mod h1:jhr3FveVCFpH+T57nj1A15o+Ynno5NGMgAl/G5CDMf0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201018222138-bbed39ec800b/go.mod h1:6I1inznODaZX2SkYdGLKv/oCqZ7WxG92wTGFeok8q+g= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201027004400-40541315bd46/go.mod h1:sAswXhBYc1E5ffqDwaP70GtqNNtunH8T4SFDQWU8AqU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201101212257-60b0b34e4e3b/go.mod h1:qyx91W8JmNdNu/uKLJfZZzMEHIadKUU3kjZdXOBFMmM= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201102034917-32716835a881/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201102214621-67daa40a8c10/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201103000043-73321fee7c04/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201103025432-709ab03638dd/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201108212341-d00731653aca/go.mod h1:eZ+95y01RnKfhqxOdKb/SfVkIMMdHEq2i7UssRe84F4= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201108235001-16a85b59371e/go.mod h1:eZ+95y01RnKfhqxOdKb/SfVkIMMdHEq2i7UssRe84F4= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201109215909-8bf955bbc905/go.mod h1:C9yG28PRJwxRnBO10nujeQTAuAmksF/GJ+gH+OmP8aw= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201111025039-46a2c5eb797d/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201111050315-d16ed8866181/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201112031833-313844a7c16a/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201112093541-f3d9dd417d08/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201119032926-2e393d350ace/go.mod h1:aAnsqO0p4ZDf0BrkwmRRr3VIwoPLdFKyLBSjDvzjhik= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201130034556-0d96b12ce218/go.mod h1:AK/5z/gUBrjoCtBm8wTK8B/+8JtORIIb9fPCnpAaYGY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201208051512-85d6c770b3cc/go.mod h1:AsoVKWvqREdstStApO/qyNg775c2Bih1NkgD04+ai+Q= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201214010323-5ac7893214b7/go.mod h1:YxWrnB3vdW/lsoBJ85bOq72hlfrvbsijnoQ5GRUhnD0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201216034943-932e2af9851c/go.mod h1:Mf3liPLu2X7tFHG0s4s2ty/aW/ESAovPFMfdcO8Gz30= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20201217003209-0bb5085eba74/go.mod h1:7nx5p3eoqijLpF3c7IuvasLRQmrDrd3pgBWuMxvO7CI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210104052405-d46fb0ec5c29/go.mod h1:DJYMiu/ndPCT9ZT71wSjR5QzmHIGYcGkFVFQGbjklEI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210104060835-3564175d3784/go.mod h1:8IkONy066hk2iYBR0H3MmN4iEz30njX23m/gZ8wvXQU= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210106034437-2b7de17a3e92/go.mod h1:+YqbL3WkULu2UFBVmisiy9vAV8yKwRLy6lGjPM4FV8w= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210106234534-1f9c12ebfcb1/go.mod h1:A3vqPvm/zA1CAIsKSBYoxQXpQecHMD3Z4aq52kRFl0g= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210111023742-830c514eaa25/go.mod h1:VCp1t2K7lQm6KmB0e/2yzruPV3rvplvmuQOSzcnBnf8= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210111064624-0e20dc3d395b/go.mod h1:iCouHTuNlucP4FdIfEitrAl19W7YQMf0tP8trTjEnFk= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210113032616-3c2f3e43168c/go.mod h1:Ob+g8/2d/7pOhHuGCXv1k7+bPAj30T5q5OP/W8uHPds= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210114023034-78b1ac610894/go.mod h1:kJqnr3QCTiPNKL2gjoLvDIGpYKip94GwZcUOTfTc994= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210114225453-32ae4ecb5c0f/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210115000746-27cc7ba41839/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210115001033-7550e98831cf/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210122040540-b50c7584c63a/go.mod h1:H8zvKvSCi7apEi1SOYbqVdLQ7pg/JK5AbaIM6LWsTJ4= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210128001808-4de90b1fcedf/go.mod h1:mqn82Fyng9NJqMpvDkt1txTCIVtQcmO3ba8ysSkSLmw= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210201070005-6b89f8f6d099/go.mod h1:41YlklVpJwX90g25NxNkZb9jyUKaSHzsLjdbDR+W23Q= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210202055842-2a07fe571b75/go.mod h1:41YlklVpJwX90g25NxNkZb9jyUKaSHzsLjdbDR+W23Q= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210205061018-b4d01e1c8457/go.mod h1:/7GIgcirJWrrCPTXeShdB3Fas+9VoHiqHUH+rSvDV9k= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209000836-0a975c7bec8a/go.mod h1:Nu/8hm4EK2qoALyt2a33RB7hCt42V4g/BfyVWEFMJe0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209042613-55ab9e985423/go.mod h1:P/uIsWCOxVxgLPnbBVOhG4SARUcMk97dDxWcOeI7K0c= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209055644-d7e1d59bdc39/go.mod h1:P/uIsWCOxVxgLPnbBVOhG4SARUcMk97dDxWcOeI7K0c= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210210211726-23d66461ae46/go.mod h1:+ybznnKf2hFuxui5C4sWXLz/sXi9hh0NejlVnSaPBhQ= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210211002057-552263971c1f/go.mod h1:DndwW4eXAn8FQp04HoH8F5GYQvz/y7s+fRpsQiqtWoM= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210215033416-14b28b2f3853/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210216054308-7fa81762fb79/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210216090511-257223f5006a/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210217004329-e047cb5be0f1/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218065029-a6291151c2c6/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218065206-766b809d0167/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218223930-e569dcd09c63/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210222210351-eb8963d3145b/go.mod h1:uv2tkrcQIR7Ghvntm+Nu6tgtiPGEw2IqHn51prq0tXI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225001507-cb5629b842e4/go.mod h1:UpiO+Jq5tiDsHqfX2Dp5mH+yUCsssXtUkEQtGfJwC2c= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225222000-7d4b3841d0bc/go.mod h1:UbErwCFENJlWAGSShWs4ZnJY+IsIvnErj/RBlmOaVIY= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225222456-889c77e7cf26/go.mod h1:aB+9tZOS0Yd83nZ7olbh2+ozDGM2dNxGuIAi571iGdw= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210301232420-9774fbb4b73a/go.mod h1:K/ingasZ20bnlzDYEGRawWOzPkgP81x897UN4ZZSZLs= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302002033-36ea7ec03575/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302032148-68d0cb687da9/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302054408-06ac718d3787/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302063108-7962bdef48a6/go.mod h1:BYIBepGfpyAJdzT7vsFnxfJ0PCEG0pO9c0TY2CjpFJ0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210303042412-2f77a8c674d9/go.mod h1:BYIBepGfpyAJdzT7vsFnxfJ0PCEG0pO9c0TY2CjpFJ0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210303061222-1c6f331ed751/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210305002603-db4670556862/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210305062056-aaa695c548ed/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210309002656-284519d484e3/go.mod h1:mEQrBHiRwvaCrBjkQcQ7T7VjQywCvSDr0qEk/A65uV0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a h1:ihCBFnVqZMF8knmgfwUvN18VOumbIJSZpY4du9WCoV8= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a/go.mod h1:/J1sigtPLWPTjQ//LueOZmya/r9Q955Vi1/JiYiDjxk= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200702080551-98e7bfafbf62/go.mod h1:Jmr64yflPCavYTZ9ja0jeaRt5oEfYCS3GQhEVCDGa7Q= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200709042314-62f79ca29182/go.mod h1:Jmr64yflPCavYTZ9ja0jeaRt5oEfYCS3GQhEVCDGa7Q= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200827232115-40f48d24ea75/go.mod h1:mxQ2XJpgX/8zQlfoJBOCw+yZGfLpknlf1LdTPkjGuBc= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200902045613-97230abf6c62/go.mod h1:TCFuDK2vAUCHSYNdrMN+pSI/cMdBouLz/Q7Uf4FiNzo= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200914232446-7524d06d91ab/go.mod h1:8cMx+BiAobZVGyCuYLXNPCNTi00vTGPteU+CQlugPnE= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200928063604-248c2a4c344b/go.mod h1:/uI0y2ujiO81eczMRumQ4oDMWteI9Tuc/vcXbI/NuQw= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200930064256-7c98f943385b/go.mod h1:m+LbZ3dR+TjUU0TGbuPc1AWsUk/O2oUf4GUtTQLO1pM= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201013024559-81b55fae8109/go.mod h1:Nzg+mnTzBIcW/VSCmIoTk0gKV8fneXOduThG0miSquc= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201102001501-ec3b0a7223b0/go.mod h1:Nzg+mnTzBIcW/VSCmIoTk0gKV8fneXOduThG0miSquc= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201119234505-b0523cc47e18/go.mod h1:EnJQs5IsLjqFi9r40f6qWraa7yl2yAG4/9bSMD7/czU= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201214044808-8285861771a8/go.mod h1:govyLfigQH0HAh4KML8RdHam9rXS7Cjmh7ig2n4VYPE= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210111064237-da7ec5cf30e0/go.mod h1:pn4d+gkSDCUSwWQPAR72BmPlfnAV762p/n2w1I5C5HA= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210112220610-46bd963dfd5b/go.mod h1:CYBHqXwlCHEuNzYrm3AUB+VLkSPYHndEeLvqf2g1ca8= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210211002542-4733e787ec06/go.mod h1:E5NbL6rtOTRLcGLG4nKtQ0QRpYJKF8pJJsylU+3C/lo= +github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210225033953-77fe33bee6a9/go.mod h1:JPd84ri7NdkY8hvbxwXqo/w0V8ZfIkyynntqvUjRcxw= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20200827002509-76ba95f487df/go.mod h1:pg/MNbyHw+/k1l5wi74tl1dpBgPY6i1sYC0i/1PpvkM= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20200828004607-eb486547174b/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20200901061127-bc8ebae70e1e/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20200914230534-7d560c86d287/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201008031214-39f59e611009/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201009045408-7d89e5bd4a63/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201022061845-af15847c3bae/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201030054608-a9ff204c5f14/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201105221420-09a38911dd32/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201109222807-7ee3a2a7012f/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201118001640-7f963d040c69/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201119231915-8e5dd6f5759a/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201202010356-a29a41dfb722/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201204042521-039cdc6582c2/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201210214839-8cf00f0fdd50/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20201214221620-65aca68b68ce/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210104012303-857d15d52f72/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210129061533-eabadd0b8c66/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210209000337-39338a0ee581/go.mod h1:POYKlUvfGa4vlEJcB+53Otx24DkeBQ+ZJ3lIendM8+c= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210209061054-de1714f7eb99/go.mod h1:POYKlUvfGa4vlEJcB+53Otx24DkeBQ+ZJ3lIendM8+c= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210215084457-89f580ccb576/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210216050632-5eb24880872f/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210217051446-63a9184de07d/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210218020006-f9768b965e7d/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210218065158-6b8c949d8b36/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210223030649-6a980d850371/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210225032459-1d9d0e04d0a8/go.mod h1:R3jyHY08QJjHAdl8ly7dtMqRpgmggQp/Ktd/D7CDrww= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210228231047-81655e398168/go.mod h1:w+1o3PGB+Tn4AxhILQj6OaIa9ALgOGPJ7OlmjrMtiAY= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210302031857-f6fe030cb7e6/go.mod h1:cLZ5YwVUGCgZS0qiAIDae2i3BFkmpkSaW/j3auDY1kI= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210303031324-975c9dd841de/go.mod h1:2rBWOZNzR8Nwf7sEujkv67+fXSBwUIcc+FoZHFEyd2o= +github.com/autopilot3/ap3-email-templates-go v0.0.0-20210309064531-c8a22c91f339/go.mod h1:WJ9l/xLrYfhBi3kVoMhDqZByK29WHQeUYK3v5CqS5+s= +github.com/autopilot3/ap3-file-manager-api-go v0.0.0-20210211235216-635690158192/go.mod h1:Uo5inyPCSWa/bENP3xlbk0ePxPN0aOwLRDbqXS1P9R4= +github.com/autopilot3/ap3-file-manager-api-go v0.0.0-20210219051014-90c03ec8123a/go.mod h1:DtsghRojCcCF2X0u17oXwc0LrtyQCcf8A7p/4eBe7Fo= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20200702081434-fa94f1b05103/go.mod h1:QwtiTn8472RoAaearhn/SjrBqy4lNNi+8D3QwMaqiNk= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20200723080646-cc7a1e5c98f4/go.mod h1:g0nqlB+Z+//8XMX0HNJmf+csRtXt42cgbh74xk4npE4= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20200827231857-a32f0dce8e71/go.mod h1:BlAAIVTENYeIp+fZ/aXsJrhMDT9Ax1+Y09vMqqi5Cj4= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20200902042227-4c66d185d857/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201008022357-d7d03638d695/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201008221448-04137a1b0dd6/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201021065803-a76613cf8d72/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201109055225-823deb80b66b/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201119234503-85ae06763ae4/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20201214044924-35d881c34e1e/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20210122025212-b90fc927d7be/go.mod h1:oK2sMy0MZvi50isHEqqon6Iiv5JRMNaA6W8q0Zs1ZoU= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20210207225926-ba2dfdb7a451/go.mod h1:P3kCceS7GOQkTrEG0KBcd1sxJ2cPU6KOX7uq1XxcxAg= +github.com/autopilot3/ap3-geo-api-go v0.0.0-20210224232740-03b7ec3e39bc/go.mod h1:v68FSlPbnoIr8h03nixubu7g8D0CJ1d14d3ibYJAJW4= github.com/autopilot3/ap3-helpers-go v0.0.0-20200211061454-48c445db3c72/go.mod h1:NXrQo8sAaW//J6cb4Cp25D6ehk+qYa3MznfJy+zhtw4= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200303051922-57f32fc8942f/go.mod h1:1Y3XHGvAs/Wx5py9zzMzMmqRpr/IgdgLth7T9zMwh+8= github.com/autopilot3/ap3-helpers-go v0.0.0-20200421061531-fdb77916ef53/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200820043429-164cdc554333 h1:kKHhZ0+Amd1oABd6XW+om0jtl6r5jytCqgjGUmv8m1o= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200423234818-4ff78aeba9a4/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200521061745-42f10219aa7d/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200528230941-dff24b445b99/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200624081818-52842cac4ec4/go.mod h1:6JbCAe+LU9PQutKXeyE4wItGnAUT6KD8DaPJoFa74rI= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200702011551-f11d5d6fbf47/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200715043514-a7e4b45c42db/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200722004912-48fbddf8cd83/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200728034400-71f443734321/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200729014915-646172c19f9b/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200731023514-a5e68c07ec55/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200804011701-304bb1432afd/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200805231806-51011c758d84/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200810030945-224a6396c444/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200812035525-e4d20756900c/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200819011427-f3161d1b1909/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200819011711-d70e0e8827e3/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= github.com/autopilot3/ap3-helpers-go v0.0.0-20200820043429-164cdc554333/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200827062126-4abddba6c3e2/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200831083939-f81036f75542/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200901053452-aa4caccb39e8/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200903051228-a4603679bea2/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200914035238-91e27990d7dd/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200916074515-a9ff31c66990/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200917035225-624eac27847a/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200922053325-88d5fd1d6fc1/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20200930045433-e475dbb407e5/go.mod h1:gKC409/WwKWce3rU3h2bHiA6YnOipLRL8MtDiRcF4uc= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201001054704-f7f59f06fc2b/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201001232459-d5dc3bd819db/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201002011417-f91b9a8feb7b/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201007034414-d5afbd8b59b1/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201016043410-7cf46073a462/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201102032600-ff2c82cbc613/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201103021803-a77d205f4054/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201103062530-b31eae10d06e/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201106022541-c10475a3f71e/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201111024216-817b24e2c841/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201126002434-daa3f246cfc6/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201201023428-36e03cb1d4aa/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20201209004110-43bdfc8635fb/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210104053802-f51289a8a1dc/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210106034029-5e7f539b778a/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210107004935-4aab4012a171/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210114230534-8979f2ec019d/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210120221102-803ecbc91a7e/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210121000829-b43f9255b76e/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210127232425-9d1090d394f9/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210129041623-5bd221fea72a/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210204003142-f911c0b0bda8/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210205053234-3e012961d35c/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210207212008-b287bc52fb96/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210208061125-3dfef4ce33e8/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210208222839-cbace7f95675/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210212063837-7ca78dfcf89f/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210224044549-2ece94711831/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210301231508-e7f665b19a89/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210303024852-d2a7393e730f/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210305062338-4d47952ac01b/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb h1:eQkNRv1zRBEymyE1ZCDsueDDpNB+dZaT6oKhZrILxUM= +github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= +github.com/autopilot3/ap3-img-api-go v0.0.0-20200827002413-eb437b94f656/go.mod h1:yDSea1EtsCdH102HEufIWw9gnEqaTYr9/7VUAGjIpN4= +github.com/autopilot3/ap3-img-api-go v0.0.0-20201109055243-efa3c0a8c9f4/go.mod h1:HduokZLN83gh74zAbOGuax07sIrxX+9fXGVfYSK+ZyA= +github.com/autopilot3/ap3-img-api-go v0.0.0-20210205060319-7aff8e0ef882/go.mod h1:Sity4Sgn7z5twVozP7Aba9ucpr5uNnpjw85JT9DPKdg= +github.com/autopilot3/ap3-img-api-go v0.0.0-20210215081233-4f69ebb20f03/go.mod h1:QX7XvgYwqF3vH+z5v03WXH+6QlEfz22sqZeyK47/Bx0= +github.com/autopilot3/ap3-img-api-go v0.0.0-20210224232921-bf3dd001b14c/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= +github.com/autopilot3/ap3-img-api-go v0.0.0-20210302051136-e20b74857554/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= +github.com/autopilot3/ap3-img-api-go v0.0.0-20210303001325-c005c777189c/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= +github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20200902071647-a5df69e55cf4/go.mod h1:9DXuJIIPb3RAKQAgAqILAiam0+DR+IT0tHmjFECkcFQ= +github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20200917025557-2b563de0d68c/go.mod h1:uKoCnvKp2q+2jhdA87Okz7cBoeQTmB7m8xX640Xi5+g= +github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201006000747-69dde0cd6721/go.mod h1:+qcT4bbKZUDvBALvRzV+qKpiFkPaYGvHs15FPcugCW4= +github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201013065052-67bad93c80ab/go.mod h1:vYIx0EHw2Z7pJA95s2hdd1ZN4pq8ivUFJx3RZQ6vYvI= +github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201109011453-376efc03f36b/go.mod h1:R/ubcX8yNRIGWJoDKI4t3voMnYinReXFtzrOmXf6UXU= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210204062004-46a6740ad54b/go.mod h1:MAS1D2Au6uZWZbpFsRL3QR9Ogwk9M3btA9iLIdKFteM= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210209221538-fe52a8d460d8/go.mod h1:0ztUDBKJ5n4FWjJyB+ocZkaZ5dMgiQra26DtIHQ/7RU= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210210060733-458ac372e62b/go.mod h1:0ztUDBKJ5n4FWjJyB+ocZkaZ5dMgiQra26DtIHQ/7RU= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211010904-8fb6b6fe2be9/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211213633-cb4b0f3c2b90/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211231003-1b173107e73f/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210212060838-03489b456ce4/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210214222442-8831c9eed65e/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210222001928-9b1a1d8f94e8/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210225222346-fe3638a6654b/go.mod h1:3L0xJunJ+QS2aJWDdvAg5KXRPkCVXVFX89FmaoEUUKQ= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210301063050-3b6988744747/go.mod h1:3L0xJunJ+QS2aJWDdvAg5KXRPkCVXVFX89FmaoEUUKQ= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210301233014-a416586c0945/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210308232815-efdaf92fb173/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= +github.com/autopilot3/ap3-product-activities-go v0.0.0-20210309225627-963511f57c99/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= +github.com/autopilot3/ap3-recurly-integration-api-go v0.0.0-20201116225025-c1adba78ce0b/go.mod h1:J5SOTJ9stMa69c5ATf4olIGhi7yFhJ+jc4JuPKRTyWw= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200615050122-435e15feec12/go.mod h1:scwU0swPmcP2FFrvNuuiPNimTdpcfZHKIjMPCoDUAR4= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200727002453-487edf23da93/go.mod h1:2xpR4tvervtfqRkxFUaG6oQJb2eYZw0DLbWdVBLEtQ8= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200812232248-bd8e42547527/go.mod h1:2xpR4tvervtfqRkxFUaG6oQJb2eYZw0DLbWdVBLEtQ8= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200820020919-717969c32791/go.mod h1:U0ieDdGP4xcGitq/i4jq68TIjlqkxwaw458UJB8uPno= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200828005231-f477a2b1681e/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200828061430-8d841f7ae499/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20200914013550-5c17adf8bd20/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201007011534-5e5fd60f55cc/go.mod h1:stsOt4MBu6nftYoKj2YhYNi2IpMKddqu9ZFkTBliSic= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008024625-b44c2a507235/go.mod h1:QRjCeq8qSshqAzzvF6bSSDUne17dBJN7HD/RozfYq2k= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008042357-9bae8c09047e/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008211557-cd37a503df76/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201009032437-62a7d2c34d84/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201012003713-e9bbb8d09f50/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201015050209-45d8c75bdd5d/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201108211813-94cf524c044a/go.mod h1:bkka3HjNzo4xeIIV+KY6iToGUlh/+tcSNRup4qLxdZ0= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201109043636-87b8a34835b2/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201119234500-f90a73e0b7f9/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201207044815-dd6bfa62b410/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209050532-665cbc3c329f/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209052810-a4ae6f575e17/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209212153-ac2b8081ac37/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201210233958-e0a04175ebfe/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201214045117-1139ac9382c7/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201217003124-4ec47f23ab31/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20201230050252-c642b8e0ed5b/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210104030121-a62ad521d9b0/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210104052144-dfb315c046d7/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210105053408-4d55dfc1f348/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210106044926-ac9bd7fef03c/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210106052350-ef71cb91533c/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210111044458-40dd36644477/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210114013652-6e1055ed652b/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210114034400-0580d49783a1/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210120034422-d0ac3585c262/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210121030500-5ce234604540/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210203234745-47c59e401114/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210205054024-cc651914318d/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210210000031-21319466ba4b/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210212025603-43ba5fbf7a80/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210216234838-bf693a30a441/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210224234736-79d726478354/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210302053502-5e44e54b4f6d/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210307214609-0cb893bc11e5 h1:XjWo8aovX6GDy1JiKxk12ahM1iVcbNBllI9I8fy3Ug4= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20210307214609-0cb893bc11e5/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= +github.com/autopilot3/ap3-settings-api-go v0.0.0-20200612050430-e336c0d52b2d/go.mod h1:cQB0UsghEoclCFWe078hqLtsCDUKCOmSpz4a9m0IJBM= +github.com/autopilot3/ap3-settings-api-go v0.0.0-20200701225546-d1d7930acc8c/go.mod h1:cQB0UsghEoclCFWe078hqLtsCDUKCOmSpz4a9m0IJBM= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200902121607-1f0622c8e018/go.mod h1:IMUQIPdtOwVQ2rRxGME8/JpjfykfXXd/2mqvPViNg/Q= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200915063035-8fd046f576a3/go.mod h1:FVU3chmaCCXPihJaMj1qqkkIBiAursfCBXZGcewTzp0= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200917025602-202a22e50999/go.mod h1:/TmedAGSr58vkWTyvKgy5etVvqZ7Ts7yA7VN+/aZyyQ= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200930064120-89c9b031d11c/go.mod h1:Aq6XZwH3j35P6XP2ZscDdC43MlLI+ZDI99T37zTkndw= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201006040927-ce47c1f774f5/go.mod h1:57IFN2RmkV5GRrhSrZTqycC1M1xp8kXaLgHVdXPpYRw= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201014051343-433ac1727497/go.mod h1:Irzm/T8+jP2nfV6mwNnhJa57OePfKenPTR/u08PeDHY= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201019220006-e1cff58775db/go.mod h1:OooU3RfxkASd8b043DUlwQv90CnSDpdjSvtx66Kb3dg= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201104045008-345495f372ac/go.mod h1:RnPoqF75h7PxKE3atrO91T9NE2a2rXhB6KRYSkdwclU= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201105033955-31f7af7f74bf/go.mod h1:RnPoqF75h7PxKE3atrO91T9NE2a2rXhB6KRYSkdwclU= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201109003049-4ee8db6a0286/go.mod h1:MZ/S9NE9WXbDg1K/WuGBTJXz5/kHQih7v+dKKTw9n+c= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201109054405-328467de6352/go.mod h1:k+mT4qpr29tsrrYGNUCk2AMeEKeUL1w9vILwXGTQaOc= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201221225401-f8ec65fb9342/go.mod h1:FFZ6UFX3Fw9lMpJPMECTiM18RpJdlDeq+J3WeAB/UDQ= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210113065727-96246f94c52b/go.mod h1:i78kysJodyK4DOu/uASO/Jy5YN3UElVilwJwdxb7/yA= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210115004404-b858dff75698/go.mod h1:YxVJVJmTqhZT6wL7tuXTuO8QpGQIIoirriaHL/mZVLE= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210128021247-54999ac8967c/go.mod h1:oJa6OVGW++7P2tF6gQpjpvpwgNVIWhtqoiAp5htPWMw= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210203030500-419c3f0254fb/go.mod h1:oJa6OVGW++7P2tF6gQpjpvpwgNVIWhtqoiAp5htPWMw= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210207233657-df858fac1d01/go.mod h1:73d60QN1Ax+dcBqX0jrfHMboiunxzfryGtRjyYhRZxs= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210212000225-fcab434cf637/go.mod h1:73d60QN1Ax+dcBqX0jrfHMboiunxzfryGtRjyYhRZxs= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210218073611-1f10236415cc/go.mod h1:neT9Jnf1jioXFi7i5oFNGBQDsKctxzHREoZj60bSSEo= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210304104323-f6ba29b62bc6/go.mod h1:2dTDFJGuEhHAuZ338RjX/VMsBkLiAUFKSva5lOYIgno= +github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210305041336-6bb6793db7be/go.mod h1:MiqlRqsT24QBsZMEotS+czvQhIeHM2mz2oF1cP6qVn8= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200918005617-3556b3adfada/go.mod h1:ABjnqxpIe8fCeIWInMpyY+w09cpOgk60Zj7QqbwrKlA= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200918063010-8c2606f34aab/go.mod h1:nrms7GhT0WwX4pYxc2H9D3KkjcJAhpgqfA3hFR4vbII= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200930063935-e6ff99d44d6e/go.mod h1:ZoOWnoE8d4+iG4cDVnvi1j9/p7zkAQcO8rAF5sgt1Aw= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20201124023917-e9ea3457d5ec/go.mod h1:C6PU2vrCd1rGz+VKbUpKY2x7yQ+ydqDZb18VdeW3EqE= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20201214052632-5c26f2c9df1a/go.mod h1:d3vdfOd3rAaRbh78UQm1bF6TwII7a+WJXC32J5pBbFY= +github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20210304221403-963bbf85617c/go.mod h1:2nspPu+3PiPvH1dimmeVOIDjUY+seHSOOZNeBqMaKv4= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200727064716-f73fde95360f/go.mod h1:JFT/sJaAwdxEe1m/r1xT7jl/UVSN5wMDI1TQwrZ9PfQ= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200806001329-7174b404bfb9/go.mod h1:81MpmpnZ/hf6LXhIG5p8uHg18velgfoX12HrW+9QkYE= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200820022005-9dd3a595b303/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200826010648-5616dc798b53/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200902042534-c3e45c8a3509/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200911042427-af150c69b99a/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200917024619-ad43455e94ed/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200917044534-cc20ea712188/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200918052414-2ba094d12923/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200923224544-8b85ee920af6/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201026101312-483cfc6a6874/go.mod h1:0VAFiBUI6RiY7uLs+ycm0X7RRXoD6V4ymRGCrnkdbwU= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201030030004-594a4e28c194/go.mod h1:0VAFiBUI6RiY7uLs+ycm0X7RRXoD6V4ymRGCrnkdbwU= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201102060630-dba16d09a382/go.mod h1:DhIyIsM++xeQzwkGCcBH7Rb8T4a0RitDXi/QcwZzHdk= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201103053749-17f12d02d1c5/go.mod h1:DhIyIsM++xeQzwkGCcBH7Rb8T4a0RitDXi/QcwZzHdk= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201110000829-516217e50698/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201110051708-a9d06725e406/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201119234500-c0a2a5277036/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201124221731-d8176d6ce66b/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201126055610-13245bbdb72c/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201215060908-53f3c238e499/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201217062836-8009a35aacf8/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210121032752-b4014fd3c6aa/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210205054042-4bc4faee0fe6/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210208222648-e75c3e6874a8/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210209223352-fc271b21668e/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210212025608-7f1a95b3b0ec/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210224235047-c3f37237388e/go.mod h1:I8MaJvmsERlpUPznoFqt6/CcY7JLhBVH99GQjWniHNA= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210302062904-34965ad28339/go.mod h1:I8MaJvmsERlpUPznoFqt6/CcY7JLhBVH99GQjWniHNA= +github.com/autopilot3/ap3-types-go v0.0.0-20200302044432-273d21358a88/go.mod h1:MNl6xFXknu/xpGmgpbNomot+LEUS/9nvj85aPVFE1vo= github.com/autopilot3/ap3-types-go v0.0.0-20200319062058-3b94959eea5a/go.mod h1:MNl6xFXknu/xpGmgpbNomot+LEUS/9nvj85aPVFE1vo= +github.com/autopilot3/ap3-types-go v0.0.0-20200429045909-6d2bb5e451d9/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= +github.com/autopilot3/ap3-types-go v0.0.0-20200510221049-7b8bef8df4ad/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= +github.com/autopilot3/ap3-types-go v0.0.0-20200526050125-0620bfa14203/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= github.com/autopilot3/ap3-types-go v0.0.0-20200610062123-2056c77dad72/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= -github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350 h1:HOlOPJ0QXuzK+uiNliceEPCXav6+4Vd6O3XFs5nND3k= +github.com/autopilot3/ap3-types-go v0.0.0-20200628231357-c27bae8024e1/go.mod h1:lq4iOWi44eQKFsi0e3Jy7K2mYjXnnelReCy9plPSAwA= +github.com/autopilot3/ap3-types-go v0.0.0-20200701224433-9c1dda264f76/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200727010014-9dd43aa93518/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200727084006-c5d1d8a9187c/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200731014056-dce9825fb10f/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200803055614-eb02a9950e72/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200811055302-aca569a1af67/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200811074031-ab1b4c3c1083/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= +github.com/autopilot3/ap3-types-go v0.0.0-20200820044920-2b064f5d1604/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= +github.com/autopilot3/ap3-types-go v0.0.0-20200825040736-e59994c09b69/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= +github.com/autopilot3/ap3-types-go v0.0.0-20200827072748-76337307dbe8/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= +github.com/autopilot3/ap3-types-go v0.0.0-20200828062854-107d838e61d2/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= +github.com/autopilot3/ap3-types-go v0.0.0-20200915230242-09972d9da703/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20200930045057-c61c166f7a82/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201015051556-0d5681868c14/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201103021509-ded08f67e26a/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201104013719-668bb2f7b12d/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201108222504-bd118b828ce0/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201109040640-4e696006eb8a/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201201022337-ea21c7f55af1/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201201053424-e9b85bfe094e/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20201217023615-5d3b97875184/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210111062949-a95b81b54a4c/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210119054146-fc483241e8dc/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210128032842-1a652d386f7e/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210208033231-106c956466bd/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210210011912-c9372bc0fbd4/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= +github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 h1:xWKkvYQqWjNg4vgcLdWL4CO0MfFTNFPU3MkyFqOblAg= +github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1/go.mod h1:cYwS01Xb2xuPU8k+CeSI+mMTi7x+uW/BF3IRuj08nhc= +github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210128045733-b99e5d14b8e2/go.mod h1:tfCj5wEQkd7TbqSwH8hF45ClNFCZF4AQswiIg1QtgB0= +github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210222080335-79258f0815b5/go.mod h1:810ttGGp3l63/j1awrZmU5Qfwy7dH878nxRho8ux1Jg= +github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210303043310-2618f85aa49f/go.mod h1:mB9GwrpsVc5sCT59xBOz/I7beCoRIlev0xGTA+j9vrs= +github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210308025312-b5dd03dc8643/go.mod h1:y8aaUeD5u3fDiND8rnU4daDT0iJe6tIoFR6+4HY1BG4= +github.com/autopilot3/liquid v1.2.5-0.20200626034444-66db265650bc/go.mod h1:CPo816axFRPkWPxYBiqYpEC9bx0q5FaurFmA49VPRIw= +github.com/autopilot3/liquid v1.2.5-0.20201015085226-aded6c24c986/go.mod h1:ZoV90UCJGyvaOP9BXMJpRSZq4ubrGcyuGLr9Wss8CK4= +github.com/autopilot3/liquid v1.2.5-0.20210113224705-ae307ff2cae5/go.mod h1:ZoV90UCJGyvaOP9BXMJpRSZq4ubrGcyuGLr9Wss8CK4= +github.com/autopilot3/recurly v1.0.2-0.20200903052239-79fad6cf33a8/go.mod h1:+zUJmcp1tn9ul7C+mxRGC7oh5GAPkAU8xPhzO+/wrxw= +github.com/autopilot3/recurly v1.0.2-0.20210228222346-7e0af5098d78/go.mod h1:+zUJmcp1tn9ul7C+mxRGC7oh5GAPkAU8xPhzO+/wrxw= +github.com/autopilot3/uasurfer v0.0.0-20200622013708-db551206c683/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/autopilot3/uasurfer v0.0.0-20200701072946-9ade43ee0e99/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= +github.com/autopilot3/uasurfer v0.0.0-20200803050647-c07dd9c3ff0d/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= +github.com/autopilot3/uasurfer v0.0.0-20200818074325-9abb717d53b6/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/autopilothq/base62 v0.0.0-20180507014355-3a012c7ef818/go.mod h1:H2/Uf5WyB5fyCrNwyOv1aJJSlnreOg12lyqGKSsiXQQ= +github.com/autopilothq/cloudant-go v0.0.0-20191112055603-4280cdf0d6e6/go.mod h1:zeYB2W2OYrYrJgosui1zA67eId/QNVTG5TsaxGJ8xiw= +github.com/autopilothq/cloudant-go v0.0.0-20200325053743-9bb25c2cefe8/go.mod h1:zeYB2W2OYrYrJgosui1zA67eId/QNVTG5TsaxGJ8xiw= +github.com/autopilothq/lg v0.0.0-20180314064927-8d0b6e36e4dd/go.mod h1:OnHOylhx9MEUpYFRv8ppP6roiH1hWnp5pwpWqaD9NSA= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= +github.com/aws/aws-lambda-go v0.0.0-20190129190457-dcf76fe64fb6/go.mod h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A= +github.com/aws/aws-lambda-go v1.13.2/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-lambda-go v1.16.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= +github.com/aws/aws-lambda-go v1.17.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= +github.com/aws/aws-lambda-go v1.18.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= +github.com/aws/aws-lambda-go v1.19.1/go.mod h1:jJmlefzPfGnckuHdXX7/80O3BvUUi12XOkbv4w9SGLU= github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.23/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.28.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.29.15/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= github.com/aws/aws-sdk-go v1.29.28/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= +github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/aws/aws-sdk-go v1.36.26 h1:710u7Q1xpbzpigh/RPPUXwr/5X/VwCxTXSeam8icgos= +github.com/aws/aws-sdk-go v1.36.26/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/awslabs/aws-lambda-go-api-proxy v0.4.1/go.mod h1:NxIVpehCd5ZcK9B/K39H71DRL1Q7P7ESaRROmSazJ4U= +github.com/awslabs/aws-lambda-go-api-proxy v0.6.0/go.mod h1:hxP3G7NUojx/te+NJok/k9IkANYPlll5kST3fveu16I= +github.com/awslabs/aws-lambda-go-api-proxy v0.8.0/go.mod h1:V3jj7BZnRY8y2QTKSABIwBc+dTjPkX7vLxz61Id7vsQ= +github.com/aymerick/raymond v2.0.2+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= 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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/buger/jsonparser v1.0.0/go.mod h1:tgcrVJ81GPSF0mz+0nu1Xaz0fazGPrmmJfJtxjbHhUQ= +github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chromedp/cdproto v0.0.0-20200116234248-4da64dd111ac/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g= +github.com/chromedp/chromedp v0.5.3/go.mod h1:YLdPtndaHQ4rCpSpBG+IPpy9JvX0VD+7aaLxYgYj28w= +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/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cweill/gotests v1.5.3/go.mod h1:XZYOJkGVkCRoymaIzmp9Wyi3rUgfA3oOnkuljYrjFV8= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/cweill/gotests v1.6.0/go.mod h1:CaRYbxQZGQOxXDvM9l0XJVV2Tjb2E5H53vq+reR2GrA= +github.com/daixiang0/gci v0.2.4/go.mod h1:+AV8KmHTGxxwp/pY84TLQfFKp2vuKXXJVzF3kD/hfR4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidrjenni/reftools v0.0.0-20191222082827-65925cf01315/go.mod h1:QXiCu8WKyFL/X+NMCmtxoCq/jSOb54R4iDXdjsaYEWA= +github.com/davidrjenni/reftools v0.0.0-20201119194839-01cf781abd5b/go.mod h1:QXiCu8WKyFL/X+NMCmtxoCq/jSOb54R4iDXdjsaYEWA= +github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185/go.mod h1:cFRxtTwTOJkz2x3rQUNCYKWC93yP1VKjR8NUhqFxZNU= +github.com/denis-tingajkin/go-header v0.3.1/go.mod h1:sq/2IxMhaZX+RRcgHfCRx/m0M5na0fBt4/CRe7Lrji0= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/elastic/go-elasticsearch v0.0.0/go.mod h1:TkBSJBuTyFdBnrNqoPc54FN0vKf5c04IdM4zuStJ7xg= +github.com/elastic/go-elasticsearch/v7 v7.6.0/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= 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/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.5.0/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v0.0.0-20180126034611-783c7ee9c14e/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi v0.0.0-20180202194135-e223a795a06a/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-critic/go-critic v0.5.2/go.mod h1:cc0+HvdE3lFpqLecgqMaJcvWWH77sLdBp+wLGPM1Yyo= +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/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= 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-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= +github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= +github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= +github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= +github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= +github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= +github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= @@ -86,185 +920,735 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA= +github.com/gocolly/colly/v2 v2.1.0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0= +github.com/gocql/gocql v0.0.0-20200505093417-effcbd8bcf0e/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20200511135441-57b003a04490/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20200519160334-799061058e31/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= github.com/gocql/gocql v0.0.0-20200624222514-34081eda590e/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20200815110948-5378c8f664e9/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20201209090715-f485b5f9159c/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20201215165327-e49edf966d90 h1:wSTQK2N221ppLtM8g/2/1LOy+4hblTb17U6F+0aDDXo= +github.com/gocql/gocql v0.0.0-20201215165327-e49edf966d90/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gojp/goreportcard v0.0.0-20191001233754-41818f5fd295/go.mod h1:/DA2Xpp+OaR3EHafQSnT9SKOfbG2NPQR/qp6Qr8AgIw= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +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/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 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 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 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= +github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= +github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= +github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= +github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/golangci-lint v1.31.0/go.mod h1:aMQuNCA+NDU5+4jLL5pEuFHoue0IznKE2+/GsFvvs8A= +github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= +github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= 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/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.2/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 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.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/martian/v3 v3.1.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-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE= +github.com/google/uuid v0.0.0-20171129191014-dec09d789f3d/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/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/gookit/color v1.2.5/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v0.0.0-20180120075819-c0091a029979/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/schema v1.1.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gotk3/gotk3 v0.5.0/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= 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/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/haya14busa/gopkgs v1.0.0/go.mod h1:QFVUm30EQcji7sZtl7ry4E+bwtxx63Ufi7Mf9JDpvpI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/formBinder v5.0.0+incompatible/go.mod h1:i8kTYUOEstd/S8TG0ChTXQdf4ermA/e8vJX0+QruD9w= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg= +github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= +github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s= +github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/jmoiron/sqlx v1.2.1-0.20190826204134-d7d95172beb5/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/johnfercher/maroto v0.27.0/go.mod h1:z/5eo/hH1g+01K4Mm0IVVbixHibtaNbZ9vHf+2H6fpM= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/impl v0.0.0-20191119165012-6b9658ad00c7/go.mod h1:t4Tr0tn92eq5ISef4cS5plFAMYAqZlAXtgUcKE6y8nw= +github.com/josharian/impl v1.0.0/go.mod h1:SQ6aJMP6xsJpGSD/36IIqrUdigLCYe9bz/9o5AKm6Aw= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v0.0.0-20180128142709-bca911dae073/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 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/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= 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/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.4.2/go.mod h1:rZsO0wEsunjT/L9stF3fJjYbAHgqNYuQB4B8FWvBck0= +github.com/kardianos/govendor v1.0.9/go.mod h1:yvmR6q9ZZ7nSF5Wvh40v0wfP+3TwwL8zYQp+itoZSVM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= +github.com/kataras/golog v0.0.0-20190624001437-99c81de45f40/go.mod h1:PcaEvfvhGsqwXZ6S3CgCbmjcp+4UDUh2MIfF2ZEul8M= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris v11.1.1+incompatible/go.mod h1:ki9XPua5SyAJbIxDdsssxevgGrbpBmmvoQmo/A0IodY= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +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/klauspost/compress v1.7.4/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg= +github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/knq/sysutil v0.0.0-20191005231841-15668db23d08/go.mod h1:dFWs1zEqDjFtnBXsd1vPOZaLsESovai349994nHx3e0= 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.2/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 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= 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/kyoh86/exportloopref v0.1.7/go.mod h1:h1rDl2Kdj97+Kwh4gdz3ujE7XHmH51Q0lUiZ1z4NLj8= +github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= +github.com/labstack/echo/v4 v4.1.16/go.mod h1:awO+5TzAjvL8XpibdsfXxPgHr+orhtXZJZIQCVjogKI= +github.com/labstack/gommon v0.2.8/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mdempsky/gocode v0.0.0-20191202075140-939b4a677f2f/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= +github.com/mdempsky/gocode v0.0.0-20200405233807-4acdcbdea79d/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 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/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= 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/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/jwt v1.0.1 h1:71ivoESdfT2K/qDiw5YwX/3W9/dR7c+m83xiGOj/EZ4= +github.com/nats-io/jwt v1.0.1/go.mod h1:n3cvmLfBfnpV4JJRN7lRYCyZnw48ksGsbThGXEk4w9M= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats-server/v2 v2.1.6/go.mod h1:BL1NOtaBQ5/y97djERRVWNouMW7GT3gxnmbE/eC8u8A= +github.com/nats-io/nats-server/v2 v2.1.7 h1:jCoQwDvRYJy3OpOTHeYfvIPLP46BMeDmH7XEJg/r42I= +github.com/nats-io/nats-server/v2 v2.1.7/go.mod h1:rbRrRE/Iv93O/rUvZ9dh4NfT0Cm9HWjW/BqOWLGgYiE= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nats.go v1.9.2/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= +github.com/nats-io/nats.go v1.10.0 h1:L8qnKaofSfNFbXg0C5F71LdjPRnmQwSsA4ukmkt1TvY= +github.com/nats-io/nats.go v1.10.0/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.4/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/nkeys v0.2.0 h1:WXKF7diOaPU9cJdLD7nuzwasQy9vT1tBqzXZZf3AMJM= +github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nishanths/exhaustive v0.0.0-20200811152831-6cf413ae40e0/go.mod h1:wBEpHwM2OdmeNpdCvRPUlkEbBuaFmcK4Wv8Q7FuGW3c= +github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nyaruka/phonenumbers v1.0.66 h1:OVFSLMXhNR7CS3yq6ekm2uggokeggwJVO31h7OgB3OU= +github.com/nyaruka/phonenumbers v1.0.66/go.mod h1:sDaTZ/KPX5f8qyV9qN+hIm+4ZBARJrupC6LuhshJq1U= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= +github.com/onsi/ginkgo v0.0.0-20180119174237-747514b53ddd/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/oschwald/maxminddb-golang v1.6.0/go.mod h1:DUJFucBg2cvqx42YmDa/+xHvb0elJtOm3o4aFQ/nb/w= +github.com/oschwald/maxminddb-golang v1.8.0/go.mod h1:RXZtst0N6+FY/3qCNmZMBApR19cdQj43/NM9VkrNAis= +github.com/osteele/liquid v1.2.4/go.mod h1:jhgMyQFVoV0grH2MKvpMbgxFSBezOoXUbgiwnYrKJ2c= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= +github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= 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/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= +github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.13.0 h1:vJlpe9wPgDRM1Z+7Wj3zUUjY1nr6/1jNKyl7llliccg= +github.com/prometheus/common v0.13.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= +github.com/quasilyte/go-ruleguard v0.2.0/go.mod h1:2RT/tf0Ce0UDj5y243iWKosQogJd8+1G3Rs2fxmlYnw= +github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/recurly/recurly-client-go v0.0.0-20200518190456-e30417f663e1/go.mod h1:Ynmb2McBp8LuX05ReX2/nWG32V990ILt8HLxivNi+tI= +github.com/recurly/recurly-client-go/v3 v3.7.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= +github.com/recurly/recurly-client-go/v3 v3.8.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= +github.com/richardlehane/mscfb v1.0.3/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= +github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/godef v1.1.1/go.mod h1:oEo1eMy1VUEHUzUIX4F7IqvMJRiz9UId44mvnR8oPlQ= +github.com/rogpeppe/godef v1.1.2/go.mod h1:WtY9A/ovuQ+UakAJ1/CEqwwulX/WJjb2kgkokCHi/GY= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ryancurrah/gomodguard v1.1.0/go.mod h1:4O8tr7hBODaGE6VIhfJDHcwzh5GUccKSJBU0UMXJFVM= +github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/securego/gosec/v2 v2.4.0/go.mod h1:0/Q4cjmlFDfDUj1+Fib61sc+U5IQb2w+Iv9/C3wPVko= +github.com/sendgrid/rest v2.4.1+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= +github.com/sendgrid/rest v2.6.0+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= +github.com/sendgrid/rest v2.6.2+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= +github.com/sendgrid/sendgrid-go v3.5.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= +github.com/sendgrid/sendgrid-go v3.6.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= +github.com/sendgrid/sendgrid-go v3.6.1+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= +github.com/sendgrid/sendgrid-go v3.7.2+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE= +github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa/go.mod h1:Yjr3bdWaVWyME1kha7X0jsz3k2DgXNa1Pj3XGyUAbx8= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= +github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= 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/slack-go/slack v0.6.6/go.mod h1:FGqNzJBmxIsZURAxh2a8D21AnOVvvXZvGligs4npPUM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/go-diff v0.6.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/sourcegraph/go-webkit2 v0.0.0-20170811231113-ade305cf91f4/go.mod h1:MeIulxHy//0+TzvJV9+kG4UZCNb8f8WIR/rU2CrnTQI= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/sqs/gojs v0.0.0-20170522041006-12d0b3282819/go.mod h1:M7hbdQaz37Cdb0vquiwCsvKKkDCCbKQ+T04iUVtXIqE= +github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4= +github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU= +github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= 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.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= 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 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tealeg/xlsx/v3 v3.2.3/go.mod h1:0hGmAEoZ48SS1ZAE6eqZJkJVXgOMY+8a33vjXa8S8HA= +github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= +github.com/tetafro/godot v0.4.8/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= +github.com/tidwall/gjson v1.3.2/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= +github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= +github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= +github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= +github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.0.1/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU= +github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.17.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.24.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= +github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.0.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/uber/jaeger-lib v2.3.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ= +github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/ugorji/go v0.0.0-20180129160544-d2b24cf3d3b4/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= +github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= +github.com/urfave/negroni v0.0.0-20180130044549-22c5532ea862/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.15.1/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/quicktemplate v1.6.2/go.mod h1:mtEJpQtUiBV0SHhMX6RtiJtqxncgrfmjcUy5T68X8TM= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/xuri/efp v0.0.0-20200605144744-ba689101faaf/go.mod h1:uBiSUepVYMhGTfDeBKKasV4GpgBlzJ46gXUBAqV8qLk= +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= github.com/zmb3/gogetdoc v0.0.0-20190228002656-b37376c5da6a/go.mod h1:ofmGw6LrMypycsiWcyug6516EXpIxSbZ+uI9ppGypfY= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.2.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.3.3 h1:9kX7WY6sU/5qBuhm5mdnNWdqaDAQKB2qSZOd5wMEPGQ= +go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.mongodb.org/mongo-driver v1.3.3/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.3.5/go.mod h1:Ual6Gkco7ZGQw8wE1t4tLnvBsf6yVSM60qW6TgOeJ5c= +go.mongodb.org/mongo-driver v1.4.0/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs= +go.mongodb.org/mongo-driver v1.4.1/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs= +go.mongodb.org/mongo-driver v1.4.2/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.6 h1:rh7GdYmDrb8AQSkF8yteAus8qYOgOASWDOv1BWqBXkU= +go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +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.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= 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/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200801110659-972c09e46d76/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/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/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.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/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-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/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-20190125091013-d26f9f9a57f3/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-20190327091125-710a502c58a2/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-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +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-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/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-20200319234117-63522dbf7eec/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-20200421231249-e086a090c8fd/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-20200520004742-59133d7f0dd7/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-20200602114024-627f9648deb9/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-20200904194848-62affa334b73/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-20201029221708-28c70e62bb1d/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/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-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210113205817-d3ed898aa8a3/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 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= @@ -272,81 +1656,354 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190412183630-56d357773e84/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 h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/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-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/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-20190222072716-a9d3bda3a223/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-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/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-20190531175056-4c3a928424d2/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-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191224085550-c709ea063b76/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-20200116001909-b77594299b42/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-20200317113312-5766fd39f98d/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-20200420163511-1957bb5e6d1f/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-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/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-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916084744-dbad9cb7cb7a/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181130195746-895048a75ecf/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181207195948-8634b1ecd393/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/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-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 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-20190311215038-5c2858a9cfe5/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-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190408220357-e5b8258f4918/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190420181800-aa740d480789/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-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +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-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191109212701-97ad0ed33101/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/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-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +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-20200103221440-774c71fcf114/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-20200117220505-0cba7a3a9ee9/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-20200212213342-7a21e308cf6c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200213224642-88e652f7a869/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-20200226224502-204d844ad48d/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-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200321224714-0d839f3cf2ed/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200410194907-79a7a3126eef/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +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-20200514211350-d0dc4d41b76d/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-20200519015757-0d0afa43d58a/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200609164405-eb789aa7ce50/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200617212913-87be026d3888/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-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200701041122-1837592efa10/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +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-20200809012840-6f4f008689da/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200916225323-c537a342ddf6/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201029225241-186a7436c9f3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210115202250-e0d201561e39/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools/gopls v0.3.2/go.mod h1:k7Vveg58twOi4lDvLKpDIC04HGw8JJmRDBtJuSPGuI8= 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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +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.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.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.38.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 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/appengine v1.6.7/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-20190404172233-64821d5d2107/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-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +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-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200319113533-08878b785e9c/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-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-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 v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200916143405-f6a2fa72f0c4/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210202153253-cf70463f6119/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210211221406-4ccc9a5e4183 h1:5YmF1NDDcUX9p0CJqW+GQiLW0HHe7ZW5K6lsFk6mJeA= +google.golang.org/genproto v0.0.0-20210211221406-4ccc9a5e4183/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.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.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +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 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= 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 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/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.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +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-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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= +honnef.co/go/tools v0.0.1-2020.1.5/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY= +honnef.co/go/tools v0.1.0 h1:AWNL1W1i7f0wNZ8VwOKNJ0sliKvOF/adn0EHenfUh+c= +honnef.co/go/tools v0.1.0/go.mod h1:XtegFAyX/PfluP4921rXU5IkjkqBCDnUq4W8VCIoKvM= +mvdan.cc/gofumpt v0.0.0-20200709182408-4fd085cb6d5f/go.mod h1:9VQ397fNXEnF84t90W4r4TRCQK+pg9f8ugVfyj+S26w= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= mvdan.cc/xurls/v2 v2.1.0/go.mod h1:5GrSd9rOnKOpZaji1OZLYL/yeAAtGDlo/cFe+8K5n8E= +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/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= From 23c0b05a1da47d9691fab04bebdf4dd3eb498d2c Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 27 May 2021 12:37:20 +1000 Subject: [PATCH 12/96] fix multiplier for decimal/currency --- engine.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine.go b/engine.go index f0f60b75..0c6987e2 100644 --- a/engine.go +++ b/engine.go @@ -80,7 +80,7 @@ func NewEngine() *Engine { formatTemplate = "%.2f" } - value := fmt.Sprintf(formatTemplate, float64(s)/100) + value := fmt.Sprintf(formatTemplate, float64(s)/1000) if currency != "" { return currency + value } From 05b6977bb774a026b48533391c65234653d78177 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 6 Jul 2021 13:00:11 +1000 Subject: [PATCH 13/96] fix decimal filter default value not working --- engine.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/engine.go b/engine.go index 0c6987e2..e76ea49c 100644 --- a/engine.go +++ b/engine.go @@ -3,6 +3,7 @@ package liquid import ( "fmt" "io" + "strconv" "strings" "time" @@ -67,7 +68,14 @@ func NewEngine() *Engine { } }) - engine.RegisterFilter("decimal", func(s int64, format string, currency string) string { + engine.RegisterFilter("decimal", func(s string, format string, currency string) string { + if s == "" { + return s + } + num, err := strconv.ParseFloat(s, 64) + if err != nil { + return s + } var formatTemplate string switch format { case "whole": @@ -80,7 +88,7 @@ func NewEngine() *Engine { formatTemplate = "%.2f" } - value := fmt.Sprintf(formatTemplate, float64(s)/1000) + value := fmt.Sprintf(formatTemplate, float64(num)/1000) if currency != "" { return currency + value } From da80a6ff90ae7744ad88ebaf0ae6827c0b102e68 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 6 Jul 2021 13:31:13 +1000 Subject: [PATCH 14/96] add log --- engine.go | 3 +++ go.mod | 1 + 2 files changed, 4 insertions(+) diff --git a/engine.go b/engine.go index e76ea49c..03966020 100644 --- a/engine.go +++ b/engine.go @@ -1,12 +1,14 @@ package liquid import ( + "context" "fmt" "io" "strconv" "strings" "time" + "github.com/autopilot3/ap3-helpers-go/logger" "github.com/autopilot3/ap3-types-go/types/date" "github.com/autopilot3/liquid/filters" "github.com/autopilot3/liquid/render" @@ -74,6 +76,7 @@ func NewEngine() *Engine { } num, err := strconv.ParseFloat(s, 64) if err != nil { + logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") return s } var formatTemplate string diff --git a/go.mod b/go.mod index ef0a0406..ff4691f4 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.14 require ( github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a + github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.6.1 From 4819f2751e56a0ee334df499e2e3ed4e23e2d6f3 Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Mon, 30 Aug 2021 15:15:07 +1000 Subject: [PATCH 15/96] Empty bool value --- engine.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/engine.go b/engine.go index 03966020..dbb96fa6 100644 --- a/engine.go +++ b/engine.go @@ -99,20 +99,23 @@ func NewEngine() *Engine { return value }) - engine.RegisterFilter("booleanFormat", func(s bool, format string) string { + engine.RegisterFilter("booleanFormat", func(s *bool, format string) string { + if s == nil { + return "" + } if format == "yesNo" { - if s { + if *s { return "Yes" } return "No" } if format == "onOff" { - if s { + if *s { return "On" } return "Off" } - if s { + if *s { return "True" } return "False" From d88d60ab7aede5d369b0cb2352f3b8981905dabf Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Mon, 30 Aug 2021 15:28:19 +1000 Subject: [PATCH 16/96] Use string value --- engine.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/engine.go b/engine.go index dbb96fa6..2f2d0554 100644 --- a/engine.go +++ b/engine.go @@ -99,23 +99,27 @@ func NewEngine() *Engine { return value }) - engine.RegisterFilter("booleanFormat", func(s *bool, format string) string { - if s == nil { + engine.RegisterFilter("booleanFormat", func(s string, format string) string { + if s == "" { return "" } + var b bool + if s == "true" { + b = true + } if format == "yesNo" { - if *s { + if b { return "Yes" } return "No" } if format == "onOff" { - if *s { + if b { return "On" } return "Off" } - if *s { + if b { return "True" } return "False" From 2147cdcc766ec6a221f4d86c2fec11582d306ce9 Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Mon, 30 Aug 2021 15:38:17 +1000 Subject: [PATCH 17/96] fix missing leading 0 for month/day --- engine.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine.go b/engine.go index 2f2d0554..669375cf 100644 --- a/engine.go +++ b/engine.go @@ -62,9 +62,9 @@ func NewEngine() *Engine { switch format { case "mdy": - return fmt.Sprintf("%d/%d/%d", s.Month(), s.Day(), s.Year()) + return fmt.Sprintf("%02d/%02d/%d", s.Month(), s.Day(), s.Year()) case "dmy": - return fmt.Sprintf("%d/%d/%d", s.Day(), s.Month(), s.Year()) + return fmt.Sprintf("%02d/%02d/%d", s.Day(), s.Month(), s.Year()) default: return s.String() } From 7a67cc3d25d7c91d9a9c27be8c8b45cebbf2ab39 Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Mon, 30 Aug 2021 15:45:18 +1000 Subject: [PATCH 18/96] Add buildkite --- .buildkite/pipeline.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .buildkite/pipeline.yml diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml new file mode 100644 index 00000000..3a5610cd --- /dev/null +++ b/.buildkite/pipeline.yml @@ -0,0 +1,10 @@ +--- +env: + DEPENDENCY_NAME: github.com/autopilot3/liquid + VERSION: ${VERSION:-master} + +steps: + - label: ":buildkite: Generate Build Steps" + command: bksg -c golang-module-update -v "$VERSION" + retry: + automatic: true From efa8533c2136e217ad279e99e128a0ce1b6d8296 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 23 Nov 2021 10:53:51 +1100 Subject: [PATCH 19/96] introduce thousand delimiter for decimal by default --- engine.go | 6 +++++- go.mod | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 669375cf..727a6c4a 100644 --- a/engine.go +++ b/engine.go @@ -13,6 +13,9 @@ import ( "github.com/autopilot3/liquid/filters" "github.com/autopilot3/liquid/render" "github.com/autopilot3/liquid/tags" + + "golang.org/x/text/language" + "golang.org/x/text/message" ) // An Engine parses template source into renderable text. @@ -91,7 +94,8 @@ func NewEngine() *Engine { formatTemplate = "%.2f" } - value := fmt.Sprintf(formatTemplate, float64(num)/1000) + p := message.NewPrinter(language.English) + value := p.Sprintf(formatTemplate, float64(num)/1000) if currency != "" { return currency + value } diff --git a/go.mod b/go.mod index ff4691f4..7dcef2c3 100644 --- a/go.mod +++ b/go.mod @@ -8,5 +8,6 @@ require ( github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.6.1 + golang.org/x/text v0.3.5 gopkg.in/yaml.v2 v2.4.0 ) From 5a9727e269a6743f8444492ace6467dfe5e03a4f Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 5 Jan 2022 14:03:19 +1100 Subject: [PATCH 20/96] number with delimiter by language --- engine.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/engine.go b/engine.go index 727a6c4a..64d3c24b 100644 --- a/engine.go +++ b/engine.go @@ -103,6 +103,37 @@ func NewEngine() *Engine { return value }) + engine.RegisterFilter("numberWithDelimiter", func(s string, loc string, format string) string { + if s == "" { + return s + } + num, err := strconv.ParseFloat(s, 64) + if err != nil { + logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") + return s + } + var formatTemplate string + switch format { + case "whole": + formatTemplate = "%.0f" + case "one": + formatTemplate = "%.1f" + case "two": + formatTemplate = "%.2f" + default: + formatTemplate = "%.2f" + } + + tag, err := language.Parse(loc) + if err != nil { + tag = language.English + } + p := message.NewPrinter(tag) + value := p.Sprintf(formatTemplate, float64(num)) + + return value + }) + engine.RegisterFilter("booleanFormat", func(s string, format string) string { if s == "" { return "" From 4ddc61f44c00e50d5df1f9a605881383fcf17ed7 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 15 Feb 2022 16:03:55 +1100 Subject: [PATCH 21/96] ad setContains/setContainsAll --- engine.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/engine.go b/engine.go index 64d3c24b..22137aad 100644 --- a/engine.go +++ b/engine.go @@ -159,6 +159,38 @@ func NewEngine() *Engine { } return "False" }) + + // a set [a,b,c] contains at least one of matches, [a,d] will return true in this case + engine.RegisterFilter("setContains", func(s string, matches ...string) bool { + var contains bool + splits := strings.Split(s, ",") + for _, match := range matches { + for _, s := range splits { + if s == match { + return true + } + } + } + return contains + }) + + // a set [a,b,c] contains all matches, [a,d] will return false in this case, [a,c] will return true + engine.RegisterFilter("setContainsAll", func(s string, matches ...string) bool { + splits := strings.Split(s, ",") + for _, match := range matches { + containMatch := false + for _, s := range splits { + if s == match { + containMatch = true + break + } + } + if !containMatch { + return false + } + } + return true + }) return engine } From 8d6225f62da95d2ffb4f2fa055ba09791c9046c4 Mon Sep 17 00:00:00 2001 From: sfroment Date: Tue, 22 Feb 2022 19:13:24 +0100 Subject: [PATCH 22/96] feat(liquid): add hability to handle array Signed-off-by: sfroment --- Makefile | 6 +- engine_test.go | 2 + expressions/expressions.y | 13 ++- expressions/expressions_test.go | 175 ++++++++++++++++---------------- expressions/y.go | 110 +++++++++++--------- values/value.go | 10 +- 6 files changed, 171 insertions(+), 145 deletions(-) diff --git a/Makefile b/Makefile index acb7bd90..7700f67f 100644 --- a/Makefile +++ b/Makefile @@ -24,17 +24,15 @@ imports: ## list imports @go list -f '{{join .Imports "\n"}}' ./... | grep -v `go list -f '{{.ImportPath}}'` | grep '\.' | sort | uniq lint: ## lint the package - gometalinter ./... --tests --deadline=5m --include=gofmt --exclude expressions/scanner.go --exclude y.go --exclude '.*_string.go' --disable=gotype --disable=interfacer + golangci-lint run @echo lint passed pre-commit: lint test ## lint and test the package setup: ## install dependencies and development tools - go get golang.org/x/tools/cmd/stringer + go install golang.org/x/tools/cmd/stringer go install golang.org/x/tools/cmd/goyacc go get -t ./... - go get github.com/alecthomas/gometalinter - gometalinter --install test: ## test the package go test ./... diff --git a/engine_test.go b/engine_test.go index 4a56258d..6ace8ad0 100644 --- a/engine_test.go +++ b/engine_test.go @@ -17,12 +17,14 @@ var liquidTests = []struct{ in, expected string }{ {`{{ page.title }}`, "Introduction"}, {`{% if x %}true{% endif %}`, "true"}, {`{{ "upper" | upcase }}`, "UPPER"}, + {`{{ page.ar | first }}`, "first"}, } var testBindings = map[string]interface{}{ "x": 123, "ar": []string{"first", "second", "third"}, "page": map[string]interface{}{ + "ar": []interface{}{"first", "second", "third"}, "title": "Introduction", }, } diff --git a/expressions/expressions.y b/expressions/expressions.y index 68aa08bf..feaeb31c 100644 --- a/expressions/expressions.y +++ b/expressions/expressions.y @@ -3,6 +3,7 @@ package expressions import ( "fmt" "math" + "strings" "github.com/autopilot3/liquid/values" ) @@ -43,7 +44,17 @@ func init() { %left '<' '>' %% start: - cond ';' { yylex.(*lexer).val = $1 } + cond ';' { + yylex.(*lexer).val = func(ctx Context) values.Value { + retVal := $1(ctx) + switch retVal.(type) { + case values.ArrayValue: + return values.ValueOf(strings.Join(retVal.Interface().([]string), ", ")) + default: + return retVal + } + } +} | ASSIGN IDENTIFIER '=' filtered ';' { yylex.(*lexer).Assignment = Assignment{$2, &expression{$4}} } diff --git a/expressions/expressions_test.go b/expressions/expressions_test.go index f381c525..0108ae4f 100644 --- a/expressions/expressions_test.go +++ b/expressions/expressions_test.go @@ -14,94 +14,99 @@ var evaluatorTests = []struct { expected interface{} }{ // Literals - {`12`, 12}, - {`12.3`, 12.3}, - {`true`, true}, - {`false`, false}, - {`'abc'`, "abc"}, - {`"abc"`, "abc"}, + // {`12`, 12}, + // {`12.3`, 12.3}, + // {`true`, true}, + // {`false`, false}, + // {`'abc'`, "abc"}, + // {`"abc"`, "abc"}, // Variables - {`n`, 123}, - - // Attributes - {`hash.a`, "first"}, - {`hash.b.c`, "d"}, - {`hash.x`, nil}, - {`fruits.first`, "apples"}, - {`fruits.last`, "plums"}, - {`empty_list.first`, nil}, - {`empty_list.last`, nil}, - {`"abc".size`, 3}, - {`fruits.size`, 4}, - {`hash.size`, 3}, - {`hash_with_size_key.size`, "key_value"}, - - // Indices + // {`n`, 123}, + {`array`, "first, second, third"}, + {`array.first`, "first"}, + + // // Attributes + // {`hash.a`, "first"}, + // {`hash.b.c`, "d"}, + // {`hash.x`, nil}, + // {`fruits.first`, "apples"}, + // {`fruits.last`, "plums"}, + // {`empty_list.first`, nil}, + // {`empty_list.last`, nil}, + // {`"abc".size`, 3}, + // {`fruits.size`, 4}, + // {`hash.size`, 3}, + // {`hash_with_size_key.size`, "key_value"}, + + // // Indices + // {`str_array[0]`, "first"}, {`array[1]`, "second"}, - {`array[-1]`, "third"}, // undocumented - {`array[100]`, nil}, - {`hash[1]`, nil}, - {`hash.c[0]`, "r"}, - - // Expressions - {`(n)`, 123}, - - // Operators - {`1 == 1`, true}, - {`1 == 2`, false}, - {`1.0 == 1.0`, true}, - {`1.0 == 2.0`, false}, - {`1.0 == 1`, true}, - {`1 == 1.0`, true}, - {`"a" == "a"`, true}, - {`"a" == "b"`, false}, - - {`1 != 1`, false}, - {`1 != 2`, true}, - {`1.0 != 1.0`, false}, - {`1 != 1.0`, false}, - {`1 != 2.0`, true}, - - {`1 < 2`, true}, - {`2 < 1`, false}, - {`1.0 < 2.0`, true}, - {`1.0 < 2`, true}, - {`1 < 2.0`, true}, - {`1.0 < 2`, true}, - {`"a" < "a"`, false}, - {`"a" < "b"`, true}, - {`"b" < "a"`, false}, - - {`1 > 2`, false}, - {`2 > 1`, true}, - - {`1 <= 1`, true}, - {`1 <= 2`, true}, - {`2 <= 1`, false}, - {`"a" <= "a"`, true}, - {`"a" <= "b"`, true}, - {`"b" <= "a"`, false}, - - {`1 >= 1`, true}, - {`1 >= 2`, false}, - {`2 >= 1`, true}, - - {`true and false`, false}, - {`true and true`, true}, - {`true and true and true`, true}, - {`false or false`, false}, - {`false or true`, true}, - - {`"seafood" contains "foo"`, true}, - {`"seafood" contains "bar"`, false}, - {`array contains "first"`, true}, - {`interface_array contains "first"`, true}, - {`"foo" contains "missing"`, false}, - {`nil contains "missing"`, false}, - - // filters - {`"seafood" | length`, 8}, + // {`array[-1]`, "third"}, // undocumented + // {`array[100]`, nil}, + // {`hash[1]`, nil}, + // {`hash.c[0]`, "r"}, + // {`hash.c`, "r, g, b"}, + + // // Expressions + // {`(n)`, 123}, + {`(array)`, "first, second, third"}, + + // // Operators + // {`1 == 1`, true}, + // {`1 == 2`, false}, + // {`1.0 == 1.0`, true}, + // {`1.0 == 2.0`, false}, + // {`1.0 == 1`, true}, + // {`1 == 1.0`, true}, + // {`"a" == "a"`, true}, + // {`"a" == "b"`, false}, + + // {`1 != 1`, false}, + // {`1 != 2`, true}, + // {`1.0 != 1.0`, false}, + // {`1 != 1.0`, false}, + // {`1 != 2.0`, true}, + + // {`1 < 2`, true}, + // {`2 < 1`, false}, + // {`1.0 < 2.0`, true}, + // {`1.0 < 2`, true}, + // {`1 < 2.0`, true}, + // {`1.0 < 2`, true}, + // {`"a" < "a"`, false}, + // {`"a" < "b"`, true}, + // {`"b" < "a"`, false}, + + // {`1 > 2`, false}, + // {`2 > 1`, true}, + + // {`1 <= 1`, true}, + // {`1 <= 2`, true}, + // {`2 <= 1`, false}, + // {`"a" <= "a"`, true}, + // {`"a" <= "b"`, true}, + // {`"b" <= "a"`, false}, + + // {`1 >= 1`, true}, + // {`1 >= 2`, false}, + // {`2 >= 1`, true}, + + // {`true and false`, false}, + // {`true and true`, true}, + // {`true and true and true`, true}, + // {`false or false`, false}, + // {`false or true`, true}, + + // {`"seafood" contains "foo"`, true}, + // {`"seafood" contains "bar"`, false}, + // {`array contains "first"`, true}, + // {`interface_array contains "first"`, true}, + // {`"foo" contains "missing"`, false}, + // {`nil contains "missing"`, false}, + + // // filters + // {`"seafood" | length`, 8}, } var evaluatorTestBindings = (map[string]interface{}{ diff --git a/expressions/y.go b/expressions/y.go index 94d5b614..144978f6 100644 --- a/expressions/y.go +++ b/expressions/y.go @@ -10,6 +10,7 @@ import ( "fmt" "github.com/autopilot3/liquid/values" "math" + "strings" ) func init() { @@ -18,7 +19,7 @@ func init() { _ = fmt.Sprint("") } -//line expressions.y:16 +//line expressions.y:17 type yySymType struct { yys int name string @@ -86,6 +87,7 @@ var yyToknames = [...]string{ "'['", "']'", } + var yyStatenames = [...]string{} const yyEofCode = 1 @@ -110,7 +112,6 @@ const yyPrivate = 57344 const yyLast = 104 var yyAct = [...]int{ - 9, 74, 46, 41, 8, 87, 78, 23, 14, 15, 18, 10, 11, 25, 42, 3, 4, 5, 6, 25, 37, 58, 10, 11, 40, 42, 45, 50, 51, 52, @@ -123,8 +124,8 @@ var yyAct = [...]int{ 85, 86, 83, 19, 34, 2, 1, 73, 20, 39, 17, 22, 67, 63, } -var yyPact = [...]int{ +var yyPact = [...]int{ 7, -1000, 60, 76, 89, 71, 18, -1000, 19, 49, -1000, -1000, 18, -1000, 18, 18, -6, 14, -3, -1000, 10, 38, 1, 39, 83, -1000, 18, 18, 18, 18, @@ -135,29 +136,29 @@ var yyPact = [...]int{ -1000, -1000, -1000, 69, 20, -1000, -1000, -1000, 18, -1000, 88, 86, 6, -1000, -25, -1000, -1000, -1000, } -var yyPgo = [...]int{ +var yyPgo = [...]int{ 0, 0, 71, 4, 94, 1, 103, 102, 101, 2, 100, 99, 3, 98, 97, 10, 96, } -var yyR1 = [...]int{ +var yyR1 = [...]int{ 0, 16, 16, 16, 16, 16, 10, 11, 11, 12, 12, 8, 9, 9, 15, 13, 6, 6, 5, 5, 14, 14, 14, 1, 1, 1, 1, 1, 3, 3, 3, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, } -var yyR2 = [...]int{ +var yyR2 = [...]int{ 0, 2, 5, 3, 3, 3, 2, 3, 1, 0, 3, 2, 0, 3, 1, 4, 5, 1, 1, 1, 0, 2, 3, 1, 1, 2, 4, 3, 1, 3, 4, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, } -var yyChk = [...]int{ +var yyChk = [...]int{ -1000, -16, -4, 8, 9, 10, 11, -2, -3, -1, 4, 5, 29, 25, 17, 18, 5, -10, -15, 4, -13, 5, -8, -1, 22, 7, 31, 12, 13, 24, @@ -168,8 +169,8 @@ var yyChk = [...]int{ 25, -12, -12, -14, -5, 4, 5, -9, 28, 5, 6, 20, -1, 4, -5, 4, 5, 30, } -var yyDef = [...]int{ +var yyDef = [...]int{ 0, -2, 0, 0, 0, 0, 0, 41, 33, 28, 23, 24, 0, 1, 0, 0, 0, 0, 9, 14, 0, 0, 0, 12, 0, 25, 0, 0, 0, 0, @@ -180,8 +181,8 @@ var yyDef = [...]int{ 2, 7, 10, 15, 0, -2, -2, 13, 0, 21, 0, 0, 32, 22, 0, 18, 19, 16, } -var yyTok1 = [...]int{ +var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -196,11 +197,12 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 22, } -var yyTok2 = [...]int{ +var yyTok2 = [...]int{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, } + var yyTok3 = [...]int{ 0, } @@ -544,87 +546,95 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:46 +//line expressions.y:47 { - yylex.(*lexer).val = yyDollar[1].f + yylex.(*lexer).val = func(ctx Context) values.Value { + retVal := yyDollar[1].f(ctx) + switch retVal.(type) { + case values.ArrayValue: + return values.ValueOf(strings.Join(retVal.Interface().([]string), ", ")) + default: + return retVal + } + } } case 2: yyDollar = yyS[yypt-5 : yypt+1] -//line expressions.y:47 +//line expressions.y:58 { yylex.(*lexer).Assignment = Assignment{yyDollar[2].name, &expression{yyDollar[4].f}} } case 3: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:50 +//line expressions.y:61 { yylex.(*lexer).Cycle = yyDollar[2].cycle } case 4: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:51 +//line expressions.y:62 { yylex.(*lexer).Loop = yyDollar[2].loop } case 5: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:52 +//line expressions.y:63 { yylex.(*lexer).When = When{yyDollar[2].exprs} } case 6: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:55 +//line expressions.y:66 { yyVAL.cycle = yyDollar[2].cyclefn(yyDollar[1].s) } case 7: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:58 +//line expressions.y:69 { h, t := yyDollar[2].s, yyDollar[3].ss yyVAL.cyclefn = func(g string) Cycle { return Cycle{g, append([]string{h}, t...)} } } case 8: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:62 +//line expressions.y:73 { vals := yyDollar[1].ss yyVAL.cyclefn = func(h string) Cycle { return Cycle{Values: append([]string{h}, vals...)} } } case 9: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:69 +//line expressions.y:80 { yyVAL.ss = []string{} } case 10: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:70 +//line expressions.y:81 { yyVAL.ss = append([]string{yyDollar[2].s}, yyDollar[3].ss...) } case 11: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:73 +//line expressions.y:84 { yyVAL.exprs = append([]Expression{&expression{yyDollar[1].f}}, yyDollar[2].exprs...) } case 12: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:75 +//line expressions.y:86 { yyVAL.exprs = []Expression{} } case 13: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:76 +//line expressions.y:87 { yyVAL.exprs = append([]Expression{&expression{yyDollar[2].f}}, yyDollar[3].exprs...) } case 14: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:79 +//line expressions.y:90 { s, ok := yyDollar[1].val.(string) if !ok { @@ -634,40 +644,40 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:87 +//line expressions.y:98 { name, expr, mods := yyDollar[1].name, yyDollar[3].f, yyDollar[4].loopmods yyVAL.loop = Loop{name, &expression{expr}, mods} } case 16: yyDollar = yyS[yypt-5 : yypt+1] -//line expressions.y:93 +//line expressions.y:104 { yyVAL.f = makeRangeExpr(yyDollar[2].f, yyDollar[4].f) } case 18: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:101 +//line expressions.y:112 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 19: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:102 +//line expressions.y:113 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 20: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:105 +//line expressions.y:116 { yyVAL.loopmods = loopModifiers{Cols: math.MaxUint32} } case 21: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:106 +//line expressions.y:117 { switch yyDollar[2].name { case "reversed": @@ -679,7 +689,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:115 +//line expressions.y:126 { // TODO can this be a variable? switch yyDollar[2].name { case "cols": @@ -707,63 +717,63 @@ yydefault: } case 23: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:143 +//line expressions.y:154 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 24: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:144 +//line expressions.y:155 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 25: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:145 +//line expressions.y:156 { yyVAL.f = makeObjectPropertyExpr(yyDollar[1].f, yyDollar[2].name) } case 26: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:146 +//line expressions.y:157 { yyVAL.f = makeIndexExpr(yyDollar[1].f, yyDollar[3].f) } case 27: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:147 +//line expressions.y:158 { yyVAL.f = yyDollar[2].f } case 29: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:152 +//line expressions.y:163 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, nil) } case 30: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:153 +//line expressions.y:164 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, yyDollar[4].filter_params) } case 31: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:157 +//line expressions.y:168 { yyVAL.filter_params = []valueFn{yyDollar[1].f} } case 32: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:159 +//line expressions.y:170 { yyVAL.filter_params = append(yyDollar[1].filter_params, yyDollar[3].f) } case 34: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:163 +//line expressions.y:174 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -773,7 +783,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:170 +//line expressions.y:181 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -783,7 +793,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:177 +//line expressions.y:188 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -793,7 +803,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:184 +//line expressions.y:195 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -803,7 +813,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:191 +//line expressions.y:202 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -813,7 +823,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:198 +//line expressions.y:209 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -823,13 +833,13 @@ yydefault: } case 40: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:205 +//line expressions.y:216 { yyVAL.f = makeContainsExpr(yyDollar[1].f, yyDollar[3].f) } case 42: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:210 +//line expressions.y:221 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -838,7 +848,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:216 +//line expressions.y:227 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { diff --git a/values/value.go b/values/value.go index af80c36c..d648cc9e 100644 --- a/values/value.go +++ b/values/value.go @@ -61,7 +61,7 @@ func ValueOf(value interface{}) Value { // nolint: gocyclo case reflect.String: return stringValue{wrapperValue{value}} case reflect.Array, reflect.Slice: - return arrayValue{wrapperValue{value}} + return ArrayValue{wrapperValue{value}} case reflect.Map: return mapValue{wrapperValue{value}} case reflect.Struct: @@ -115,11 +115,11 @@ var zeroValue = wrapperValue{0} var oneValue = wrapperValue{1} // container values -type arrayValue struct{ wrapperValue } +type ArrayValue struct{ wrapperValue } type mapValue struct{ wrapperValue } type stringValue struct{ wrapperValue } -func (av arrayValue) Contains(ev Value) bool { +func (av ArrayValue) Contains(ev Value) bool { ar := reflect.ValueOf(av.value) e := ev.Interface() for i, len := 0, ar.Len(); i < len; i++ { @@ -130,7 +130,7 @@ func (av arrayValue) Contains(ev Value) bool { return false } -func (av arrayValue) IndexValue(iv Value) Value { +func (av ArrayValue) IndexValue(iv Value) Value { ar := reflect.ValueOf(av.value) var n int switch ix := iv.Interface().(type) { @@ -153,7 +153,7 @@ func (av arrayValue) IndexValue(iv Value) Value { return nilValue } -func (av arrayValue) PropertyValue(iv Value) Value { +func (av ArrayValue) PropertyValue(iv Value) Value { ar := reflect.ValueOf(av.value) switch iv.Interface() { case firstKey: From 08b249858c5aa1da0d33f91b48d526fde3f8cf32 Mon Sep 17 00:00:00 2001 From: sfroment Date: Wed, 23 Feb 2022 10:12:04 +0100 Subject: [PATCH 23/96] fix: tu Signed-off-by: sfroment --- render/render_test.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/render/render_test.go b/render/render_test.go index 81226661..9cee41e5 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -21,7 +21,7 @@ var renderTests = []struct{ in, out string }{ {`{{ 12.3 }}`, "12.3"}, {`{{ date }}`, "2015-07-17 15:04:05 +0000"}, {`{{ "string" }}`, "string"}, - {`{{ array }}`, "firstsecondthird"}, + {`{{ array }}`, "first, second, third"}, // variables and properties {`{{ int }}`, "123"}, @@ -57,9 +57,10 @@ var renderErrorTests = []struct{ in, out string }{ } var renderTestBindings = map[string]interface{}{ - "array": []string{"first", "second", "third"}, - "date": time.Date(2015, 7, 17, 15, 4, 5, 123456789, time.UTC), - "int": 123, + "array": []string{"first", "second", "third"}, + "array_bool": []bool{true, false, true}, + "date": time.Date(2015, 7, 17, 15, 4, 5, 123456789, time.UTC), + "int": 123, "sort_prop": []map[string]interface{}{ {"weight": 1}, {"weight": 5}, From 784dcce5c7ce93947107cc024b4e21de03bb2391 Mon Sep 17 00:00:00 2001 From: sfroment Date: Wed, 23 Feb 2022 10:35:30 +0100 Subject: [PATCH 24/96] chore: better than changing yacc Signed-off-by: sfroment --- expressions/expressions.y | 13 +-- expressions/expressions_test.go | 176 ++++++++++++++++---------------- expressions/y.go | 91 ++++++++--------- parser/error.go | 4 +- render/render.go | 56 +++++++++- render/render_test.go | 2 + 6 files changed, 190 insertions(+), 152 deletions(-) diff --git a/expressions/expressions.y b/expressions/expressions.y index feaeb31c..68aa08bf 100644 --- a/expressions/expressions.y +++ b/expressions/expressions.y @@ -3,7 +3,6 @@ package expressions import ( "fmt" "math" - "strings" "github.com/autopilot3/liquid/values" ) @@ -44,17 +43,7 @@ func init() { %left '<' '>' %% start: - cond ';' { - yylex.(*lexer).val = func(ctx Context) values.Value { - retVal := $1(ctx) - switch retVal.(type) { - case values.ArrayValue: - return values.ValueOf(strings.Join(retVal.Interface().([]string), ", ")) - default: - return retVal - } - } -} + cond ';' { yylex.(*lexer).val = $1 } | ASSIGN IDENTIFIER '=' filtered ';' { yylex.(*lexer).Assignment = Assignment{$2, &expression{$4}} } diff --git a/expressions/expressions_test.go b/expressions/expressions_test.go index 0108ae4f..05c1c679 100644 --- a/expressions/expressions_test.go +++ b/expressions/expressions_test.go @@ -14,103 +14,103 @@ var evaluatorTests = []struct { expected interface{} }{ // Literals - // {`12`, 12}, - // {`12.3`, 12.3}, - // {`true`, true}, - // {`false`, false}, - // {`'abc'`, "abc"}, - // {`"abc"`, "abc"}, + {`12`, 12}, + {`12.3`, 12.3}, + {`true`, true}, + {`false`, false}, + {`'abc'`, "abc"}, + {`"abc"`, "abc"}, // Variables - // {`n`, 123}, - {`array`, "first, second, third"}, + {`n`, 123}, + {`array`, []string{"first", "second", "third"}}, {`array.first`, "first"}, - // // Attributes - // {`hash.a`, "first"}, - // {`hash.b.c`, "d"}, - // {`hash.x`, nil}, - // {`fruits.first`, "apples"}, - // {`fruits.last`, "plums"}, - // {`empty_list.first`, nil}, - // {`empty_list.last`, nil}, - // {`"abc".size`, 3}, - // {`fruits.size`, 4}, - // {`hash.size`, 3}, - // {`hash_with_size_key.size`, "key_value"}, - - // // Indices - // {`str_array[0]`, "first"}, + // Attributes + {`hash.a`, "first"}, + {`hash.b.c`, "d"}, + {`hash.x`, nil}, + {`fruits.first`, "apples"}, + {`fruits.last`, "plums"}, + {`empty_list.first`, nil}, + {`empty_list.last`, nil}, + {`"abc".size`, 3}, + {`fruits.size`, 4}, + {`hash.size`, 3}, + {`hash_with_size_key.size`, "key_value"}, + + // Indices {`array[1]`, "second"}, - // {`array[-1]`, "third"}, // undocumented - // {`array[100]`, nil}, - // {`hash[1]`, nil}, - // {`hash.c[0]`, "r"}, - // {`hash.c`, "r, g, b"}, - - // // Expressions - // {`(n)`, 123}, - {`(array)`, "first, second, third"}, - - // // Operators - // {`1 == 1`, true}, - // {`1 == 2`, false}, - // {`1.0 == 1.0`, true}, - // {`1.0 == 2.0`, false}, - // {`1.0 == 1`, true}, - // {`1 == 1.0`, true}, - // {`"a" == "a"`, true}, - // {`"a" == "b"`, false}, - - // {`1 != 1`, false}, - // {`1 != 2`, true}, - // {`1.0 != 1.0`, false}, - // {`1 != 1.0`, false}, - // {`1 != 2.0`, true}, - - // {`1 < 2`, true}, - // {`2 < 1`, false}, - // {`1.0 < 2.0`, true}, - // {`1.0 < 2`, true}, - // {`1 < 2.0`, true}, - // {`1.0 < 2`, true}, - // {`"a" < "a"`, false}, - // {`"a" < "b"`, true}, - // {`"b" < "a"`, false}, - - // {`1 > 2`, false}, - // {`2 > 1`, true}, - - // {`1 <= 1`, true}, - // {`1 <= 2`, true}, - // {`2 <= 1`, false}, - // {`"a" <= "a"`, true}, - // {`"a" <= "b"`, true}, - // {`"b" <= "a"`, false}, - - // {`1 >= 1`, true}, - // {`1 >= 2`, false}, - // {`2 >= 1`, true}, - - // {`true and false`, false}, - // {`true and true`, true}, - // {`true and true and true`, true}, - // {`false or false`, false}, - // {`false or true`, true}, - - // {`"seafood" contains "foo"`, true}, - // {`"seafood" contains "bar"`, false}, - // {`array contains "first"`, true}, - // {`interface_array contains "first"`, true}, - // {`"foo" contains "missing"`, false}, - // {`nil contains "missing"`, false}, - - // // filters - // {`"seafood" | length`, 8}, + {`array[-1]`, "third"}, // undocumented + {`array[100]`, nil}, + {`hash[1]`, nil}, + {`hash.c[0]`, "r"}, + {`hash.c`, []string{"r", "g", "b"}}, + + // Expressions + {`(n)`, 123}, + {`(array)`, []string{"first", "second", "third"}}, + + // Operators + {`1 == 1`, true}, + {`1 == 2`, false}, + {`1.0 == 1.0`, true}, + {`1.0 == 2.0`, false}, + {`1.0 == 1`, true}, + {`1 == 1.0`, true}, + {`"a" == "a"`, true}, + {`"a" == "b"`, false}, + + {`1 != 1`, false}, + {`1 != 2`, true}, + {`1.0 != 1.0`, false}, + {`1 != 1.0`, false}, + {`1 != 2.0`, true}, + + {`1 < 2`, true}, + {`2 < 1`, false}, + {`1.0 < 2.0`, true}, + {`1.0 < 2`, true}, + {`1 < 2.0`, true}, + {`1.0 < 2`, true}, + {`"a" < "a"`, false}, + {`"a" < "b"`, true}, + {`"b" < "a"`, false}, + + {`1 > 2`, false}, + {`2 > 1`, true}, + + {`1 <= 1`, true}, + {`1 <= 2`, true}, + {`2 <= 1`, false}, + {`"a" <= "a"`, true}, + {`"a" <= "b"`, true}, + {`"b" <= "a"`, false}, + + {`1 >= 1`, true}, + {`1 >= 2`, false}, + {`2 >= 1`, true}, + + {`true and false`, false}, + {`true and true`, true}, + {`true and true and true`, true}, + {`false or false`, false}, + {`false or true`, true}, + + {`"seafood" contains "foo"`, true}, + {`"seafood" contains "bar"`, false}, + {`array contains "first"`, true}, + {`interface_array contains "first"`, true}, + {`"foo" contains "missing"`, false}, + {`nil contains "missing"`, false}, + + // filters + {`"seafood" | length`, 8}, } var evaluatorTestBindings = (map[string]interface{}{ "n": 123, + "str_array": "first, second, third", "array": []string{"first", "second", "third"}, "interface_array": []interface{}{"first", "second", "third"}, "empty_list": []interface{}{}, diff --git a/expressions/y.go b/expressions/y.go index 144978f6..531a3320 100644 --- a/expressions/y.go +++ b/expressions/y.go @@ -10,7 +10,6 @@ import ( "fmt" "github.com/autopilot3/liquid/values" "math" - "strings" ) func init() { @@ -19,7 +18,7 @@ func init() { _ = fmt.Sprint("") } -//line expressions.y:17 +//line expressions.y:16 type yySymType struct { yys int name string @@ -546,95 +545,87 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:47 +//line expressions.y:46 { - yylex.(*lexer).val = func(ctx Context) values.Value { - retVal := yyDollar[1].f(ctx) - switch retVal.(type) { - case values.ArrayValue: - return values.ValueOf(strings.Join(retVal.Interface().([]string), ", ")) - default: - return retVal - } - } + yylex.(*lexer).val = yyDollar[1].f } case 2: yyDollar = yyS[yypt-5 : yypt+1] -//line expressions.y:58 +//line expressions.y:47 { yylex.(*lexer).Assignment = Assignment{yyDollar[2].name, &expression{yyDollar[4].f}} } case 3: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:61 +//line expressions.y:50 { yylex.(*lexer).Cycle = yyDollar[2].cycle } case 4: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:62 +//line expressions.y:51 { yylex.(*lexer).Loop = yyDollar[2].loop } case 5: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:63 +//line expressions.y:52 { yylex.(*lexer).When = When{yyDollar[2].exprs} } case 6: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:66 +//line expressions.y:55 { yyVAL.cycle = yyDollar[2].cyclefn(yyDollar[1].s) } case 7: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:69 +//line expressions.y:58 { h, t := yyDollar[2].s, yyDollar[3].ss yyVAL.cyclefn = func(g string) Cycle { return Cycle{g, append([]string{h}, t...)} } } case 8: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:73 +//line expressions.y:62 { vals := yyDollar[1].ss yyVAL.cyclefn = func(h string) Cycle { return Cycle{Values: append([]string{h}, vals...)} } } case 9: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:80 +//line expressions.y:69 { yyVAL.ss = []string{} } case 10: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:81 +//line expressions.y:70 { yyVAL.ss = append([]string{yyDollar[2].s}, yyDollar[3].ss...) } case 11: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:84 +//line expressions.y:73 { yyVAL.exprs = append([]Expression{&expression{yyDollar[1].f}}, yyDollar[2].exprs...) } case 12: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:86 +//line expressions.y:75 { yyVAL.exprs = []Expression{} } case 13: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:87 +//line expressions.y:76 { yyVAL.exprs = append([]Expression{&expression{yyDollar[2].f}}, yyDollar[3].exprs...) } case 14: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:90 +//line expressions.y:79 { s, ok := yyDollar[1].val.(string) if !ok { @@ -644,40 +635,40 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:98 +//line expressions.y:87 { name, expr, mods := yyDollar[1].name, yyDollar[3].f, yyDollar[4].loopmods yyVAL.loop = Loop{name, &expression{expr}, mods} } case 16: yyDollar = yyS[yypt-5 : yypt+1] -//line expressions.y:104 +//line expressions.y:93 { yyVAL.f = makeRangeExpr(yyDollar[2].f, yyDollar[4].f) } case 18: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:112 +//line expressions.y:101 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 19: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:113 +//line expressions.y:102 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 20: yyDollar = yyS[yypt-0 : yypt+1] -//line expressions.y:116 +//line expressions.y:105 { yyVAL.loopmods = loopModifiers{Cols: math.MaxUint32} } case 21: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:117 +//line expressions.y:106 { switch yyDollar[2].name { case "reversed": @@ -689,7 +680,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:126 +//line expressions.y:115 { // TODO can this be a variable? switch yyDollar[2].name { case "cols": @@ -717,63 +708,63 @@ yydefault: } case 23: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:154 +//line expressions.y:143 { val := yyDollar[1].val yyVAL.f = func(Context) values.Value { return values.ValueOf(val) } } case 24: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:155 +//line expressions.y:144 { name := yyDollar[1].name yyVAL.f = func(ctx Context) values.Value { return values.ValueOf(ctx.Get(name)) } } case 25: yyDollar = yyS[yypt-2 : yypt+1] -//line expressions.y:156 +//line expressions.y:145 { yyVAL.f = makeObjectPropertyExpr(yyDollar[1].f, yyDollar[2].name) } case 26: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:157 +//line expressions.y:146 { yyVAL.f = makeIndexExpr(yyDollar[1].f, yyDollar[3].f) } case 27: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:158 +//line expressions.y:147 { yyVAL.f = yyDollar[2].f } case 29: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:163 +//line expressions.y:152 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, nil) } case 30: yyDollar = yyS[yypt-4 : yypt+1] -//line expressions.y:164 +//line expressions.y:153 { yyVAL.f = makeFilter(yyDollar[1].f, yyDollar[3].name, yyDollar[4].filter_params) } case 31: yyDollar = yyS[yypt-1 : yypt+1] -//line expressions.y:168 +//line expressions.y:157 { yyVAL.filter_params = []valueFn{yyDollar[1].f} } case 32: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:170 +//line expressions.y:159 { yyVAL.filter_params = append(yyDollar[1].filter_params, yyDollar[3].f) } case 34: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:174 +//line expressions.y:163 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -783,7 +774,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:181 +//line expressions.y:170 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -793,7 +784,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:188 +//line expressions.y:177 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -803,7 +794,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:195 +//line expressions.y:184 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -813,7 +804,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:202 +//line expressions.y:191 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -823,7 +814,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:209 +//line expressions.y:198 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -833,13 +824,13 @@ yydefault: } case 40: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:216 +//line expressions.y:205 { yyVAL.f = makeContainsExpr(yyDollar[1].f, yyDollar[3].f) } case 42: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:221 +//line expressions.y:210 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { @@ -848,7 +839,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:227 +//line expressions.y:216 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { diff --git a/parser/error.go b/parser/error.go index b50e78ca..ff6e7833 100644 --- a/parser/error.go +++ b/parser/error.go @@ -1,6 +1,8 @@ package parser -import "fmt" +import ( + "fmt" +) // An Error is a syntax error during template parsing. type Error interface { diff --git a/render/render.go b/render/render.go index c2d667c7..92167fcb 100644 --- a/render/render.go +++ b/render/render.go @@ -126,7 +126,7 @@ func writeObject(w io.Writer, value interface{}) error { for i := 0; i < rt.Len(); i++ { item := rt.Index(i) if item.IsValid() { - if err := writeObject(w, item.Interface()); err != nil { + if err := writeArray(w, item.Interface(), i); err != nil { return err } } @@ -139,3 +139,57 @@ func writeObject(w io.Writer, value interface{}) error { return err } } + +func writeArray(w io.Writer, value interface{}, idx int) error { + value = values.ToLiquid(value) + if value == nil { + return nil + } + writeJoin := func() error { + if idx > 0 { + _, err := io.WriteString(w, ", ") + if err != nil { + return err + } + } + return nil + } + + switch value := value.(type) { + case time.Time: + if err := writeJoin(); err != nil { + return err + } + _, err := io.WriteString(w, value.Format("2006-01-02 15:04:05 -0700")) + return err + case []byte: + if err := writeJoin(); err != nil { + return err + } + _, err := w.Write(value) + return err + // there used be a case on fmt.Stringer here, but fmt.Sprint produces better results than obj.Write + // for instances of error and *string + } + rt := reflect.ValueOf(value) + switch rt.Kind() { + case reflect.Array, reflect.Slice: + for i := 0; i < rt.Len(); i++ { + item := rt.Index(i) + if item.IsValid() { + if err := writeArray(w, item.Interface(), i); err != nil { + return err + } + } + } + return nil + case reflect.Ptr: + return writeObject(w, reflect.ValueOf(value).Elem()) + default: + if err := writeJoin(); err != nil { + return err + } + _, err := io.WriteString(w, fmt.Sprint(value)) + return err + } +} diff --git a/render/render_test.go b/render/render_test.go index 9cee41e5..5c7192e1 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -22,11 +22,13 @@ var renderTests = []struct{ in, out string }{ {`{{ date }}`, "2015-07-17 15:04:05 +0000"}, {`{{ "string" }}`, "string"}, {`{{ array }}`, "first, second, third"}, + {`{{ array_bool }}`, "true, false, true"}, // variables and properties {`{{ int }}`, "123"}, {`{{ page.title }}`, "Introduction"}, {`{{ array[1] }}`, "second"}, + {`{{ array_bool[1] }}`, "false"}, // whitespace control {` {{ 1 }} `, " 1 "}, From 0119a7a0a5ade05dd7d690da06ed1a4da83d535f Mon Sep 17 00:00:00 2001 From: sfroment Date: Wed, 23 Feb 2022 10:36:57 +0100 Subject: [PATCH 25/96] chore: update go.mod Signed-off-by: sfroment --- go.mod | 3 ++- go.sum | 21 +++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 7dcef2c3..40f73fc5 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.6.1 - golang.org/x/text v0.3.5 + golang.org/x/text v0.3.7 + golang.org/x/tools v0.1.9 // indirect gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index 60bb435b..6178ebe7 100644 --- a/go.sum +++ b/go.sum @@ -1492,6 +1492,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zmb3/gogetdoc v0.0.0-20190228002656-b37376c5da6a/go.mod h1:ofmGw6LrMypycsiWcyug6516EXpIxSbZ+uI9ppGypfY= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -1587,8 +1588,9 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB 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.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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= @@ -1638,8 +1640,9 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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= @@ -1659,8 +1662,9 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ 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 h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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= @@ -1725,8 +1729,10 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= 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-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1735,8 +1741,10 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= @@ -1839,8 +1847,9 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210115202250-e0d201561e39/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools/gopls v0.3.2/go.mod h1:k7Vveg58twOi4lDvLKpDIC04HGw8JJmRDBtJuSPGuI8= 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= From 2ddb152d42b7d2146028a529393a2c89066c72c5 Mon Sep 17 00:00:00 2001 From: sfroment Date: Wed, 23 Feb 2022 10:37:30 +0100 Subject: [PATCH 26/96] chore: unexport ArrayValue Signed-off-by: sfroment --- values/value.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/values/value.go b/values/value.go index d648cc9e..af80c36c 100644 --- a/values/value.go +++ b/values/value.go @@ -61,7 +61,7 @@ func ValueOf(value interface{}) Value { // nolint: gocyclo case reflect.String: return stringValue{wrapperValue{value}} case reflect.Array, reflect.Slice: - return ArrayValue{wrapperValue{value}} + return arrayValue{wrapperValue{value}} case reflect.Map: return mapValue{wrapperValue{value}} case reflect.Struct: @@ -115,11 +115,11 @@ var zeroValue = wrapperValue{0} var oneValue = wrapperValue{1} // container values -type ArrayValue struct{ wrapperValue } +type arrayValue struct{ wrapperValue } type mapValue struct{ wrapperValue } type stringValue struct{ wrapperValue } -func (av ArrayValue) Contains(ev Value) bool { +func (av arrayValue) Contains(ev Value) bool { ar := reflect.ValueOf(av.value) e := ev.Interface() for i, len := 0, ar.Len(); i < len; i++ { @@ -130,7 +130,7 @@ func (av ArrayValue) Contains(ev Value) bool { return false } -func (av ArrayValue) IndexValue(iv Value) Value { +func (av arrayValue) IndexValue(iv Value) Value { ar := reflect.ValueOf(av.value) var n int switch ix := iv.Interface().(type) { @@ -153,7 +153,7 @@ func (av ArrayValue) IndexValue(iv Value) Value { return nilValue } -func (av ArrayValue) PropertyValue(iv Value) Value { +func (av arrayValue) PropertyValue(iv Value) Value { ar := reflect.ValueOf(av.value) switch iv.Interface() { case firstKey: From 8840b8daf010a120836cd16063ff5b2f38ea69be Mon Sep 17 00:00:00 2001 From: sfroment Date: Wed, 2 Mar 2022 09:34:34 +0100 Subject: [PATCH 27/96] chore: review Signed-off-by: sfroment --- render/render.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/render/render.go b/render/render.go index 92167fcb..b475d398 100644 --- a/render/render.go +++ b/render/render.go @@ -141,6 +141,9 @@ func writeObject(w io.Writer, value interface{}) error { } func writeArray(w io.Writer, value interface{}, idx int) error { + if value == nil { + return nil + } value = values.ToLiquid(value) if value == nil { return nil From cfb63fb15cd7bf3db41d194ec5de83b05031631c Mon Sep 17 00:00:00 2001 From: Melvin Moustaid Date: Fri, 11 Mar 2022 11:31:58 +1100 Subject: [PATCH 28/96] remove unused var --- engine.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/engine.go b/engine.go index 22137aad..8be8b6d3 100644 --- a/engine.go +++ b/engine.go @@ -162,7 +162,6 @@ func NewEngine() *Engine { // a set [a,b,c] contains at least one of matches, [a,d] will return true in this case engine.RegisterFilter("setContains", func(s string, matches ...string) bool { - var contains bool splits := strings.Split(s, ",") for _, match := range matches { for _, s := range splits { @@ -171,7 +170,7 @@ func NewEngine() *Engine { } } } - return contains + return false }) // a set [a,b,c] contains all matches, [a,d] will return false in this case, [a,c] will return true From 262af88bbdcd56eff1e5ad39aff6e693522042eb Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 4 Apr 2022 14:22:58 +1000 Subject: [PATCH 29/96] now we have proper array types in liquid so we need to adapt to it --- engine.go | 76 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 17 deletions(-) diff --git a/engine.go b/engine.go index 8be8b6d3..74832239 100644 --- a/engine.go +++ b/engine.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "reflect" "strconv" "strings" "time" @@ -161,34 +162,75 @@ func NewEngine() *Engine { }) // a set [a,b,c] contains at least one of matches, [a,d] will return true in this case - engine.RegisterFilter("setContains", func(s string, matches ...string) bool { - splits := strings.Split(s, ",") - for _, match := range matches { - for _, s := range splits { - if s == match { - return true + engine.RegisterFilter("setContains", func(s interface{}, matches ...interface{}) bool { + if s == nil { + return false + } + switch k := reflect.TypeOf(s).Kind(); k { + case reflect.String: + str := s.(string) + splits := strings.Split(str, ",") + for _, match := range matches { + for _, s := range splits { + if s == match { + return true + } + } + } + return false + case reflect.Slice: + slice := s.([]interface{}) + for _, match := range matches { + for _, s := range slice { + if reflect.DeepEqual(s, match) { + return true + } } } + return false } return false }) // a set [a,b,c] contains all matches, [a,d] will return false in this case, [a,c] will return true - engine.RegisterFilter("setContainsAll", func(s string, matches ...string) bool { - splits := strings.Split(s, ",") - for _, match := range matches { - containMatch := false - for _, s := range splits { - if s == match { - containMatch = true - break + engine.RegisterFilter("setContainsAll", func(s interface{}, matches ...interface{}) bool { + if s == nil { + return false + } + switch k := reflect.TypeOf(s).Kind(); k { + case reflect.String: + str := s.(string) + splits := strings.Split(str, ",") + for _, match := range matches { + containMatch := false + for _, s := range splits { + if s == match { + containMatch = true + break + } + } + if !containMatch { + return false } } - if !containMatch { - return false + return true + case reflect.Slice: + slice := s.([]interface{}) + for _, match := range matches { + containMatch := false + for _, s := range slice { + if reflect.DeepEqual(s, match) { + containMatch = true + break + } + } + if !containMatch { + return false + } } + return true } - return true + return false }) return engine } From a6768ed0b9ee31c6e13c195d46037876ba526dcf Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 6 Apr 2022 10:05:55 +1000 Subject: [PATCH 30/96] add raw phone filter --- engine.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/engine.go b/engine.go index 74832239..2acc0d4b 100644 --- a/engine.go +++ b/engine.go @@ -11,6 +11,7 @@ import ( "github.com/autopilot3/ap3-helpers-go/logger" "github.com/autopilot3/ap3-types-go/types/date" + "github.com/autopilot3/ap3-types-go/types/phone" "github.com/autopilot3/liquid/filters" "github.com/autopilot3/liquid/render" "github.com/autopilot3/liquid/tags" @@ -29,15 +30,17 @@ func NewEngine() *Engine { engine := &Engine{render.NewConfig()} filters.AddStandardFilters(&engine.cfg) tags.AddStandardTags(engine.cfg) - engine.RegisterFilter("hideCountryCodeAndDefault", func(s string, hide bool, defaultValue string) string { - if s == "" { + engine.RegisterFilter("hideCountryCodeAndDefault", func(s phone.International, hide bool, defaultValue string) string { + if s.Number.IsZero() && s.CountryCode.IsZero() { return defaultValue } - splits := strings.Split(s, " ") - if len(splits) == 2 && hide { - return splits[1] + if hide { + return s.Number.String() } - return s + return s.String() + }) + engine.RegisterFilter("rawPhone", func(s phone.International) string { + return s.CountryCode.String() + s.Number.String() }) engine.RegisterFilter("dateTimeFormatOrDefault", func(s time.Time, format string, defaultValue string) string { From 5246c8f378996615ed39b5e43fe6a0a59f0cc83a Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Mon, 8 Aug 2022 09:38:30 +1000 Subject: [PATCH 31/96] Fix capitalise for non Latin characters, optimize slice --- filters/standard_filters.go | 22 +++++++++++++++++----- filters/standard_filters_test.go | 2 ++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 4cdafc0d..35f75d77 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -12,7 +12,6 @@ import ( "strings" "time" "unicode" - "unicode/utf8" "github.com/autopilot3/liquid/values" "github.com/osteele/tuesday" @@ -114,7 +113,9 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo if len(s) == 0 { return s } - return strings.ToUpper(s[:1]) + s[1:] + runes := []rune(s) + runes[0] = unicode.ToUpper(runes[0]) + return string(runes) }) fd.AddFilter("downcase", func(s, suffix string) string { return strings.ToLower(s) @@ -145,12 +146,23 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("slice", func(s string, start int, length func(int) int) string { // runes aren't bytes; don't use slice n := length(1) + runes := []rune(s) if start < 0 { - start = utf8.RuneCountInString(s) + start + start = len(runes) + start } - p := regexp.MustCompile(fmt.Sprintf(`^.{%d}(.{0,%d}).*$`, start, n)) - return p.ReplaceAllString(s, "$1") + if start < 0 { + return s + } + if start >= len(runes) { + return "" + } + end := start + n + if end > len(runes) { + end = len(runes) + } + return string(runes[start:end]) }) + fd.AddFilter("split", splitFilter) fd.AddFilter("strip_html", func(s string) string { // TODO this probably isn't sufficient diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index e8f67272..87486d47 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -85,6 +85,7 @@ var filterTests = []struct { {`"/my/fancy/url" | append: ".html"`, "/my/fancy/url.html"}, {`"website.com" | append: "/index.html"`, "website.com/index.html"}, {`"title" | capitalize`, "Title"}, + {`"Élio Silva" | capitalize`, "Élio Silva"}, {`"my great title" | capitalize`, "My great title"}, {`"" | capitalize`, ""}, {`"Parker Moore" | downcase`, "parker moore"}, @@ -100,6 +101,7 @@ var filterTests = []struct { {`"Liquid" | slice: 2`, "q"}, {`"Liquid" | slice: 2, 5`, "quid"}, {`"Liquid" | slice: -3, 2`, "ui"}, + {`"Привет" | slice: -3, 2`, "ве"}, {`"a/b/c" | split: '/' | join: '-'`, "a-b-c"}, {`"a/b/" | split: '/' | join: '-'`, "a-b"}, From af26c4ae860c162cae2af708809b2f60507977d7 Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Thu, 18 Aug 2022 16:36:22 +1000 Subject: [PATCH 32/96] Update go mod --- go.mod | 66 ++- go.sum | 1680 +++++--------------------------------------------------- 2 files changed, 211 insertions(+), 1535 deletions(-) diff --git a/go.mod b/go.mod index 40f73fc5..67321d14 100644 --- a/go.mod +++ b/go.mod @@ -1,14 +1,68 @@ module github.com/autopilot3/liquid -go 1.14 +go 1.18 require ( - github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a - github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb - github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 + github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e + github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c + github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.6.1 + github.com/stretchr/testify v1.7.1 golang.org/x/text v0.3.7 - golang.org/x/tools v0.1.9 // indirect gopkg.in/yaml.v2 v2.4.0 ) + +require ( + github.com/alexsergivan/transliterator v1.0.0 // indirect + github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d // indirect + github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549 // indirect + github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4 // indirect + github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724 // indirect + github.com/aws/aws-sdk-go v1.44.73 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/gocql/gocql v1.1.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/klauspost/compress v1.15.9 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/minio/highwayhash v1.0.2 // indirect + github.com/montanaflynn/stats v0.6.6 // indirect + github.com/nats-io/nats.go v1.16.0 // indirect + github.com/nats-io/nkeys v0.3.0 // indirect + github.com/nats-io/nuid v1.0.1 // indirect + github.com/nyaruka/phonenumbers v1.1.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.12.2 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.34.0 // indirect + github.com/prometheus/procfs v0.7.3 // indirect + github.com/recurly/recurly-client-go/v3 v3.14.0 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/xdg-go/pbkdf2 v1.0.0 // indirect + github.com/xdg-go/scram v1.1.1 // indirect + github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect + go.mongodb.org/mongo-driver v1.10.1 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.8.0 // indirect + go.uber.org/zap v1.22.0 // indirect + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect + google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa // indirect + google.golang.org/grpc v1.47.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum index 6178ebe7..22ce1e44 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,5 @@ -9fans.net/go v0.0.0-20181112161441-237454027057/go.mod h1:diCsxrliIURU9xsYtjCp5AbpQKqdhKmf0ujWDUSkfoY= -9fans.net/go v0.0.2/go.mod h1:lfPdxjq9v8pVQXUMBCx5EO5oLXWQFlKRQgs1kEkjoIM= 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.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= 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= @@ -12,14 +9,10 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T 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.55.0/go.mod h1:ZHmoY+/lIMNkN2+fBmuTiqZ4inFhvQad8ft7MT8IV5Y= 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 v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.76.0/go.mod h1:r9EvIAvLrunusnetGdQ50M/gKui1x3zdGW/VELGkdpw= 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= @@ -28,7 +21,6 @@ cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4g 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/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= 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= @@ -39,35 +31,9 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl 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= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/360EntSecGroup-Skylar/excelize/v2 v2.3.1-0.20200906113200-01afc6e03f1d/go.mod h1:h7k4Sv9IrlPKj4z2hxxON5dioHrKqzMhqREeMdRauEA= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/Bowery/prompt v0.0.0-20190419144237-972d0ceb96f5/go.mod h1:4/6eNcqZ09BZ9wLK3tZOjBA1nDj+B0728nlX5YRlSmQ= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= 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/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/Djarvur/go-err113 v0.0.0-20200511133814-5174e21577d5/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/EdlinOrg/prominentcolor v1.0.0/go.mod h1:mYmDsxfcmBz6izH/SqtSzfsUiZdPNPpPgUPKCZq70KQ= -github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4= github.com/HdrHistogram/hdrhistogram-go v1.0.0 h1:jivTvI9tBw5B8wW9Qd0uoQ2qaajb29y4TPhYTgh8Lb0= -github.com/HdrHistogram/hdrhistogram-go v1.0.0/go.mod h1:YzE1EgsuAz8q9lfGdlxBZo2Ma655+PfKp2mlzcAqIFw= -github.com/Joker/hpp v0.0.0-20180418125244-6893e659854a/go.mod h1:MzD2WMdSxvbHw5fM/OXOFily/lipJWRc9C1px0Mt0ZE= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= -github.com/Joker/jade v1.0.0/go.mod h1:efZIdO0py/LtcJRSa/j2WEklMSAw84WV0zZVMxNToB8= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= -github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= 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= @@ -75,877 +41,76 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= -github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= -github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= -github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0= -github.com/antchfx/xmlquery v1.2.4/go.mod h1:KQQuESaxSlqugE2ZBcM/qn+ebIpt+d+4Xx7YcSGAIrM= -github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= -github.com/antchfx/xpath v1.1.8/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/autopilot3/ap2-assets-api-go v0.0.0-20200721015808-caa4b2c52701/go.mod h1:uMsnyr85TkjIvEi9TQcseorZx1bY4MOVmxDVG6PnrV0= -github.com/autopilot3/ap2-settings-api-go v0.0.0-20210127000609-43329f35fb0e/go.mod h1:tmBNi6Ob7HfTiPe2EVdygp1jtRx6WhXcEAMlBcxGF00= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200702065812-b3e6262f70ef/go.mod h1:XuY9jWBiEyaG0JXK5aRQZctnvJL/b0uZNmoIb0z1sLg= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200713002800-e0727d1a89fa/go.mod h1:WLpjr58ItrCZK1odT5S+eAs4yoenqypP8v5n2IjDMZQ= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200724051446-a8dc3fcd4f2b/go.mod h1:Jb/ATgbKCTFg++0GG/XdJcw6bWq5R1Rwkugl9h9niwI= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200728035643-5c454a0ee114/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200729021629-a859e5ecd2a7/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200803032816-cd637da94ae4/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200804001547-5b2840072b1d/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200804071625-1df8bdea6bd3/go.mod h1:XpBDQdsOS+gklDINO0tcR/Y1qZPNdJB/tamGB7bTh5s= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200808001805-be66ab253e5c/go.mod h1:L7Ko5/2Y5TwoURbvpTXG+5MG0fqcxcrn+xEXY8qcpds= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200814021708-e6228a2658e4/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200820062241-aaddaca219a3/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200826052821-d15f04f3724b/go.mod h1:nq/wRZAARIXWmnP1kzN/8zrCDoMZKPGi+kLtIu3afc0= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200827132527-f253b0dc3466/go.mod h1:CpQD1FDKoyHgufAhBTxi2O/M1OYWaeqlBcifwMB2L2g= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200828000746-5d121a46fa6f/go.mod h1:CpQD1FDKoyHgufAhBTxi2O/M1OYWaeqlBcifwMB2L2g= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200901060912-8b6c68b9d037/go.mod h1:IfP5n2rg31CLEw0JlNPtRSFh1H33DZTPSpGnlPlickY= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200902043525-59b4d85e5549/go.mod h1:ZQ7gUM3CfYQbgpHw9gXRlrFqGrqCDD2i5BzbxlbrT3Q= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200918044112-10dcac654391/go.mod h1:LvroAAAHUNzpt6aUC7ZKddr1w5qq4RsPnXXftA5PfGA= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20200921062115-7e1c6d29c511/go.mod h1:LvroAAAHUNzpt6aUC7ZKddr1w5qq4RsPnXXftA5PfGA= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201007012502-4845df25051c/go.mod h1:roomzZUmbV7gDDsfnUZlO262CoUBDwoZ0i59w9weCA4= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008025405-c2046467e78a/go.mod h1:2nJz3ICJf3Gv12sq2WqDuYnpPx2O/ZbZgo0b5a+YiTg= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008034645-0605942bda40/go.mod h1:VI1nOV7wgWOJRiCX5EZ+0MzJLQvi3QnDWn/U1RfCaCc= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201008043111-a247f708d75a/go.mod h1:KtLYAXF0xeYBG5lSTPVLxYmAGwtPO5oq8avoax8PBhY= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201014010657-5c17ad81df9c/go.mod h1:yFVtbRApexOmLK3H74A3S+8z5vaHDBQA3fYcxPoiF+E= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201014054432-e03b94b8922e/go.mod h1:yFVtbRApexOmLK3H74A3S+8z5vaHDBQA3fYcxPoiF+E= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201029004904-76a5c19ad0b2/go.mod h1:k5pvdVRUvl4ajAC1IJokW/s8EWcApN0c+WS3sRYD6Ic= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201101221841-9efeaa8b8752/go.mod h1:7kopEd2wSBUXocuubdPgGGFKRLYgQ/Q72pv9Y8MbYKI= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201103002541-57cbe744b31a/go.mod h1:ZEXlQKnq22uxFPgCXkysj8MRoWAIzVo8NvzjTeHyHS4= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201108234433-79b9bb142e30/go.mod h1:ZWP1TciBxSlevcFKwrzwSTSftq2VO+J35qVh1h0TDvw= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201109043313-7a36822c7f23/go.mod h1:02bAUKuMUKZ5LW4buM+Hzc5eBvm7UfcwSJuA8EquwpM= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201111054044-342fe9c64b9e/go.mod h1:pjRhj2tafBYBekmYcA88JAzw/tAZ5oTD5IR2OPTqAk8= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201112233731-82b6734a5f42/go.mod h1:gy5miYXomM6U5U2q049UmF//NN7rZIemCBQRVsiJ+bE= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201116033953-57cdad7ad590/go.mod h1:gy5miYXomM6U5U2q049UmF//NN7rZIemCBQRVsiJ+bE= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201119033719-ba06bfd694d5/go.mod h1:+8/fI5EpAB2c1GlK0QCdKtyb37GLeQzyws+jWCybiPw= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201123073049-2120cfc90d52/go.mod h1:HvSvSnc1osafHWKAd5XHtksKfnnY2wM/g07xZ7zfxAo= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201202051407-48e2633573dc/go.mod h1:FLUmb+6VnukZTvCiOGd4lEoK/in3zjpjQkZmfiXNyLw= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201214044514-17b6120a5ab9/go.mod h1:lno+4biUpK/XzW9AUDX1nwJlgizG7aZFBHQvzouzGJo= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20201217003047-44f57d88ff74/go.mod h1:lno+4biUpK/XzW9AUDX1nwJlgizG7aZFBHQvzouzGJo= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210104225919-7cfbfd109c38/go.mod h1:uAeQDzqXBbX5W5driZhTfQHUFem4uOrhCziYRAmaISs= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210112215651-6782fa0716c3/go.mod h1:USrU6CuEx09kKJgd1XOZOSf2+woqHWo3K13hwZEPgxQ= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210112225404-50d3294b3935/go.mod h1:USrU6CuEx09kKJgd1XOZOSf2+woqHWo3K13hwZEPgxQ= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210114004043-b680797c83b2/go.mod h1:Airb1ugyw2ziK9CECdKwXEHmKYOsn0jxYZkk38rveqU= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210212070638-9fc199c6b221/go.mod h1:JmeKrcfTU6xkKsqkZiWwWIprk9bH1CtQU+vkHeREhhM= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210212071350-1a8c6faf7e0a/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210214225307-32b3ee205569/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210215020802-7b0bd97d8e12/go.mod h1:7nk98BBAHXcTLqrkIiIL0fNllo8kO4VJdh2lb6gmQoA= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210216061041-1aeda85646d4/go.mod h1:PtmkPV7EKo14p46wpRTVJFNbDuBW0dUVYSINRFc280g= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210218022915-7291668600d2/go.mod h1:l31y3VXlSKeD+DZ05VUfl1sic7sDfH0BeDzf1IrNV7U= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210225033319-21b0854d8bc2/go.mod h1:u22oDl6rqXb6HYYqFpQGDA+3qs7fMp3UNUYRVK8LD2w= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210301062052-963a0e279b5e/go.mod h1:kjSJgfQVSO1Pjkt55F2+fhAAjKD2E4TG2VkPaOuQXWE= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210303000227-fb1f7dd80eed/go.mod h1:Y2N3PNNk5sj66TUMkfgRouRVJ3Pvt7r3dwFTnFQRHV8= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210303044420-94d5a0867410/go.mod h1:TYfQ6wHnO1DVVIVe+mFDL9i2IoqWXtC5289/lI5S730= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210305025258-0e2462f01b10/go.mod h1:+DX8MGFhhg2BosiKTR9G4E6r0CznWzPUYwuX2x/sXEs= -github.com/autopilot3/ap3-accounts-api-go v0.0.0-20210308021144-e25af292d8a4/go.mod h1:iAsp7JznRSrADqhfWThGn1vaEyydG6zvw+HHxCNjP70= -github.com/autopilot3/ap3-api-gateway-go v0.0.0-20210127024942-46b79f1c364c/go.mod h1:16PTdjq/a3UNKYxohsrntUdSSqUKWn0p5ogqBqDd21A= -github.com/autopilot3/ap3-api-gateway-go v0.0.0-20210224232233-ecb8670c82a2/go.mod h1:RLCYgF1rIREtbxKQ4AhNBIS9Ruy+t7NshYlIwTjXBJU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200729053106-d1bf13977e2b/go.mod h1:1cP3tqSuAOI7bXzl0138iz3CtwbFHuf3R6qno203PEU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730041621-526893f2adcf/go.mod h1:1cP3tqSuAOI7bXzl0138iz3CtwbFHuf3R6qno203PEU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730070255-9609a8a88aa2/go.mod h1:YCUbwwsc2GIwbc1m/dGEqlgJ0r/dreRineklZxntu7Y= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200730231513-9a3761a473a5/go.mod h1:GHvPHhBpv2xFRFfVgmr1JiunbeMbsuU9S0ZRkBFT4cU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200805052805-f0f1a77bca23/go.mod h1:AF3rvbQH6Xp3lsEBiQE9KW55Gk43eukmh7sI+KWDegU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200806043404-a1f79b6f7f00/go.mod h1:N/yNJ3RKUI2Q3cfLusqfZO0/gn5r/7qcEXDGYIu/kNA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200810234947-75c0a6b97c03/go.mod h1:vrv8XxWs7mKM+DWYCGdnb4+GVrLfLszk+6BIOKN+HUk= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200814000328-6d795154ef03/go.mod h1:X3MkCqlWuNcMW7WNY/AUpitjF9gL8dyuA++9+auZ7ow= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200819013233-a9859195996c/go.mod h1:kZnZOhpDCA6FzgGPuH2d8iQsLNNI8oZoCnGBXFagJl0= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200827225405-7db0bd9603d9/go.mod h1:wEA7U9sr/8DgHLRJIfAVosKm5mOYLmMjQSh5O2Z1i34= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200828035255-34dbfc371c7b/go.mod h1:nnZwF+xwxtYYPrKYTiOYta4g/NJBzMmAUBX+9tuIu4g= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20200917040214-60c00d8309f9/go.mod h1:cLBJWviXJpoSFJqUHjf9shRMHqdhqGU33CuHpB+MopU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201001020102-1db9d7eb0b32/go.mod h1:sNBnqQ3y0VkDFiaxAFbV/q64zg2AH3PyCLuGHU37rlg= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201001035744-be09b6426fe6/go.mod h1:4csEQkVq+ivBUu+8MbXkY1LmfopeTDB/A3lbiuDg4s0= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201008034247-a86f081c2745/go.mod h1:wKMNVrjDy2XDIVurSuPxvFgz5su9US1y/HFm7Y8avzA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201014042612-8a0ad46cc2ea/go.mod h1:SQkyqSeOCNlu6nTB7Zl/15JI20qZAwcHVvqEvyLvmEc= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201026045207-a750bf828385/go.mod h1:DvfzwvyR0dN3qC34w6bdGvixllOKWRBVzFbLXoCSac0= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201102002246-3c3653d8f3bb/go.mod h1:icp7RltRVO7ol7L34m0M+cc03AuBV8rQHI2zmVzNFjE= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201106032118-46be2ff39e75/go.mod h1:EBzNiWhLc2nnmeROjG1dmuqSClj7MkcYiAI8tAC/ujw= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201110050333-0325bcde0f27/go.mod h1:9hdQFIcTBaXHR/DzqVqYE7flXGMQgOKGnl0jsqkygQQ= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201111024922-2d565624388b/go.mod h1:JkRqpwipM2JgsbFLiWyvpZww7b7W0VadLPlsDK/wuUY= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201118001707-ed0114bc9914/go.mod h1:UoHztMXBCSJWJ/RDkL4FK3gS7YF/sbFUSaRV+xISPaw= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201207051113-e01f5b91bdef/go.mod h1:fZV5kbN96zpk6eb2KAaFW1Ic2StRsR/do9peCisWtZE= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20201216033843-572d588ef2c6/go.mod h1:lLd7I+vew5Y0MqOz1CrDN0NtMnvtuoFkGlOIxe9Azj4= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210104012342-9500032fb202/go.mod h1:p1lo+ObWbSrdlRw2rF3GG1cBw37ziiVzHW+axwCNv3Q= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108000939-2f067fb95b10/go.mod h1:QUWr6Q1ZKbvnhF1yTZXB0DGzj/yK9J/jUVaVKOAxNzA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108021210-0bf5e0f8aaf0/go.mod h1:5pApLd5QtxQuiyghF5wJQUQd31+4PDJLnq6Tr+Cu0+w= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210108040823-c89f53935ba2/go.mod h1:yXprDI42bO2ffFubh7BNgihHS8HJc+kuGsckGq9j/BE= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210111065209-2fa78e5b8922/go.mod h1:yXprDI42bO2ffFubh7BNgihHS8HJc+kuGsckGq9j/BE= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210114063506-ea1cb59dcd44/go.mod h1:vuZE5kPYAEfv5dv5kCM1bu63fctedgWTKaUlgEPApf4= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210203030650-72880b5d9184/go.mod h1:D3GPAbFPECRvIbyXfvWXstikJTE97x5Gnh3IyMdugGU= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210208042923-66e5c4c95f68/go.mod h1:3S6xv0Ekt3xj/MpRF8qH9FrI9GelQXLqsMANAgMbmM8= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210209000814-920bd63ee131/go.mod h1:PrfHCD/YZwdAwMO06oX8G4SY7rgPTStsg/PSxb8f3KA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210209061202-a8535579d882/go.mod h1:aZ4SGAcZdviLC4xsTg2IWCg7cX64T9/XwMJo7PeB2VA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210216053014-f3c636de3148/go.mod h1:tb19g7pGzmR/PVpNempBJhMPvUlKOhcVLp+5ADvPwz4= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210218004137-da171764d847/go.mod h1:vFYniwoD1OxTZ2rBtN5qeZMmwwMS1orRdV3PbPwKISA= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210219071418-18ac9a9b9f10/go.mod h1:Z6j6ZOaIWbzpnkKQYELJ0pzY0iCjMIAky7HZufrdtFQ= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210225032134-19314b50f365/go.mod h1:gkCLZJ1FmacGGNP2lNE2rHwpMKcuYi2Nh73ckaCy0DY= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210303043209-5d0e8653c3c6/go.mod h1:7nAJkr0GSNsSVXIlPlBMaVlvxrbExdcIiWKCBLuXPuw= -github.com/autopilot3/ap3-assets-api-go v0.0.0-20210310005916-41daf2dd1383/go.mod h1:PFluM2Jq6pM+htEaEIMJcPj+h+hnPxyZWRZtQ53ve4Q= -github.com/autopilot3/ap3-auth-go v0.0.0-20200420230449-2e339c3c0903/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= -github.com/autopilot3/ap3-auth-go v0.0.0-20200506053855-218faa787062/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= -github.com/autopilot3/ap3-auth-go v0.0.0-20200520043610-146fa102c880/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= -github.com/autopilot3/ap3-auth-go v0.0.0-20200624224227-fbceb4e47849/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= -github.com/autopilot3/ap3-auth-go v0.0.0-20200703011055-c40021eee280/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= -github.com/autopilot3/ap3-auth-go v1.0.1/go.mod h1:1vPNXTyi6kY33NMtNUMuSuo9xifTWPaHNRf4/qGwvcI= -github.com/autopilot3/ap3-auth-go v1.0.2-0.20200703011055-c40021eee280/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= -github.com/autopilot3/ap3-auth-go v1.0.2-0.20200902023453-e10bfc5836c9/go.mod h1:RbGZFp9kCF0LMdQ62nYHrpjxfPY2j00tQl5gf89vUv0= -github.com/autopilot3/ap3-auth-go v1.0.4/go.mod h1:PmqzCTy5Jb2sAUB7JGAsK3verzznsrObiS9/vKQkv+U= -github.com/autopilot3/ap3-auth-go v1.0.5-0.20200930054527-6698882c06d0/go.mod h1:PmqzCTy5Jb2sAUB7JGAsK3verzznsrObiS9/vKQkv+U= -github.com/autopilot3/ap3-auth-go v1.0.5-0.20201001062458-cc8593590841/go.mod h1:R9nWeria3WEnj096Jf6WBYeDBKfpR4edrNOkZn4/diI= -github.com/autopilot3/ap3-auth-go v1.0.5-0.20201008022811-7c1fbbd938d8/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= -github.com/autopilot3/ap3-auth-go v1.0.5-0.20201008041151-94a223d6b7a4/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= -github.com/autopilot3/ap3-auth-go v1.0.5/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= -github.com/autopilot3/ap3-auth-go v1.0.6/go.mod h1:7uAHkyun9aEXE3LSO8CjKrvgx8wXeto8foQu5furwzU= -github.com/autopilot3/ap3-auth-go v1.0.9/go.mod h1:Rje54u0DSiCEh0+4H7rvePVjuxr5EH1UYMkDXR8CsdY= -github.com/autopilot3/ap3-auth-go v1.0.10/go.mod h1:rY/o3UBxVFeHM3p/DlZ4syZ6KtyfsH4DUiV+cwf8myI= -github.com/autopilot3/ap3-auth-go v1.0.11-0.20201201022431-94a6bec24f7c/go.mod h1:XCgIeFdBOEERatbbOivYX5pnCvS7wmNdBxRRX6bzYd8= -github.com/autopilot3/ap3-auth-go v1.0.12/go.mod h1:XCgIeFdBOEERatbbOivYX5pnCvS7wmNdBxRRX6bzYd8= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20210203035350-a60b2dca5456/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20210209005648-7fea83d52d98/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20210215055618-68562a315640 h1:n/fuqRnn+l3G98NaG6JvW64UQgDeyI8csLT78/t4sbQ= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20210215055618-68562a315640/go.mod h1:CgmVEtMve/x3XSRTzzzeWmdF/LvnxuwPrQA4PaEvGb8= -github.com/autopilot3/ap3-axolotl-client-go v0.0.0-20190808043249-86366937d955/go.mod h1:GBAc8kOI87Xi9e+g5fBeWoqRST+s1oq18T5L+FXte6s= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702065514-c37270ffbc60/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702080435-5c7b2f2c392e/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200702081059-8f4a3452ac45/go.mod h1:2ndC6Kh7MrHpei+CZM3XdEHiSL08oul5ngOzB5mIRTY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200707231940-4b2bbae0e8e6/go.mod h1:3yZ8Ugs3IfAfor4Er4UC4TjIw52XdQjmlUz55YKVMMY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200722045614-d4b33f053491/go.mod h1:pLq61u/DBfxkSvMPScjqyTgUzD4fHru5t6atltus2Nw= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200728035104-7353510d8463/go.mod h1:alR2LmHn18BYNx4JeLQSfwtB0T9tv9o1559qN0o/lxQ= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200804004903-80b1cb91e22e/go.mod h1:alR2LmHn18BYNx4JeLQSfwtB0T9tv9o1559qN0o/lxQ= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200806042734-444daa98031e/go.mod h1:LfZ1Ut3RcI1GqKH98FhCHkHxQrPanMLAVwLD2F/FAtU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200812042643-cbace04db8e7/go.mod h1:LfZ1Ut3RcI1GqKH98FhCHkHxQrPanMLAVwLD2F/FAtU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200827070945-3e2a559b0b15/go.mod h1:YxbRkrFF963lH/Cd8LBn3cbXpkHTt6HnbgsaEnpCaVM= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200902042307-94ff1def08ae/go.mod h1:CzjfdfGJYP3tC+fYwrcirPi38EyU3GeS5AstjOYwF7U= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200902222454-7e21921675cc/go.mod h1:CzjfdfGJYP3tC+fYwrcirPi38EyU3GeS5AstjOYwF7U= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200908055735-6cc83ed66bd8/go.mod h1:V9efPaGcNPK0CZvrkZVTfrexqoh4t9BmhBuQOBMH/pI= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200914064231-96d55f0e9038/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200915073442-7bc3eea72a63/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200916065756-3845af9e4554/go.mod h1:5E3lNZw7wx260Q8GDPWxkg0Bu2PUwyadh2W4gp5ozTU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200928050427-1be45a0327e2/go.mod h1:qGtbaNMNta7XKPUESKf8j85afRNJnLO6i+oWUTH/l5w= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20200930045935-0d7bc68f6bed/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201001080214-c0dd85a3b227/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201009031727-b0d189e7437d/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201013022225-fb8465f0a22d/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201013220827-7742c5451528/go.mod h1:uHORUApeoJIhxNGbYExkR9KnRA8Nx+FiXUInxlSKDVg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201014001339-afc031a1d6b1/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201027221727-665a9b37eb85/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201029004708-3fb6bf861d4d/go.mod h1:gYCf47Iql+VavLBaw4HCmGsDyTs39w11jXTz60y7Oig= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201102050123-e5904576ccd3/go.mod h1:qlTixrpHD9wsvGQBvfMuv07uAJR4sljfKUAcAMkubdY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201108222017-074612a50ccc/go.mod h1:DGBMkG9xAGiTc+ZPtgZJnZrg/URyxxLex/mZZ9n/Cnk= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201109045744-509235f9b9b7/go.mod h1:69uoVH4AZ7gG9+uRdylm7B+GpTFcJ6As2f6g3h3JQm4= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201111025000-0109c912c7cb/go.mod h1:grnEgLaU5WonZt6MEHfOzega34CkJuJKjmjpMnnPIXA= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201111063213-dbd42a64cb15/go.mod h1:grnEgLaU5WonZt6MEHfOzega34CkJuJKjmjpMnnPIXA= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201117050551-3bbcb4051a63/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201119234418-503372431a3d/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201201031526-64e974235761/go.mod h1:8EZAQn6Ksj2CkhvFRLAm5Cbb3FgI7Z4yKz1sfBWzjpY= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201202224906-4cbf763cd524/go.mod h1:aXUx9jZRHDmOn1WW64vnZnOmJ3Zm8h01jPScVCSSugI= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20201214044606-2c7ef47b5c58/go.mod h1:nCyynCH08x7Ey/SIhIVCgEdppN92y3E5VQ4O/w0Hsk0= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210111063436-ed15c51a603e/go.mod h1:fSGA8WUSXGvHrj6mnUT/3FTzih2lAenWI/Dzz1sKe5s= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210121003536-46a010d166d6/go.mod h1:j+LQHjXExWAZ+hzN0NQm070Wi1KjmVB+fryiIvr/ITU= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210127031717-1fe1a7bc90f0/go.mod h1:Md9mqjRu/5Sn3YuS28pfyS0mQyziFFYJa2Ij0PHSoWE= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210208001451-a231980870eb/go.mod h1:e617ucWUQti5m/e2yMMEbw/5RmbnY1M5y+z6WL1+58k= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210209230429-05958b8f550a/go.mod h1:DMA7bN8AwrHPlpxA0yuomESIMH0bvkN5knZo3dDoMTc= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210211011204-9f83022992d4/go.mod h1:NQsnSNYX/RDOiATQ4Pnm7hKwxcOyFK3dmEjaVPGks/4= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210211231825-42ea6ea86eb2/go.mod h1:DrFgtVfC/bdGq7STL/GKxayf0lUkSuwfpARfTDsKCDM= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210224232006-f0cac42b69b3/go.mod h1:pKwMSQQBWz02kJQHLLovlaVDuQclWKBhYfYO5Yedy+Q= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210301020249-f1d9087e954f/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210304214420-87a73572f387/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210307235939-83b7c78f4715 h1:nMYxtGqYjzyuHeOFzJpBQkTZTBVaHUcHN8H8813ADeo= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20210307235939-83b7c78f4715/go.mod h1:Xd3sTEsS4aKv+kfZpfg35hRqzXWDjK0ZhMFKTmWWMRA= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730050521-f2d83f11087a/go.mod h1:alAnyL/NNb+tlnQ9fQAYivfB/Dn4YefIqCSNQwjGNBE= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730070629-101d6a4b7b3d/go.mod h1:PIWUCjpV94OVsZq3HAo6k0OyBUccPRWmQI+C8yMky0U= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200730231543-d6c1133043fa/go.mod h1:g7Pkeh7wNE4V2ya60b12rVBCr5eFuIAU6y0ouFEBF1s= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200807061611-ce52a469211b/go.mod h1:1z8QJ7g4CEC8MjNzuD+mOdEAK9AW+Unaj8JuotXoWsw= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200814064429-6977f8b261e9/go.mod h1:XJaERwgiVZjWKSkV9Q+ZYTpHpjpSiQwpBOXwqhegx5g= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200820070037-16d34127ecae/go.mod h1:ZIAD45GjSAOYCA7BsOsqYnihEerbVbJBWdlsotYOOsA= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200828000708-626a5f67a5a7/go.mod h1:ga/RDQe+TPPZ0S8egVd2ohvnaKjNoY4oif0jblllnOs= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200831080514-9b60c3843796/go.mod h1:sxLP1gXJapcn3Ed3A0xakHRMQHLjZcHxVYjFp1mB1mo= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20200918051845-a26389d2c0f5/go.mod h1:8eAaADO/hcDEGV+zStfQp5QmPIlxt7AICq9ahE71XsY= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201008043317-0e42e8bb887d/go.mod h1:buA+4PjTgHhxwMrllEXTFpfA4XO3bpSYPpF1itoKvSU= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201014223735-c82008bee721/go.mod h1:yKq1gpzdtaGr9/0FX+jLvV8UHdSnDsg+RS0kEG/M0Hw= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201109035620-53a9fb758833/go.mod h1:ETDhGcy0Y6fi98io7Mf3Ht3S4gVe03Hj2/lDy8bDLm0= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201119234423-d7a9d451f791/go.mod h1:Gzlmb4Oc07moLj24DRwJGFu0vGHhXcNVfnhaDsG4nuw= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201214053113-910cf36e91ae/go.mod h1:qpJFU9t7MIZau7WtA2MPQtYuYdBd6HKV+cbok4zwUt4= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201216042125-e6562ef05526/go.mod h1:D8WI3TL1H41zrdg5zjxaGqS/O5+L1BkqCIy7OUeNKK0= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20201217032923-a59ed83a3b5e/go.mod h1:267NQJgHFKFq1GSZOZLQ4S8R1ItufjErRWSKqo2X3m0= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210104014000-c4338d7a2675/go.mod h1:/y+SZ/uGSHoGo1dxi8UC1LuJ4h0P8OBNT8n8pT0KwjM= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210108001516-1dea5ce909b0/go.mod h1:RUOAqH29U8Y4KWlAre4dX93ZswJAUBr2Y0cR9m+13QQ= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210108040427-33de5b6c6933/go.mod h1:G2mLXg7uk5MhysRp8l6auEuWi2zpRKvlgIkSwbMpoPY= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210113211426-6722f8833063/go.mod h1:qeG0TIiUvMi4A7R10v/+M0rZkidr1KcjwQM+grR5brs= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210114221527-9373e0e733be/go.mod h1:HNoEexUu+Q1OhqXdpQrRkLLhgpFB3AvP2INDS8+LphQ= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210115020030-b6adc857e5e1/go.mod h1:P9yOJEF7rfv7isLgMOjL47/90nhngjhuF75Jl9xR7z0= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210209000933-c777aef3a004/go.mod h1:DZsOU0g0vUgJpcp3krvaelUb7NMdMsFcRfTk7Kn/iPk= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210212025242-35f070bc2a39/go.mod h1:6kUQ+Al9YAaaoyP53/2vk3dEyfltKmvVaSi1jVyCyKE= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210218220205-8fcdf2584193/go.mod h1:44GVPmy6PtLTm+lVdhBi8/ZZzdZfweGS5vlcaSgzSNU= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210224054249-e4478c11203b/go.mod h1:m/lNszvhHhamP4oXGArsQS+PNwQ+qHeyO5G5K5hnSI0= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210225015838-10fb610fab6e/go.mod h1:1Mne7kzvol5qOmP86ymCVa4hmnH62CONha5PjCVGBac= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210301020042-f0f7655d2ea7/go.mod h1:TaRszkMM8ELHKPgTj1uRdHTaD9TwVSdWF57gnLv78bQ= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210303042306-21e8246969a3/go.mod h1:e85URxrOv6KgVjeSeYTjL9cwPB8MN05VszKRPhPzE9w= -github.com/autopilot3/ap3-campaigns-api-go v0.0.0-20210315025721-1f7fb1cf659b/go.mod h1:Jmr2M7j3dmF72ZQnQ5188N9C/bF3r5/7rJTn4SXn1vA= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20200702080934-90f094e84ac4/go.mod h1:h/9wS8YrMWi6mbEE/MwtILE1CBcBwQSIV5v/ckZGGi8= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20200802225724-9b5225d0afdd/go.mod h1:KSwPg+cRRGh8SvWgB6D4wW7X6Vl4fgwhvfhMYzr1MKY= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20200803051750-3b45851b6ce2/go.mod h1:vZ5ClldX6CQRrSNSbWkNCi0l639bQh3ODcG59km62vk= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20200819011530-b86c0dc9abb6/go.mod h1:Be+/ZAFwE5NK0h7bMF0KJyoMzrcUdJy4jxRPQkBBs4I= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20201014034712-b017a486b6e7/go.mod h1:Beh/kqdjxu4+tn669zL7ylEbs5Lj7BFZx+JxqvWHnzg= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20201016005035-e3ba0f4ad1af/go.mod h1:82i1tSGOPmiT1M4m+25fVqbLQNR9Dj4JNjS1AeMLprk= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20201018223222-4fcdf94723ab/go.mod h1:82i1tSGOPmiT1M4m+25fVqbLQNR9Dj4JNjS1AeMLprk= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20201103025144-eb9ebd11cb94/go.mod h1:LCT/aHZ31/j2CTfoKVqBInqgrte3w6NRZUxXcWcUalU= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20201109223525-8b169c9eba2b/go.mod h1:ATjtb2e+YKwbr8PQi+6keNzQ4dSwzxlW0IPi+NsV5mQ= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210115032104-58ed680f772d/go.mod h1:GkjGVf4I7bg0FoTBijfixzdR4w/Rz7rTWvLN0birkYE= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210212040702-7bce04f79d03/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210215235705-09f0e0f391c0/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210216024803-d64f70c911d2/go.mod h1:F18b9YxL3bOSa29tAIMdF2KMP+028eTGzTu3ruYxq0Y= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210224230607-086ee066ab1d/go.mod h1:TmBoNZ1VmgIFUlQQnhMUENjbe6jEFMl8wiiqtXlP/Ws= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210301014323-fe8787b83fba/go.mod h1:IQzjeVWfEMhmUc7NB0dSJWyWgL/qNirUu+eilN+uNIo= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210303042321-4ae92107b73a/go.mod h1:Mp4YWsKHrqTnGHBw5YVkj6+9mwga5jdc5RNO9zoxxdg= -github.com/autopilot3/ap3-capture-api-go v0.0.0-20210310053256-e9d4aa58cba1/go.mod h1:bUO02lCiN1YP2aSf4tiJhQSRHVucVTleVsfTLi9FGSY= -github.com/autopilot3/ap3-client-go v0.0.0-20200506004949-d23dfa57e16c/go.mod h1:Bf/O6Wc4EOoINWHPh0FyhvSzukHzH0OanmpWo1K5sXA= -github.com/autopilot3/ap3-client-go v0.0.0-20200518004718-eb967d6fa258/go.mod h1:Bf/O6Wc4EOoINWHPh0FyhvSzukHzH0OanmpWo1K5sXA= -github.com/autopilot3/ap3-client-go v0.0.0-20200612011247-9b7352951a11/go.mod h1:GpczvGLXbuZHI7Ld8Rtlv+xnWr52BxU9skBK59ClhS0= -github.com/autopilot3/ap3-client-go v0.0.0-20200721015203-c563ed2bbe69/go.mod h1:GpczvGLXbuZHI7Ld8Rtlv+xnWr52BxU9skBK59ClhS0= -github.com/autopilot3/ap3-client-go v0.0.0-20200727084125-0b6d021bbaf2/go.mod h1:lYtFNEzSIy8/DXo3sznxnJhKdzu+mkPTCHp31F+J/60= -github.com/autopilot3/ap3-client-go v0.0.0-20201026101213-f9c35bf54833/go.mod h1:lYtFNEzSIy8/DXo3sznxnJhKdzu+mkPTCHp31F+J/60= -github.com/autopilot3/ap3-client-go v0.0.0-20201201233548-401ea5585c25/go.mod h1:99onXFRW+lZy/dAOavWRd+66TT8EBS1036T4gWg1dY4= -github.com/autopilot3/ap3-client-go v0.0.0-20201217023829-824b2cad6c3c/go.mod h1:7JuVWqS2NnUV59vaG1gI+btXbgIBZJjUQVdETjkdFqY= -github.com/autopilot3/ap3-client-go v0.0.0-20201222042926-588768535568/go.mod h1:7JuVWqS2NnUV59vaG1gI+btXbgIBZJjUQVdETjkdFqY= -github.com/autopilot3/ap3-client-go v0.0.0-20210303041551-2c51cd109c9a/go.mod h1:Tzq8OymZejqr90grVHU+ItMGj3OoMo6sCI7N4j/U+gk= -github.com/autopilot3/ap3-config-go v0.0.0-20190902072625-b22adcd3a1e1/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= -github.com/autopilot3/ap3-config-go v0.0.0-20200318022128-6c2b0e2f17bc/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= -github.com/autopilot3/ap3-config-go v0.0.0-20200506052753-a229deed2950/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= -github.com/autopilot3/ap3-config-go v0.0.0-20200630042032-646f272a79b9/go.mod h1:PCUDB/hg7jzHSWINPeUODf9XsW1DANwA17U7jQwEZzM= -github.com/autopilot3/ap3-config-go v0.0.0-20210205062909-8aefecd794b4/go.mod h1:BDQTT+E9O3cOiRIuxwOPXiPgm3WczHLEYHQmyn9t4vk= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201105055606-540cae20848b/go.mod h1:GUxQ4/OPaUkEHr3GrdI4SULpm9KhTM9NyuLDzBO6iO4= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201106032110-cade438bd914/go.mod h1:GUxQ4/OPaUkEHr3GrdI4SULpm9KhTM9NyuLDzBO6iO4= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201116063202-bbdfe61e5d4e/go.mod h1:NMN2BJ0cwmRy5QVLck5sdK6FVRrXLdju122/WdQtlsE= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201208035605-82cf3ac1e01c/go.mod h1:NMN2BJ0cwmRy5QVLck5sdK6FVRrXLdju122/WdQtlsE= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20201222054555-21eb94efac94/go.mod h1:DRI9N5G+6/76I/i3uPEUcQsV5N+oP8KnQHFSr2LaUBs= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113003714-53194413f27d/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113041725-81d0c855bac4/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113042935-a477d77c910c/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210113065635-5f178bd3d0f5/go.mod h1:dmmAvEgc2sYzQZvPgIi8DAELvi+fyjeZy2pU76N0D5k= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210115024905-f58cb06ea6f7/go.mod h1:nbXwA3wpVtLLDy8245mJ5wQehdFbjjbwzmPeVZZIjxE= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210118042407-532c9fe2dc69/go.mod h1:nbXwA3wpVtLLDy8245mJ5wQehdFbjjbwzmPeVZZIjxE= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210129015802-9f476df23add/go.mod h1:UJtmijp+4CVGh0BplsE/SLCfzfHeTp0W30PnkWRBbxE= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210205053954-10d0301d1ec6/go.mod h1:Nr5BerO2RHXjyiPIMI2keR9n9uBsNj3UQ80ud6h1I3A= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210214222124-c1a57feb1faf/go.mod h1:KwMWy3/VIGA0E6RW+WwIoeU8Ii8NagaaXBZVQmBgypY= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210224231144-6e5d6a6c06a0/go.mod h1:EuYgKZpu3dEfyOyky0GcisrdqM8b/pe1ElOJNImwxRA= -github.com/autopilot3/ap3-coupons-api-go v0.0.0-20210312023218-f7196e24bfc1/go.mod h1:EuYgKZpu3dEfyOyky0GcisrdqM8b/pe1ElOJNImwxRA= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200702080152-c59e1d2c880b/go.mod h1:CbVdbTjtkAOkCQXgaCr3I6iWkdc1j8YYDC85kmq0ChE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200702081636-bf7b7ccf7f29/go.mod h1:cECJylxJb0LUn/+3jPP4RdgJZt3Eb4g8P+xH0pGZ6yg= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200706035844-52705ae38b92/go.mod h1:aEJy1U7mCS6H46kdm6lgviDwFIe/fGwrNBJ4cI1CW/o= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200721065821-12e2d5c2fabf/go.mod h1:S/e00OUef3rcXr5Ri5XeRX+qZ30jUoKXbMb7YgHR++Q= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200727002110-dec68c811e99/go.mod h1:OxEesPWf0JrIQgCFpYrhKeS/nDwozbmZRT1cJF8Dti0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200730041349-11d155128a63/go.mod h1:bYH/fZFjJGANOO3Qcr95+zY4XUmsvloPeCYcYBtEwt8= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200804053221-ec59c3a8cc71/go.mod h1:0lpH1Uc/MxAC0z5j+rrW08Ohuhk+I4aSufs1d8Y4qxE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200805223526-895287697339/go.mod h1:0lpH1Uc/MxAC0z5j+rrW08Ohuhk+I4aSufs1d8Y4qxE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200810054435-cd2fff2f0294/go.mod h1:SCNyyP0z5Myjc1NxQPJ3t3hy7OhvJOq5swa+N3CSmzA= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200811073139-cd9c9a1cdea1/go.mod h1:oOyG+0nIRHY9fnz/WO+6PT/ydS+XyE8bwrqTxcTx/3Q= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200813001743-1391733f47c0/go.mod h1:LADNcdgpPEBiP6z0kTRRqzZKFqRnndj4NW7xd6Z3s1Y= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200814044147-8e1b3a1d22f4/go.mod h1:LADNcdgpPEBiP6z0kTRRqzZKFqRnndj4NW7xd6Z3s1Y= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200814063000-6bc990bd701a/go.mod h1:ipNZBjmSiu//m06PzIX4XFvqOK7uxfGBPPPesUBHFdY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200819051735-45ed75fda7af/go.mod h1:ZsF02Y6RdAwoQaSPvKbZI9TNvzYprJCXhxBvVGTpFBQ= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827064835-265b5ca06eee/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827074355-c00ee184fa55/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200827224948-61cf7cdcc6ea/go.mod h1:omGIMc4n/XFpc+K3YSIqDXRScbkQ5zZH6uB1D6BuYsE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200831033353-a4bf6bdb36c6/go.mod h1:OBxpJUAnWNf7NxcUzQFH0mepA0FAURLnXY1HpeZDCrc= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200901061509-d62e5974f640/go.mod h1:ZNgMq4vy4ms7dBz65CPvtDNsLsrFJ5qrIf1oY41H1Wk= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200902071018-b834ded8d935/go.mod h1:Kw9MkrOgsdvunkE2DeGf2sSaMd5gT4GxUYZcHBwwcM0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200911065453-fa3c156bd58e/go.mod h1:BaxJr/Ghy3zo/3PiqXMSBCAY5n9FyStc4Is+OGd+5QA= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200915062637-811d2b8da36a/go.mod h1:e3s46JaC+n0PkjLCZcgEN2LfZpERC1uL1Cdxa8Al03E= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200916222644-010a998963a2/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917041321-92555223dcfb/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917044923-1177fa952791/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200917065747-c4f703bb29ee/go.mod h1:AATvIQ2Milsyw8ZwMRKBrs3BQOshQ7kTyQOko2QYp6w= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200918061924-a1e2b1f247f3/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200920235217-e04b18a81b9a/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200924061356-3650d07e0047/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20200927235932-d507d71cb506/go.mod h1:G68zdsyTk5L+gbyXSdztY2Sp7GzKc36s4FlL4DHP0kU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201001000400-b67677b91cfa/go.mod h1:lHIWq2YBBKSmELfv1XtyJPtBkqrA4UJaN1yTMPEie8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201001064244-98e7efe2ec16/go.mod h1:7DnKozdz72dPCiN8MsnmEpw76ojLftl26QgriRtyrHA= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201013081027-3ea663e1276c/go.mod h1:jhr3FveVCFpH+T57nj1A15o+Ynno5NGMgAl/G5CDMf0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201014222757-2eb38999570b/go.mod h1:jhr3FveVCFpH+T57nj1A15o+Ynno5NGMgAl/G5CDMf0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201018222138-bbed39ec800b/go.mod h1:6I1inznODaZX2SkYdGLKv/oCqZ7WxG92wTGFeok8q+g= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201027004400-40541315bd46/go.mod h1:sAswXhBYc1E5ffqDwaP70GtqNNtunH8T4SFDQWU8AqU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201101212257-60b0b34e4e3b/go.mod h1:qyx91W8JmNdNu/uKLJfZZzMEHIadKUU3kjZdXOBFMmM= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201102034917-32716835a881/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201102214621-67daa40a8c10/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201103000043-73321fee7c04/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201103025432-709ab03638dd/go.mod h1:NV0zHKTQw7KKgIG8D/y2HZ4+4BTlcLblQgRdcoyPmO0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201108212341-d00731653aca/go.mod h1:eZ+95y01RnKfhqxOdKb/SfVkIMMdHEq2i7UssRe84F4= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201108235001-16a85b59371e/go.mod h1:eZ+95y01RnKfhqxOdKb/SfVkIMMdHEq2i7UssRe84F4= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201109215909-8bf955bbc905/go.mod h1:C9yG28PRJwxRnBO10nujeQTAuAmksF/GJ+gH+OmP8aw= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201111025039-46a2c5eb797d/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201111050315-d16ed8866181/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201112031833-313844a7c16a/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201112093541-f3d9dd417d08/go.mod h1:WVo158Ry+e5YhxxcQhKANH8qrxNA3HUXnpGf/kVwSTY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201119032926-2e393d350ace/go.mod h1:aAnsqO0p4ZDf0BrkwmRRr3VIwoPLdFKyLBSjDvzjhik= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201130034556-0d96b12ce218/go.mod h1:AK/5z/gUBrjoCtBm8wTK8B/+8JtORIIb9fPCnpAaYGY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201208051512-85d6c770b3cc/go.mod h1:AsoVKWvqREdstStApO/qyNg775c2Bih1NkgD04+ai+Q= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201214010323-5ac7893214b7/go.mod h1:YxWrnB3vdW/lsoBJ85bOq72hlfrvbsijnoQ5GRUhnD0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201216034943-932e2af9851c/go.mod h1:Mf3liPLu2X7tFHG0s4s2ty/aW/ESAovPFMfdcO8Gz30= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20201217003209-0bb5085eba74/go.mod h1:7nx5p3eoqijLpF3c7IuvasLRQmrDrd3pgBWuMxvO7CI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210104052405-d46fb0ec5c29/go.mod h1:DJYMiu/ndPCT9ZT71wSjR5QzmHIGYcGkFVFQGbjklEI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210104060835-3564175d3784/go.mod h1:8IkONy066hk2iYBR0H3MmN4iEz30njX23m/gZ8wvXQU= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210106034437-2b7de17a3e92/go.mod h1:+YqbL3WkULu2UFBVmisiy9vAV8yKwRLy6lGjPM4FV8w= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210106234534-1f9c12ebfcb1/go.mod h1:A3vqPvm/zA1CAIsKSBYoxQXpQecHMD3Z4aq52kRFl0g= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210111023742-830c514eaa25/go.mod h1:VCp1t2K7lQm6KmB0e/2yzruPV3rvplvmuQOSzcnBnf8= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210111064624-0e20dc3d395b/go.mod h1:iCouHTuNlucP4FdIfEitrAl19W7YQMf0tP8trTjEnFk= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210113032616-3c2f3e43168c/go.mod h1:Ob+g8/2d/7pOhHuGCXv1k7+bPAj30T5q5OP/W8uHPds= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210114023034-78b1ac610894/go.mod h1:kJqnr3QCTiPNKL2gjoLvDIGpYKip94GwZcUOTfTc994= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210114225453-32ae4ecb5c0f/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210115000746-27cc7ba41839/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210115001033-7550e98831cf/go.mod h1:XlhKVvZMwfoCQhotXaY0RZR3my/k6ykZOjZXShmIn9g= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210122040540-b50c7584c63a/go.mod h1:H8zvKvSCi7apEi1SOYbqVdLQ7pg/JK5AbaIM6LWsTJ4= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210128001808-4de90b1fcedf/go.mod h1:mqn82Fyng9NJqMpvDkt1txTCIVtQcmO3ba8ysSkSLmw= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210201070005-6b89f8f6d099/go.mod h1:41YlklVpJwX90g25NxNkZb9jyUKaSHzsLjdbDR+W23Q= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210202055842-2a07fe571b75/go.mod h1:41YlklVpJwX90g25NxNkZb9jyUKaSHzsLjdbDR+W23Q= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210205061018-b4d01e1c8457/go.mod h1:/7GIgcirJWrrCPTXeShdB3Fas+9VoHiqHUH+rSvDV9k= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209000836-0a975c7bec8a/go.mod h1:Nu/8hm4EK2qoALyt2a33RB7hCt42V4g/BfyVWEFMJe0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209042613-55ab9e985423/go.mod h1:P/uIsWCOxVxgLPnbBVOhG4SARUcMk97dDxWcOeI7K0c= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210209055644-d7e1d59bdc39/go.mod h1:P/uIsWCOxVxgLPnbBVOhG4SARUcMk97dDxWcOeI7K0c= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210210211726-23d66461ae46/go.mod h1:+ybznnKf2hFuxui5C4sWXLz/sXi9hh0NejlVnSaPBhQ= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210211002057-552263971c1f/go.mod h1:DndwW4eXAn8FQp04HoH8F5GYQvz/y7s+fRpsQiqtWoM= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210215033416-14b28b2f3853/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210216054308-7fa81762fb79/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210216090511-257223f5006a/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210217004329-e047cb5be0f1/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218065029-a6291151c2c6/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218065206-766b809d0167/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210218223930-e569dcd09c63/go.mod h1:LXsx3tqalOoZMpFEgLBg2fzRfoKl+4o1bh41jTAeU8U= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210222210351-eb8963d3145b/go.mod h1:uv2tkrcQIR7Ghvntm+Nu6tgtiPGEw2IqHn51prq0tXI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225001507-cb5629b842e4/go.mod h1:UpiO+Jq5tiDsHqfX2Dp5mH+yUCsssXtUkEQtGfJwC2c= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225222000-7d4b3841d0bc/go.mod h1:UbErwCFENJlWAGSShWs4ZnJY+IsIvnErj/RBlmOaVIY= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210225222456-889c77e7cf26/go.mod h1:aB+9tZOS0Yd83nZ7olbh2+ozDGM2dNxGuIAi571iGdw= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210301232420-9774fbb4b73a/go.mod h1:K/ingasZ20bnlzDYEGRawWOzPkgP81x897UN4ZZSZLs= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302002033-36ea7ec03575/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302032148-68d0cb687da9/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302054408-06ac718d3787/go.mod h1:ig10uzZMIP9fc1lZQ1bMot5NiTbSMU7rrQr74x0beHE= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210302063108-7962bdef48a6/go.mod h1:BYIBepGfpyAJdzT7vsFnxfJ0PCEG0pO9c0TY2CjpFJ0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210303042412-2f77a8c674d9/go.mod h1:BYIBepGfpyAJdzT7vsFnxfJ0PCEG0pO9c0TY2CjpFJ0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210303061222-1c6f331ed751/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210305002603-db4670556862/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210305062056-aaa695c548ed/go.mod h1:vJYLRONqQcTs78mzEVBfXHxY8YdWAh67/JNv0S2b3oI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210309002656-284519d484e3/go.mod h1:mEQrBHiRwvaCrBjkQcQ7T7VjQywCvSDr0qEk/A65uV0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a h1:ihCBFnVqZMF8knmgfwUvN18VOumbIJSZpY4du9WCoV8= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20210317062639-fb091f77a29a/go.mod h1:/J1sigtPLWPTjQ//LueOZmya/r9Q955Vi1/JiYiDjxk= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200702080551-98e7bfafbf62/go.mod h1:Jmr64yflPCavYTZ9ja0jeaRt5oEfYCS3GQhEVCDGa7Q= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200709042314-62f79ca29182/go.mod h1:Jmr64yflPCavYTZ9ja0jeaRt5oEfYCS3GQhEVCDGa7Q= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200827232115-40f48d24ea75/go.mod h1:mxQ2XJpgX/8zQlfoJBOCw+yZGfLpknlf1LdTPkjGuBc= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200902045613-97230abf6c62/go.mod h1:TCFuDK2vAUCHSYNdrMN+pSI/cMdBouLz/Q7Uf4FiNzo= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200914232446-7524d06d91ab/go.mod h1:8cMx+BiAobZVGyCuYLXNPCNTi00vTGPteU+CQlugPnE= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200928063604-248c2a4c344b/go.mod h1:/uI0y2ujiO81eczMRumQ4oDMWteI9Tuc/vcXbI/NuQw= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20200930064256-7c98f943385b/go.mod h1:m+LbZ3dR+TjUU0TGbuPc1AWsUk/O2oUf4GUtTQLO1pM= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201013024559-81b55fae8109/go.mod h1:Nzg+mnTzBIcW/VSCmIoTk0gKV8fneXOduThG0miSquc= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201102001501-ec3b0a7223b0/go.mod h1:Nzg+mnTzBIcW/VSCmIoTk0gKV8fneXOduThG0miSquc= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201119234505-b0523cc47e18/go.mod h1:EnJQs5IsLjqFi9r40f6qWraa7yl2yAG4/9bSMD7/czU= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20201214044808-8285861771a8/go.mod h1:govyLfigQH0HAh4KML8RdHam9rXS7Cjmh7ig2n4VYPE= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210111064237-da7ec5cf30e0/go.mod h1:pn4d+gkSDCUSwWQPAR72BmPlfnAV762p/n2w1I5C5HA= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210112220610-46bd963dfd5b/go.mod h1:CYBHqXwlCHEuNzYrm3AUB+VLkSPYHndEeLvqf2g1ca8= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210211002542-4733e787ec06/go.mod h1:E5NbL6rtOTRLcGLG4nKtQ0QRpYJKF8pJJsylU+3C/lo= -github.com/autopilot3/ap3-dashboard-api-go v0.0.0-20210225033953-77fe33bee6a9/go.mod h1:JPd84ri7NdkY8hvbxwXqo/w0V8ZfIkyynntqvUjRcxw= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20200827002509-76ba95f487df/go.mod h1:pg/MNbyHw+/k1l5wi74tl1dpBgPY6i1sYC0i/1PpvkM= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20200828004607-eb486547174b/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20200901061127-bc8ebae70e1e/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20200914230534-7d560c86d287/go.mod h1:d1JIj+oDGiR3OM/PS5MOAkPRVFn6qpr2vFRMP6/aeTg= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201008031214-39f59e611009/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201009045408-7d89e5bd4a63/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201022061845-af15847c3bae/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201030054608-a9ff204c5f14/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201105221420-09a38911dd32/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201109222807-7ee3a2a7012f/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201118001640-7f963d040c69/go.mod h1:KjP505meiErPzL/8NhtToY+XX8MeceNjSvq+/brM8q4= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201119231915-8e5dd6f5759a/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201202010356-a29a41dfb722/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201204042521-039cdc6582c2/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201210214839-8cf00f0fdd50/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20201214221620-65aca68b68ce/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210104012303-857d15d52f72/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210129061533-eabadd0b8c66/go.mod h1:G1B/k6eu4IjGy1CSwaQhNLd+idBJMX7N8kN+a85NmYY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210209000337-39338a0ee581/go.mod h1:POYKlUvfGa4vlEJcB+53Otx24DkeBQ+ZJ3lIendM8+c= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210209061054-de1714f7eb99/go.mod h1:POYKlUvfGa4vlEJcB+53Otx24DkeBQ+ZJ3lIendM8+c= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210215084457-89f580ccb576/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210216050632-5eb24880872f/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210217051446-63a9184de07d/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210218020006-f9768b965e7d/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210218065158-6b8c949d8b36/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210223030649-6a980d850371/go.mod h1:BdGWvFZGjZqfNaV6W8ulKykeqIdFgjb/5wW7fO9RfpQ= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210225032459-1d9d0e04d0a8/go.mod h1:R3jyHY08QJjHAdl8ly7dtMqRpgmggQp/Ktd/D7CDrww= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210228231047-81655e398168/go.mod h1:w+1o3PGB+Tn4AxhILQj6OaIa9ALgOGPJ7OlmjrMtiAY= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210302031857-f6fe030cb7e6/go.mod h1:cLZ5YwVUGCgZS0qiAIDae2i3BFkmpkSaW/j3auDY1kI= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210303031324-975c9dd841de/go.mod h1:2rBWOZNzR8Nwf7sEujkv67+fXSBwUIcc+FoZHFEyd2o= -github.com/autopilot3/ap3-email-templates-go v0.0.0-20210309064531-c8a22c91f339/go.mod h1:WJ9l/xLrYfhBi3kVoMhDqZByK29WHQeUYK3v5CqS5+s= -github.com/autopilot3/ap3-file-manager-api-go v0.0.0-20210211235216-635690158192/go.mod h1:Uo5inyPCSWa/bENP3xlbk0ePxPN0aOwLRDbqXS1P9R4= -github.com/autopilot3/ap3-file-manager-api-go v0.0.0-20210219051014-90c03ec8123a/go.mod h1:DtsghRojCcCF2X0u17oXwc0LrtyQCcf8A7p/4eBe7Fo= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20200702081434-fa94f1b05103/go.mod h1:QwtiTn8472RoAaearhn/SjrBqy4lNNi+8D3QwMaqiNk= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20200723080646-cc7a1e5c98f4/go.mod h1:g0nqlB+Z+//8XMX0HNJmf+csRtXt42cgbh74xk4npE4= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20200827231857-a32f0dce8e71/go.mod h1:BlAAIVTENYeIp+fZ/aXsJrhMDT9Ax1+Y09vMqqi5Cj4= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20200902042227-4c66d185d857/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201008022357-d7d03638d695/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201008221448-04137a1b0dd6/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201021065803-a76613cf8d72/go.mod h1:fTaLoChomT/Ga1XyqwYSuHNYSTf/WOOvWqmmfD99wlg= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201109055225-823deb80b66b/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201119234503-85ae06763ae4/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20201214044924-35d881c34e1e/go.mod h1:HhCKCKU+lUvvqSw9Z2xTvFcuqNfASgIQCbRHLY4Cjv4= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20210122025212-b90fc927d7be/go.mod h1:oK2sMy0MZvi50isHEqqon6Iiv5JRMNaA6W8q0Zs1ZoU= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20210207225926-ba2dfdb7a451/go.mod h1:P3kCceS7GOQkTrEG0KBcd1sxJ2cPU6KOX7uq1XxcxAg= -github.com/autopilot3/ap3-geo-api-go v0.0.0-20210224232740-03b7ec3e39bc/go.mod h1:v68FSlPbnoIr8h03nixubu7g8D0CJ1d14d3ibYJAJW4= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200211061454-48c445db3c72/go.mod h1:NXrQo8sAaW//J6cb4Cp25D6ehk+qYa3MznfJy+zhtw4= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200303051922-57f32fc8942f/go.mod h1:1Y3XHGvAs/Wx5py9zzMzMmqRpr/IgdgLth7T9zMwh+8= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200421061531-fdb77916ef53/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200423234818-4ff78aeba9a4/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200521061745-42f10219aa7d/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200528230941-dff24b445b99/go.mod h1:JfpteeJ81EHlkAzyhInd6Q9gnZgaQAgrrre7YGFKO7Q= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200624081818-52842cac4ec4/go.mod h1:6JbCAe+LU9PQutKXeyE4wItGnAUT6KD8DaPJoFa74rI= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200702011551-f11d5d6fbf47/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200715043514-a7e4b45c42db/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200722004912-48fbddf8cd83/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200728034400-71f443734321/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200729014915-646172c19f9b/go.mod h1:laTzam6XDEL0biVp38yEfgp00+qt+v/Yfp20du0vs7g= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200731023514-a5e68c07ec55/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200804011701-304bb1432afd/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200805231806-51011c758d84/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200810030945-224a6396c444/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200812035525-e4d20756900c/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200819011427-f3161d1b1909/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200819011711-d70e0e8827e3/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200820043429-164cdc554333/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200827062126-4abddba6c3e2/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200831083939-f81036f75542/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200901053452-aa4caccb39e8/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200903051228-a4603679bea2/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200914035238-91e27990d7dd/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200916074515-a9ff31c66990/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200917035225-624eac27847a/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200922053325-88d5fd1d6fc1/go.mod h1:UDsmB5MeQEv4qu6W1uVVjBA+2nuhD/hUqX+DBu394Hs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20200930045433-e475dbb407e5/go.mod h1:gKC409/WwKWce3rU3h2bHiA6YnOipLRL8MtDiRcF4uc= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201001054704-f7f59f06fc2b/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201001232459-d5dc3bd819db/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201002011417-f91b9a8feb7b/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201007034414-d5afbd8b59b1/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201016043410-7cf46073a462/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201102032600-ff2c82cbc613/go.mod h1:Fbty5M0qWm64ycOngTl2nQ7db1YxeMy0vjOh0jVa77c= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201103021803-a77d205f4054/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201103062530-b31eae10d06e/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201106022541-c10475a3f71e/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201111024216-817b24e2c841/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201126002434-daa3f246cfc6/go.mod h1:pfXwsu2tvopMfEJqeT0PguXgA2IJCpQe053671sPoIQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201201023428-36e03cb1d4aa/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20201209004110-43bdfc8635fb/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210104053802-f51289a8a1dc/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210106034029-5e7f539b778a/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210107004935-4aab4012a171/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210114230534-8979f2ec019d/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210120221102-803ecbc91a7e/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210121000829-b43f9255b76e/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210127232425-9d1090d394f9/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210129041623-5bd221fea72a/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210204003142-f911c0b0bda8/go.mod h1:Hcxvbk61IRpBaMjb0TRrEdwKKvDKwlg3YzfP+lbBqMs= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210205053234-3e012961d35c/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210207212008-b287bc52fb96/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210208061125-3dfef4ce33e8/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210208222839-cbace7f95675/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210212063837-7ca78dfcf89f/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210224044549-2ece94711831/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210301231508-e7f665b19a89/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210303024852-d2a7393e730f/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210305062338-4d47952ac01b/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb h1:eQkNRv1zRBEymyE1ZCDsueDDpNB+dZaT6oKhZrILxUM= -github.com/autopilot3/ap3-helpers-go v0.0.0-20210315005720-2a7e262845bb/go.mod h1:CJWyAEd9iMqCYpaVOtXCoJMygCaXRNWB9w9UTls9luQ= -github.com/autopilot3/ap3-img-api-go v0.0.0-20200827002413-eb437b94f656/go.mod h1:yDSea1EtsCdH102HEufIWw9gnEqaTYr9/7VUAGjIpN4= -github.com/autopilot3/ap3-img-api-go v0.0.0-20201109055243-efa3c0a8c9f4/go.mod h1:HduokZLN83gh74zAbOGuax07sIrxX+9fXGVfYSK+ZyA= -github.com/autopilot3/ap3-img-api-go v0.0.0-20210205060319-7aff8e0ef882/go.mod h1:Sity4Sgn7z5twVozP7Aba9ucpr5uNnpjw85JT9DPKdg= -github.com/autopilot3/ap3-img-api-go v0.0.0-20210215081233-4f69ebb20f03/go.mod h1:QX7XvgYwqF3vH+z5v03WXH+6QlEfz22sqZeyK47/Bx0= -github.com/autopilot3/ap3-img-api-go v0.0.0-20210224232921-bf3dd001b14c/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= -github.com/autopilot3/ap3-img-api-go v0.0.0-20210302051136-e20b74857554/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= -github.com/autopilot3/ap3-img-api-go v0.0.0-20210303001325-c005c777189c/go.mod h1:mqoMd+2Xn5TbA24lvROpqQWSCiGxy5mrCqRYSPN3Vxo= -github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20200902071647-a5df69e55cf4/go.mod h1:9DXuJIIPb3RAKQAgAqILAiam0+DR+IT0tHmjFECkcFQ= -github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20200917025557-2b563de0d68c/go.mod h1:uKoCnvKp2q+2jhdA87Okz7cBoeQTmB7m8xX640Xi5+g= -github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201006000747-69dde0cd6721/go.mod h1:+qcT4bbKZUDvBALvRzV+qKpiFkPaYGvHs15FPcugCW4= -github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201013065052-67bad93c80ab/go.mod h1:vYIx0EHw2Z7pJA95s2hdd1ZN4pq8ivUFJx3RZQ6vYvI= -github.com/autopilot3/ap3-pipedrive-integration-api-go v0.0.0-20201109011453-376efc03f36b/go.mod h1:R/ubcX8yNRIGWJoDKI4t3voMnYinReXFtzrOmXf6UXU= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210204062004-46a6740ad54b/go.mod h1:MAS1D2Au6uZWZbpFsRL3QR9Ogwk9M3btA9iLIdKFteM= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210209221538-fe52a8d460d8/go.mod h1:0ztUDBKJ5n4FWjJyB+ocZkaZ5dMgiQra26DtIHQ/7RU= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210210060733-458ac372e62b/go.mod h1:0ztUDBKJ5n4FWjJyB+ocZkaZ5dMgiQra26DtIHQ/7RU= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211010904-8fb6b6fe2be9/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211213633-cb4b0f3c2b90/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210211231003-1b173107e73f/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210212060838-03489b456ce4/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210214222442-8831c9eed65e/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210222001928-9b1a1d8f94e8/go.mod h1:EAAK2VeYvE4JJAp/EGvoIGPsIllc8LUakMeIpW3ld00= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210225222346-fe3638a6654b/go.mod h1:3L0xJunJ+QS2aJWDdvAg5KXRPkCVXVFX89FmaoEUUKQ= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210301063050-3b6988744747/go.mod h1:3L0xJunJ+QS2aJWDdvAg5KXRPkCVXVFX89FmaoEUUKQ= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210301233014-a416586c0945/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210308232815-efdaf92fb173/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= -github.com/autopilot3/ap3-product-activities-go v0.0.0-20210309225627-963511f57c99/go.mod h1:ELJ+wmLU+Tb8kkMpyzMo5o4fPRkRwuLztW4nBdAwQdk= -github.com/autopilot3/ap3-recurly-integration-api-go v0.0.0-20201116225025-c1adba78ce0b/go.mod h1:J5SOTJ9stMa69c5ATf4olIGhi7yFhJ+jc4JuPKRTyWw= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200615050122-435e15feec12/go.mod h1:scwU0swPmcP2FFrvNuuiPNimTdpcfZHKIjMPCoDUAR4= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200727002453-487edf23da93/go.mod h1:2xpR4tvervtfqRkxFUaG6oQJb2eYZw0DLbWdVBLEtQ8= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200812232248-bd8e42547527/go.mod h1:2xpR4tvervtfqRkxFUaG6oQJb2eYZw0DLbWdVBLEtQ8= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200820020919-717969c32791/go.mod h1:U0ieDdGP4xcGitq/i4jq68TIjlqkxwaw458UJB8uPno= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200828005231-f477a2b1681e/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200828061430-8d841f7ae499/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20200914013550-5c17adf8bd20/go.mod h1:CfZxGgK05Ne2OJAxoTrHUtXsr1pDJe2aTzmK68HMGHg= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201007011534-5e5fd60f55cc/go.mod h1:stsOt4MBu6nftYoKj2YhYNi2IpMKddqu9ZFkTBliSic= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008024625-b44c2a507235/go.mod h1:QRjCeq8qSshqAzzvF6bSSDUne17dBJN7HD/RozfYq2k= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008042357-9bae8c09047e/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201008211557-cd37a503df76/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201009032437-62a7d2c34d84/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201012003713-e9bbb8d09f50/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201015050209-45d8c75bdd5d/go.mod h1:0PgEnkGK+QOjMDZ1TAZ1Ihgey0LINc6wR1GSuFAbheo= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201108211813-94cf524c044a/go.mod h1:bkka3HjNzo4xeIIV+KY6iToGUlh/+tcSNRup4qLxdZ0= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201109043636-87b8a34835b2/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201119234500-f90a73e0b7f9/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201207044815-dd6bfa62b410/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209050532-665cbc3c329f/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209052810-a4ae6f575e17/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201209212153-ac2b8081ac37/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201210233958-e0a04175ebfe/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201214045117-1139ac9382c7/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201217003124-4ec47f23ab31/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20201230050252-c642b8e0ed5b/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210104030121-a62ad521d9b0/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210104052144-dfb315c046d7/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210105053408-4d55dfc1f348/go.mod h1:YsCbcVDHAQnbSccaJ9R4GsGJfuEIl+RNo/YZJW4p/gc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210106044926-ac9bd7fef03c/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210106052350-ef71cb91533c/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210111044458-40dd36644477/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210114013652-6e1055ed652b/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210114034400-0580d49783a1/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210120034422-d0ac3585c262/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210121030500-5ce234604540/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210203234745-47c59e401114/go.mod h1:Dka5u/oynNVnw0RLFh77Fv/UKTmlGMHGdVlPcnjKhGM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210205054024-cc651914318d/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210210000031-21319466ba4b/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210212025603-43ba5fbf7a80/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210216234838-bf693a30a441/go.mod h1:JnKwlovaGyp9k2hVP1N9XCS52VfLysS1lqRsY/l2wUI= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210224234736-79d726478354/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210302053502-5e44e54b4f6d/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210307214609-0cb893bc11e5 h1:XjWo8aovX6GDy1JiKxk12ahM1iVcbNBllI9I8fy3Ug4= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20210307214609-0cb893bc11e5/go.mod h1:pXf5E4SL9RoAk5DjY5V7vzd+QcSFl4lZpKKsUDwSKyM= -github.com/autopilot3/ap3-settings-api-go v0.0.0-20200612050430-e336c0d52b2d/go.mod h1:cQB0UsghEoclCFWe078hqLtsCDUKCOmSpz4a9m0IJBM= -github.com/autopilot3/ap3-settings-api-go v0.0.0-20200701225546-d1d7930acc8c/go.mod h1:cQB0UsghEoclCFWe078hqLtsCDUKCOmSpz4a9m0IJBM= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200902121607-1f0622c8e018/go.mod h1:IMUQIPdtOwVQ2rRxGME8/JpjfykfXXd/2mqvPViNg/Q= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200915063035-8fd046f576a3/go.mod h1:FVU3chmaCCXPihJaMj1qqkkIBiAursfCBXZGcewTzp0= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200917025602-202a22e50999/go.mod h1:/TmedAGSr58vkWTyvKgy5etVvqZ7Ts7yA7VN+/aZyyQ= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20200930064120-89c9b031d11c/go.mod h1:Aq6XZwH3j35P6XP2ZscDdC43MlLI+ZDI99T37zTkndw= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201006040927-ce47c1f774f5/go.mod h1:57IFN2RmkV5GRrhSrZTqycC1M1xp8kXaLgHVdXPpYRw= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201014051343-433ac1727497/go.mod h1:Irzm/T8+jP2nfV6mwNnhJa57OePfKenPTR/u08PeDHY= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201019220006-e1cff58775db/go.mod h1:OooU3RfxkASd8b043DUlwQv90CnSDpdjSvtx66Kb3dg= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201104045008-345495f372ac/go.mod h1:RnPoqF75h7PxKE3atrO91T9NE2a2rXhB6KRYSkdwclU= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201105033955-31f7af7f74bf/go.mod h1:RnPoqF75h7PxKE3atrO91T9NE2a2rXhB6KRYSkdwclU= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201109003049-4ee8db6a0286/go.mod h1:MZ/S9NE9WXbDg1K/WuGBTJXz5/kHQih7v+dKKTw9n+c= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201109054405-328467de6352/go.mod h1:k+mT4qpr29tsrrYGNUCk2AMeEKeUL1w9vILwXGTQaOc= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20201221225401-f8ec65fb9342/go.mod h1:FFZ6UFX3Fw9lMpJPMECTiM18RpJdlDeq+J3WeAB/UDQ= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210113065727-96246f94c52b/go.mod h1:i78kysJodyK4DOu/uASO/Jy5YN3UElVilwJwdxb7/yA= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210115004404-b858dff75698/go.mod h1:YxVJVJmTqhZT6wL7tuXTuO8QpGQIIoirriaHL/mZVLE= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210128021247-54999ac8967c/go.mod h1:oJa6OVGW++7P2tF6gQpjpvpwgNVIWhtqoiAp5htPWMw= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210203030500-419c3f0254fb/go.mod h1:oJa6OVGW++7P2tF6gQpjpvpwgNVIWhtqoiAp5htPWMw= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210207233657-df858fac1d01/go.mod h1:73d60QN1Ax+dcBqX0jrfHMboiunxzfryGtRjyYhRZxs= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210212000225-fcab434cf637/go.mod h1:73d60QN1Ax+dcBqX0jrfHMboiunxzfryGtRjyYhRZxs= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210218073611-1f10236415cc/go.mod h1:neT9Jnf1jioXFi7i5oFNGBQDsKctxzHREoZj60bSSEo= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210304104323-f6ba29b62bc6/go.mod h1:2dTDFJGuEhHAuZ338RjX/VMsBkLiAUFKSva5lOYIgno= -github.com/autopilot3/ap3-shopify-integration-api-go v0.0.0-20210305041336-6bb6793db7be/go.mod h1:MiqlRqsT24QBsZMEotS+czvQhIeHM2mz2oF1cP6qVn8= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200918005617-3556b3adfada/go.mod h1:ABjnqxpIe8fCeIWInMpyY+w09cpOgk60Zj7QqbwrKlA= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200918063010-8c2606f34aab/go.mod h1:nrms7GhT0WwX4pYxc2H9D3KkjcJAhpgqfA3hFR4vbII= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20200930063935-e6ff99d44d6e/go.mod h1:ZoOWnoE8d4+iG4cDVnvi1j9/p7zkAQcO8rAF5sgt1Aw= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20201124023917-e9ea3457d5ec/go.mod h1:C6PU2vrCd1rGz+VKbUpKY2x7yQ+ydqDZb18VdeW3EqE= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20201214052632-5c26f2c9df1a/go.mod h1:d3vdfOd3rAaRbh78UQm1bF6TwII7a+WJXC32J5pBbFY= -github.com/autopilot3/ap3-slack-integration-api-go v0.0.0-20210304221403-963bbf85617c/go.mod h1:2nspPu+3PiPvH1dimmeVOIDjUY+seHSOOZNeBqMaKv4= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200727064716-f73fde95360f/go.mod h1:JFT/sJaAwdxEe1m/r1xT7jl/UVSN5wMDI1TQwrZ9PfQ= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200806001329-7174b404bfb9/go.mod h1:81MpmpnZ/hf6LXhIG5p8uHg18velgfoX12HrW+9QkYE= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200820022005-9dd3a595b303/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200826010648-5616dc798b53/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200902042534-c3e45c8a3509/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200911042427-af150c69b99a/go.mod h1:rSiQVAJV6gnOd+ORwFrDfQVKRxhPV5eHk4dX24VAuVg= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200917024619-ad43455e94ed/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200917044534-cc20ea712188/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200918052414-2ba094d12923/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20200923224544-8b85ee920af6/go.mod h1:KYMl+w+DpO9bfD95gMVf7q95aPvnhnwkzuhK9WQvPQs= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201026101312-483cfc6a6874/go.mod h1:0VAFiBUI6RiY7uLs+ycm0X7RRXoD6V4ymRGCrnkdbwU= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201030030004-594a4e28c194/go.mod h1:0VAFiBUI6RiY7uLs+ycm0X7RRXoD6V4ymRGCrnkdbwU= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201102060630-dba16d09a382/go.mod h1:DhIyIsM++xeQzwkGCcBH7Rb8T4a0RitDXi/QcwZzHdk= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201103053749-17f12d02d1c5/go.mod h1:DhIyIsM++xeQzwkGCcBH7Rb8T4a0RitDXi/QcwZzHdk= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201110000829-516217e50698/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201110051708-a9d06725e406/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201119234500-c0a2a5277036/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201124221731-d8176d6ce66b/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201126055610-13245bbdb72c/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201215060908-53f3c238e499/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20201217062836-8009a35aacf8/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210121032752-b4014fd3c6aa/go.mod h1:K54l884DadHwBAKxkFI9sA34Np/ct6hA5vcwexFfrE8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210205054042-4bc4faee0fe6/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210208222648-e75c3e6874a8/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210209223352-fc271b21668e/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210212025608-7f1a95b3b0ec/go.mod h1:Zz8YzlEFyZg7gNHAHazioHS4yAgY0W6L/KrakC2g/uE= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210224235047-c3f37237388e/go.mod h1:I8MaJvmsERlpUPznoFqt6/CcY7JLhBVH99GQjWniHNA= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20210302062904-34965ad28339/go.mod h1:I8MaJvmsERlpUPznoFqt6/CcY7JLhBVH99GQjWniHNA= -github.com/autopilot3/ap3-types-go v0.0.0-20200302044432-273d21358a88/go.mod h1:MNl6xFXknu/xpGmgpbNomot+LEUS/9nvj85aPVFE1vo= -github.com/autopilot3/ap3-types-go v0.0.0-20200319062058-3b94959eea5a/go.mod h1:MNl6xFXknu/xpGmgpbNomot+LEUS/9nvj85aPVFE1vo= -github.com/autopilot3/ap3-types-go v0.0.0-20200429045909-6d2bb5e451d9/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= -github.com/autopilot3/ap3-types-go v0.0.0-20200510221049-7b8bef8df4ad/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= -github.com/autopilot3/ap3-types-go v0.0.0-20200526050125-0620bfa14203/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= -github.com/autopilot3/ap3-types-go v0.0.0-20200610062123-2056c77dad72/go.mod h1:RxsVL/CTyTmJEcgTrXUmJJz9SzZ8oid1tagNOnFzzlY= -github.com/autopilot3/ap3-types-go v0.0.0-20200628231357-c27bae8024e1/go.mod h1:lq4iOWi44eQKFsi0e3Jy7K2mYjXnnelReCy9plPSAwA= -github.com/autopilot3/ap3-types-go v0.0.0-20200701224433-9c1dda264f76/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200727010014-9dd43aa93518/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200727084006-c5d1d8a9187c/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200731014056-dce9825fb10f/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200803055614-eb02a9950e72/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200811055302-aca569a1af67/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200811074031-ab1b4c3c1083/go.mod h1:NCbOfSEs/+h7/YqoERbxlResySOWHTNaLCU6UJYUPPw= -github.com/autopilot3/ap3-types-go v0.0.0-20200820044920-2b064f5d1604/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= -github.com/autopilot3/ap3-types-go v0.0.0-20200825040736-e59994c09b69/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= -github.com/autopilot3/ap3-types-go v0.0.0-20200827072748-76337307dbe8/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= -github.com/autopilot3/ap3-types-go v0.0.0-20200828062854-107d838e61d2/go.mod h1:X9MOYFnkmfasiHm5QG9DQSuebbeezfJskJAX4sFhP0Q= -github.com/autopilot3/ap3-types-go v0.0.0-20200915230242-09972d9da703/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20200930045057-c61c166f7a82/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201008022710-747ef0f1f350/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201015051556-0d5681868c14/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201103021509-ded08f67e26a/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201104013719-668bb2f7b12d/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201108222504-bd118b828ce0/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201109040640-4e696006eb8a/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201201022337-ea21c7f55af1/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201201053424-e9b85bfe094e/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20201217023615-5d3b97875184/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210111062949-a95b81b54a4c/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210119054146-fc483241e8dc/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210128032842-1a652d386f7e/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210208033231-106c956466bd/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210210011912-c9372bc0fbd4/go.mod h1:xj3B+SxyGukeCaVkw5OrPRvlIY8zNvrmM/yYm1bj+bw= -github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1 h1:xWKkvYQqWjNg4vgcLdWL4CO0MfFTNFPU3MkyFqOblAg= -github.com/autopilot3/ap3-types-go v0.0.0-20210218065039-09caa37222f1/go.mod h1:cYwS01Xb2xuPU8k+CeSI+mMTi7x+uW/BF3IRuj08nhc= -github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210128045733-b99e5d14b8e2/go.mod h1:tfCj5wEQkd7TbqSwH8hF45ClNFCZF4AQswiIg1QtgB0= -github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210222080335-79258f0815b5/go.mod h1:810ttGGp3l63/j1awrZmU5Qfwy7dH878nxRho8ux1Jg= -github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210303043310-2618f85aa49f/go.mod h1:mB9GwrpsVc5sCT59xBOz/I7beCoRIlev0xGTA+j9vrs= -github.com/autopilot3/ap3-webhooks-api-go v0.0.0-20210308025312-b5dd03dc8643/go.mod h1:y8aaUeD5u3fDiND8rnU4daDT0iJe6tIoFR6+4HY1BG4= -github.com/autopilot3/liquid v1.2.5-0.20200626034444-66db265650bc/go.mod h1:CPo816axFRPkWPxYBiqYpEC9bx0q5FaurFmA49VPRIw= -github.com/autopilot3/liquid v1.2.5-0.20201015085226-aded6c24c986/go.mod h1:ZoV90UCJGyvaOP9BXMJpRSZq4ubrGcyuGLr9Wss8CK4= -github.com/autopilot3/liquid v1.2.5-0.20210113224705-ae307ff2cae5/go.mod h1:ZoV90UCJGyvaOP9BXMJpRSZq4ubrGcyuGLr9Wss8CK4= -github.com/autopilot3/recurly v1.0.2-0.20200903052239-79fad6cf33a8/go.mod h1:+zUJmcp1tn9ul7C+mxRGC7oh5GAPkAU8xPhzO+/wrxw= -github.com/autopilot3/recurly v1.0.2-0.20210228222346-7e0af5098d78/go.mod h1:+zUJmcp1tn9ul7C+mxRGC7oh5GAPkAU8xPhzO+/wrxw= -github.com/autopilot3/uasurfer v0.0.0-20200622013708-db551206c683/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= -github.com/autopilot3/uasurfer v0.0.0-20200701072946-9ade43ee0e99/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= -github.com/autopilot3/uasurfer v0.0.0-20200803050647-c07dd9c3ff0d/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= -github.com/autopilot3/uasurfer v0.0.0-20200818074325-9abb717d53b6/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= -github.com/autopilothq/base62 v0.0.0-20180507014355-3a012c7ef818/go.mod h1:H2/Uf5WyB5fyCrNwyOv1aJJSlnreOg12lyqGKSsiXQQ= -github.com/autopilothq/cloudant-go v0.0.0-20191112055603-4280cdf0d6e6/go.mod h1:zeYB2W2OYrYrJgosui1zA67eId/QNVTG5TsaxGJ8xiw= -github.com/autopilothq/cloudant-go v0.0.0-20200325053743-9bb25c2cefe8/go.mod h1:zeYB2W2OYrYrJgosui1zA67eId/QNVTG5TsaxGJ8xiw= -github.com/autopilothq/lg v0.0.0-20180314064927-8d0b6e36e4dd/go.mod h1:OnHOylhx9MEUpYFRv8ppP6roiH1hWnp5pwpWqaD9NSA= -github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= -github.com/aws/aws-lambda-go v0.0.0-20190129190457-dcf76fe64fb6/go.mod h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A= -github.com/aws/aws-lambda-go v1.13.2/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-lambda-go v1.16.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= -github.com/aws/aws-lambda-go v1.17.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= -github.com/aws/aws-lambda-go v1.18.0/go.mod h1:FEwgPLE6+8wcGBTe5cJN3JWurd1Ztm9zN4jsXsjzKKw= -github.com/aws/aws-lambda-go v1.19.1/go.mod h1:jJmlefzPfGnckuHdXX7/80O3BvUUi12XOkbv4w9SGLU= -github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.19.23/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.28.9/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.29.15/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= -github.com/aws/aws-sdk-go v1.29.28/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= -github.com/aws/aws-sdk-go v1.30.22/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.34.25/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= -github.com/aws/aws-sdk-go v1.36.26 h1:710u7Q1xpbzpigh/RPPUXwr/5X/VwCxTXSeam8icgos= -github.com/aws/aws-sdk-go v1.36.26/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/awslabs/aws-lambda-go-api-proxy v0.4.1/go.mod h1:NxIVpehCd5ZcK9B/K39H71DRL1Q7P7ESaRROmSazJ4U= -github.com/awslabs/aws-lambda-go-api-proxy v0.6.0/go.mod h1:hxP3G7NUojx/te+NJok/k9IkANYPlll5kST3fveu16I= -github.com/awslabs/aws-lambda-go-api-proxy v0.8.0/go.mod h1:V3jj7BZnRY8y2QTKSABIwBc+dTjPkX7vLxz61Id7vsQ= -github.com/aymerick/raymond v2.0.2+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d h1:lVmonmpT4UM7d/zLCZU3fBVIaFrjZY6z3Oy6KUM1zBc= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d/go.mod h1:7FVkH4i9RMH3q08VwjvhBNhUR4fXfXLY1bOfqooFWBg= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549 h1:rUbXqKVAvKXC2GXJXjnAu1Zis3VaZvXTlcFfAQ23370= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549/go.mod h1:oB/A/nNpFXy3bobXjLBqigjZEn+yfz85IQrV3svuQ7Y= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e h1:nYFA5tLfVVqasvGovMATkdGaaxgmMRFTSTstMPJBHG0= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e/go.mod h1:C0hY7iUev14MjnQES1k6xMte4P93D4CKoNObuvJj93E= +github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c h1:DnRzrnAExwGen8h7UDHLyiipLwW7kpVUDBKODWJ0My8= +github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c/go.mod h1:5lTcg//toNV8Xkfq5F1I5NBaK6tiMQkzAPspXjdb6Jk= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4 h1:VC9Sdqh8uhKCNY4Y2buGQ9bKZzn7/3O5fV3gMW0lBwk= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4/go.mod h1:+3cmt4dkWXQs2hQ/yh9OBuIKALWhxgZhp3pjoTaBAZQ= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724 h1:UtUfECfof5Ra+uxsiQpjCv6hsGID5lqDqVibM7FX5w4= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724/go.mod h1:Hd5JrYY7rFYM3x3cKMWA4vMYn43dwHNEGHSm+ygPz5g= +github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f h1:VCa2hnlKlRuaNhIZoJ3TIaAdxxuAD9wlaeGIbUeJkOE= +github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f/go.mod h1:WnKayXDQ1cF4TA8iGCUZ1qoDzCakPuOEq5D32T3Hxls= +github.com/aws/aws-sdk-go v1.44.73 h1:dfvXVwi4A5/GxsmtsWI6ryjSIqM9SG0DKyGrB7q0NV8= +github.com/aws/aws-sdk-go v1.44.73/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= 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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/buger/jsonparser v1.0.0/go.mod h1:tgcrVJ81GPSF0mz+0nu1Xaz0fazGPrmmJfJtxjbHhUQ= -github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chromedp/cdproto v0.0.0-20200116234248-4da64dd111ac/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g= -github.com/chromedp/chromedp v0.5.3/go.mod h1:YLdPtndaHQ4rCpSpBG+IPpy9JvX0VD+7aaLxYgYj28w= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/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/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cweill/gotests v1.5.3/go.mod h1:XZYOJkGVkCRoymaIzmp9Wyi3rUgfA3oOnkuljYrjFV8= -github.com/cweill/gotests v1.6.0/go.mod h1:CaRYbxQZGQOxXDvM9l0XJVV2Tjb2E5H53vq+reR2GrA= -github.com/daixiang0/gci v0.2.4/go.mod h1:+AV8KmHTGxxwp/pY84TLQfFKp2vuKXXJVzF3kD/hfR4= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidrjenni/reftools v0.0.0-20191222082827-65925cf01315/go.mod h1:QXiCu8WKyFL/X+NMCmtxoCq/jSOb54R4iDXdjsaYEWA= -github.com/davidrjenni/reftools v0.0.0-20201119194839-01cf781abd5b/go.mod h1:QXiCu8WKyFL/X+NMCmtxoCq/jSOb54R4iDXdjsaYEWA= -github.com/dchest/safefile v0.0.0-20151022103144-855e8d98f185/go.mod h1:cFRxtTwTOJkz2x3rQUNCYKWC93yP1VKjR8NUhqFxZNU= -github.com/denis-tingajkin/go-header v0.3.1/go.mod h1:sq/2IxMhaZX+RRcgHfCRx/m0M5na0fBt4/CRe7Lrji0= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/elastic/go-elasticsearch v0.0.0/go.mod h1:TkBSJBuTyFdBnrNqoPc54FN0vKf5c04IdM4zuStJ7xg= -github.com/elastic/go-elasticsearch/v7 v7.6.0/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= 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/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.5.0/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v0.0.0-20180126034611-783c7ee9c14e/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-chi/chi v0.0.0-20180202194135-e223a795a06a/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-critic/go-critic v0.5.2/go.mod h1:cc0+HvdE3lFpqLecgqMaJcvWWH77sLdBp+wLGPM1Yyo= 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/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +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-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-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= -github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA= -github.com/gocolly/colly/v2 v2.1.0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0= -github.com/gocql/gocql v0.0.0-20200505093417-effcbd8bcf0e/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20200511135441-57b003a04490/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20200519160334-799061058e31/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20200624222514-34081eda590e/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20200815110948-5378c8f664e9/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20201209090715-f485b5f9159c/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gocql/gocql v0.0.0-20201215165327-e49edf966d90 h1:wSTQK2N221ppLtM8g/2/1LOy+4hblTb17U6F+0aDDXo= -github.com/gocql/gocql v0.0.0-20201215165327-e49edf966d90/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= -github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gocql/gocql v1.1.0 h1:ow36yzymDGsuKqnkecq2zR3prFkkbdzC/af5zTyPXNc= +github.com/gocql/gocql v1.1.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/gojp/goreportcard v0.0.0-20191001233754-41818f5fd295/go.mod h1:/DA2Xpp+OaR3EHafQSnT9SKOfbG2NPQR/qp6Qr8AgIw= +github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 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= @@ -955,9 +120,8 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU 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 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= 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= @@ -971,29 +135,14 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W 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 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= -github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= -github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= -github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= -github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= -github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.31.0/go.mod h1:aMQuNCA+NDU5+4jLL5pEuFHoue0IznKE2+/GsFvvs8A= -github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= -github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -1005,12 +154,12 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/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 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.0.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/martian/v3 v3.1.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= @@ -1018,540 +167,165 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf 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-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE= -github.com/google/uuid v0.0.0-20171129191014-dec09d789f3d/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/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/gookit/color v1.2.5/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20180120075819-c0091a029979/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/schema v1.1.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gotk3/gotk3 v0.5.0/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= 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/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/haya14busa/gopkgs v1.0.0/go.mod h1:QFVUm30EQcji7sZtl7ry4E+bwtxx63Ufi7Mf9JDpvpI= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/formBinder v5.0.0+incompatible/go.mod h1:i8kTYUOEstd/S8TG0ChTXQdf4ermA/e8vJX0+QruD9w= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg= -github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= -github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s= -github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jmoiron/sqlx v1.2.1-0.20190826204134-d7d95172beb5/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/johnfercher/maroto v0.27.0/go.mod h1:z/5eo/hH1g+01K4Mm0IVVbixHibtaNbZ9vHf+2H6fpM= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/josharian/impl v0.0.0-20191119165012-6b9658ad00c7/go.mod h1:t4Tr0tn92eq5ISef4cS5plFAMYAqZlAXtgUcKE6y8nw= -github.com/josharian/impl v1.0.0/go.mod h1:SQ6aJMP6xsJpGSD/36IIqrUdigLCYe9bz/9o5AKm6Aw= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v0.0.0-20180128142709-bca911dae073/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 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/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/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= 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/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jung-kurt/gofpdf v1.4.2/go.mod h1:rZsO0wEsunjT/L9stF3fJjYbAHgqNYuQB4B8FWvBck0= -github.com/kardianos/govendor v1.0.9/go.mod h1:yvmR6q9ZZ7nSF5Wvh40v0wfP+3TwwL8zYQp+itoZSVM= -github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kataras/golog v0.0.0-20190624001437-99c81de45f40/go.mod h1:PcaEvfvhGsqwXZ6S3CgCbmjcp+4UDUh2MIfF2ZEul8M= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/iris v11.1.1+incompatible/go.mod h1:ki9XPua5SyAJbIxDdsssxevgGrbpBmmvoQmo/A0IodY= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= 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/klauspost/compress v1.7.4/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg= -github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/knq/sysutil v0.0.0-20191005231841-15668db23d08/go.mod h1:dFWs1zEqDjFtnBXsd1vPOZaLsESovai349994nHx3e0= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= 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.2/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.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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/kyoh86/exportloopref v0.1.7/go.mod h1:h1rDl2Kdj97+Kwh4gdz3ujE7XHmH51Q0lUiZ1z4NLj8= -github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= -github.com/labstack/echo/v4 v4.1.16/go.mod h1:awO+5TzAjvL8XpibdsfXxPgHr+orhtXZJZIQCVjogKI= -github.com/labstack/gommon v0.2.8/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mdempsky/gocode v0.0.0-20191202075140-939b4a677f2f/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= -github.com/mdempsky/gocode v0.0.0-20200405233807-4acdcbdea79d/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= +github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 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/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= +github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= 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/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/jwt v1.0.1 h1:71ivoESdfT2K/qDiw5YwX/3W9/dR7c+m83xiGOj/EZ4= -github.com/nats-io/jwt v1.0.1/go.mod h1:n3cvmLfBfnpV4JJRN7lRYCyZnw48ksGsbThGXEk4w9M= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats-server/v2 v2.1.6/go.mod h1:BL1NOtaBQ5/y97djERRVWNouMW7GT3gxnmbE/eC8u8A= -github.com/nats-io/nats-server/v2 v2.1.7 h1:jCoQwDvRYJy3OpOTHeYfvIPLP46BMeDmH7XEJg/r42I= -github.com/nats-io/nats-server/v2 v2.1.7/go.mod h1:rbRrRE/Iv93O/rUvZ9dh4NfT0Cm9HWjW/BqOWLGgYiE= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nats.go v1.9.2/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= -github.com/nats-io/nats.go v1.10.0 h1:L8qnKaofSfNFbXg0C5F71LdjPRnmQwSsA4ukmkt1TvY= -github.com/nats-io/nats.go v1.10.0/go.mod h1:AjGArbfyR50+afOUotNX2Xs5SYHf+CoOa5HH1eEl2HE= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.4/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= -github.com/nats-io/nkeys v0.2.0 h1:WXKF7diOaPU9cJdLD7nuzwasQy9vT1tBqzXZZf3AMJM= -github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a h1:lem6QCvxR0Y28gth9P+wV2K/zYUUAkJ+55U8cpS0p5I= +github.com/nats-io/nats-server/v2 v2.8.1 h1:WZ9m/d8rklkWo6opo3X927vXnuaE00VEEl5zXcpL6qw= +github.com/nats-io/nats.go v1.16.0 h1:zvLE7fGBQYW6MWaFaRdsgm9qT39PJDQoju+DS8KsO1g= +github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= +github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.0.0-20200811152831-6cf413ae40e0/go.mod h1:wBEpHwM2OdmeNpdCvRPUlkEbBuaFmcK4Wv8Q7FuGW3c= -github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nyaruka/phonenumbers v1.0.66 h1:OVFSLMXhNR7CS3yq6ekm2uggokeggwJVO31h7OgB3OU= -github.com/nyaruka/phonenumbers v1.0.66/go.mod h1:sDaTZ/KPX5f8qyV9qN+hIm+4ZBARJrupC6LuhshJq1U= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= -github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= -github.com/onsi/ginkgo v0.0.0-20180119174237-747514b53ddd/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/nyaruka/phonenumbers v1.1.0 h1:OvNAOAl4A9a2kNpzziITbUVH4bBBeKHkHl0llPmkxaA= +github.com/nyaruka/phonenumbers v1.1.0/go.mod h1:cGaEsOrLjIL0iKGqJR5Rfywy86dSkbApEpXuM9KySNA= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/oschwald/maxminddb-golang v1.6.0/go.mod h1:DUJFucBg2cvqx42YmDa/+xHvb0elJtOm3o4aFQ/nb/w= -github.com/oschwald/maxminddb-golang v1.8.0/go.mod h1:RXZtst0N6+FY/3qCNmZMBApR19cdQj43/NM9VkrNAis= -github.com/osteele/liquid v1.2.4/go.mod h1:jhgMyQFVoV0grH2MKvpMbgxFSBezOoXUbgiwnYrKJ2c= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= 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/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= 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 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= +github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.13.0 h1:vJlpe9wPgDRM1Z+7Wj3zUUjY1nr6/1jNKyl7llliccg= -github.com/prometheus/common v0.13.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +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.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= +github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= -github.com/quasilyte/go-ruleguard v0.2.0/go.mod h1:2RT/tf0Ce0UDj5y243iWKosQogJd8+1G3Rs2fxmlYnw= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/recurly/recurly-client-go v0.0.0-20200518190456-e30417f663e1/go.mod h1:Ynmb2McBp8LuX05ReX2/nWG32V990ILt8HLxivNi+tI= -github.com/recurly/recurly-client-go/v3 v3.7.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= -github.com/recurly/recurly-client-go/v3 v3.8.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= -github.com/richardlehane/mscfb v1.0.3/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= -github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/recurly/recurly-client-go/v3 v3.14.0 h1:OHsMM8cvzLwuTD9nmMpgee7elaqIiDGh5W9blIOUggk= +github.com/recurly/recurly-client-go/v3 v3.14.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/godef v1.1.1/go.mod h1:oEo1eMy1VUEHUzUIX4F7IqvMJRiz9UId44mvnR8oPlQ= -github.com/rogpeppe/godef v1.1.2/go.mod h1:WtY9A/ovuQ+UakAJ1/CEqwwulX/WJjb2kgkokCHi/GY= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/ryancurrah/gomodguard v1.1.0/go.mod h1:4O8tr7hBODaGE6VIhfJDHcwzh5GUccKSJBU0UMXJFVM= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/securego/gosec/v2 v2.4.0/go.mod h1:0/Q4cjmlFDfDUj1+Fib61sc+U5IQb2w+Iv9/C3wPVko= -github.com/sendgrid/rest v2.4.1+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= -github.com/sendgrid/rest v2.6.0+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= -github.com/sendgrid/rest v2.6.2+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= -github.com/sendgrid/sendgrid-go v3.5.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= -github.com/sendgrid/sendgrid-go v3.6.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= -github.com/sendgrid/sendgrid-go v3.6.1+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= -github.com/sendgrid/sendgrid-go v3.7.2+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE= -github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa/go.mod h1:Yjr3bdWaVWyME1kha7X0jsz3k2DgXNa1Pj3XGyUAbx8= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= -github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= 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/slack-go/slack v0.6.6/go.mod h1:FGqNzJBmxIsZURAxh2a8D21AnOVvvXZvGligs4npPUM= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/go-diff v0.6.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/sourcegraph/go-webkit2 v0.0.0-20170811231113-ade305cf91f4/go.mod h1:MeIulxHy//0+TzvJV9+kG4UZCNb8f8WIR/rU2CrnTQI= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/sqs/gojs v0.0.0-20170522041006-12d0b3282819/go.mod h1:M7hbdQaz37Cdb0vquiwCsvKKkDCCbKQ+T04iUVtXIqE= -github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4= -github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU= -github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= 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 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= -github.com/tealeg/xlsx/v3 v3.2.3/go.mod h1:0hGmAEoZ48SS1ZAE6eqZJkJVXgOMY+8a33vjXa8S8HA= -github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= -github.com/tetafro/godot v0.4.8/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= -github.com/tidwall/gjson v1.3.2/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= -github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= -github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= -github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.0.1/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU= -github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= -github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= -github.com/uber/jaeger-client-go v2.17.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-client-go v2.24.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= -github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-lib v2.0.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/uber/jaeger-lib v2.3.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ= -github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/ugorji/go v0.0.0-20180129160544-d2b24cf3d3b4/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/urfave/negroni v0.0.0-20180130044549-22c5532ea862/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.15.1/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/quicktemplate v1.6.2/go.mod h1:mtEJpQtUiBV0SHhMX6RtiJtqxncgrfmjcUy5T68X8TM= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xuri/efp v0.0.0-20200605144744-ba689101faaf/go.mod h1:uBiSUepVYMhGTfDeBKKasV4GpgBlzJ46gXUBAqV8qLk= +github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= +github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= +github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= 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= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zmb3/gogetdoc v0.0.0-20190228002656-b37376c5da6a/go.mod h1:ofmGw6LrMypycsiWcyug6516EXpIxSbZ+uI9ppGypfY= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.2.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= -go.mongodb.org/mongo-driver v1.3.3/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= -go.mongodb.org/mongo-driver v1.3.5/go.mod h1:Ual6Gkco7ZGQw8wE1t4tLnvBsf6yVSM60qW6TgOeJ5c= -go.mongodb.org/mongo-driver v1.4.0/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs= -go.mongodb.org/mongo-driver v1.4.1/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs= -go.mongodb.org/mongo-driver v1.4.2/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= -go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= -go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= -go.mongodb.org/mongo-driver v1.4.6 h1:rh7GdYmDrb8AQSkF8yteAus8qYOgOASWDOv1BWqBXkU= -go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4= +go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8= 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.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/zap v1.22.0 h1:Zcye5DUgBloQ9BaT4qc9BnjOFog5TvBSAGkJ3Nf70c0= +go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/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-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 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= @@ -1563,10 +337,7 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 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/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190507092727-e4e5bf290fec/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200801110659-972c09e46d76/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= @@ -1577,8 +348,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl 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/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/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= @@ -1587,276 +356,171 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB 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.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/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-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/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-20190125091013-d26f9f9a57f3/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-20190327091125-710a502c58a2/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-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 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-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/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-20200319234117-63522dbf7eec/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-20200421231249-e086a090c8fd/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-20200520004742-59133d7f0dd7/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-20200602114024-627f9648deb9/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-20200904194848-62affa334b73/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-20201029221708-28c70e62bb1d/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/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-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/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.0.0-20220708220712-1185a9018129 h1:vucSRfWwTsoXro7P+3Cjlr6flUMtzCwzlvkxEQtHHB0= +golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210113205817-d3ed898aa8a3/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +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/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-20190412183630-56d357773e84/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-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/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-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190222072716-a9d3bda3a223/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-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/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-20190531175056-4c3a928424d2/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-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191224085550-c709ea063b76/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-20200116001909-b77594299b42/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-20200317113312-5766fd39f98d/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-20200420163511-1957bb5e6d1f/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-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/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-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916084744-dbad9cb7cb7a/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +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-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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/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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/time v0.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181130195746-895048a75ecf/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181207195948-8634b1ecd393/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/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-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 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-20190311215038-5c2858a9cfe5/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-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190408220357-e5b8258f4918/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/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-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 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-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191109212701-97ad0ed33101/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/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-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 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-20200103221440-774c71fcf114/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-20200117220505-0cba7a3a9ee9/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-20200212213342-7a21e308cf6c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200213224642-88e652f7a869/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-20200226224502-204d844ad48d/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-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200321224714-0d839f3cf2ed/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200410194907-79a7a3126eef/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 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-20200514211350-d0dc4d41b76d/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-20200519015757-0d0afa43d58a/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200609164405-eb789aa7ce50/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200617212913-87be026d3888/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-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200701041122-1837592efa10/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 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-20200809012840-6f4f008689da/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200916225323-c537a342ddf6/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201029225241-186a7436c9f3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210115202250-e0d201561e39/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools/gopls v0.3.2/go.mod h1:k7Vveg58twOi4lDvLKpDIC04HGw8JJmRDBtJuSPGuI8= 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 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= 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= @@ -1873,24 +537,17 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M 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.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.38.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 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/appengine v1.6.7/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-20190404172233-64821d5d2107/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-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= 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= @@ -1906,36 +563,22 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG 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-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200319113533-08878b785e9c/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-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 v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200916143405-f6a2fa72f0c4/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210202153253-cf70463f6119/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210211221406-4ccc9a5e4183 h1:5YmF1NDDcUX9p0CJqW+GQiLW0HHe7ZW5K6lsFk6mJeA= -google.golang.org/genproto v0.0.0-20210211221406-4ccc9a5e4183/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa h1:u5ndLsuhUo/bFuumgRSYgK92eCf5IEAogxgNBqAjNqs= +google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/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= @@ -1944,12 +587,10 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa 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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.32.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.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= 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= @@ -1959,42 +600,34 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 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 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= 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.27.1/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 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= 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-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +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= @@ -2002,17 +635,6 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -honnef.co/go/tools v0.0.1-2020.1.5/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY= -honnef.co/go/tools v0.1.0 h1:AWNL1W1i7f0wNZ8VwOKNJ0sliKvOF/adn0EHenfUh+c= -honnef.co/go/tools v0.1.0/go.mod h1:XtegFAyX/PfluP4921rXU5IkjkqBCDnUq4W8VCIoKvM= -mvdan.cc/gofumpt v0.0.0-20200709182408-4fd085cb6d5f/go.mod h1:9VQ397fNXEnF84t90W4r4TRCQK+pg9f8ugVfyj+S26w= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= -mvdan.cc/xurls/v2 v2.1.0/go.mod h1:5GrSd9rOnKOpZaji1OZLYL/yeAAtGDlo/cFe+8K5n8E= 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/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= From 5e2c6b0cd54afb577b21b2d52bc0912f2ec0b9ec Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Thu, 18 Aug 2022 16:47:59 +1000 Subject: [PATCH 33/96] fix go mod --- go.mod | 9 +++++++-- go.sum | 23 +++++++++++++++-------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 67321d14..5bba1c51 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.7.1 + github.com/stretchr/testify v1.7.2 golang.org/x/text v0.3.7 gopkg.in/yaml.v2 v2.4.0 ) @@ -33,6 +33,7 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/montanaflynn/stats v0.6.6 // indirect + github.com/nats-io/jwt/v2 v2.3.0 // indirect github.com/nats-io/nats.go v1.16.0 // indirect github.com/nats-io/nkeys v0.3.0 // indirect github.com/nats-io/nuid v1.0.1 // indirect @@ -45,6 +46,8 @@ require ( github.com/prometheus/common v0.34.0 // indirect github.com/prometheus/procfs v0.7.3 // indirect github.com/recurly/recurly-client-go/v3 v3.14.0 // indirect + github.com/stretchr/objx v0.2.0 // indirect + github.com/tidwall/pretty v1.2.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect @@ -52,17 +55,19 @@ require ( github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect go.mongodb.org/mongo-driver v1.10.1 // indirect - go.uber.org/atomic v1.9.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.22.0 // indirect golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa // indirect google.golang.org/grpc v1.47.0 // indirect google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 22ce1e44..e073f8f5 100644 --- a/go.sum +++ b/go.sum @@ -199,6 +199,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv 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.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= @@ -217,7 +218,8 @@ github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v6 github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= 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/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a h1:lem6QCvxR0Y28gth9P+wV2K/zYUUAkJ+55U8cpS0p5I= +github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= +github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/nats-server/v2 v2.8.1 h1:WZ9m/d8rklkWo6opo3X927vXnuaE00VEEl5zXcpL6qw= github.com/nats-io/nats.go v1.16.0 h1:zvLE7fGBQYW6MWaFaRdsgm9qT39PJDQoju+DS8KsO1g= github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= @@ -270,18 +272,21 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx 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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= 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.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= @@ -308,8 +313,8 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= @@ -472,7 +477,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 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.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w= +golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= +golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= @@ -610,8 +616,9 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw 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 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= 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/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= From eacc0db10f3b45a8e57ac0398b9ac462b4b4c60a Mon Sep 17 00:00:00 2001 From: HenryHK Date: Fri, 2 Sep 2022 11:21:33 +1000 Subject: [PATCH 34/96] we want to check every condition in condition expressions for FindVariables --- expressions/expressions.y | 14 ++++++- expressions/y.go | 88 ++++++++++++++++++++++----------------- 2 files changed, 61 insertions(+), 41 deletions(-) diff --git a/expressions/expressions.y b/expressions/expressions.y index 68aa08bf..4e020832 100644 --- a/expressions/expressions.y +++ b/expressions/expressions.y @@ -210,13 +210,23 @@ cond: | cond AND rel { fa, fb := $1, $3 $$ = func(ctx Context) values.Value { - return values.ValueOf(fa(ctx).Test() && fb(ctx).Test()) + if _, ok := ctx.(*varsContext); ok { + a := fa(ctx).Test() + b := fb(ctx).Test() + return values.ValueOf(a && b) + } + return values.ValueOf(fa(ctx).Test() && fb(ctx).Test()) } } | cond OR rel { fa, fb := $1, $3 $$ = func(ctx Context) values.Value { - return values.ValueOf(fa(ctx).Test() || fb(ctx).Test()) + if _, ok := ctx.(*varsContext); ok { + a := fa(ctx).Test() + b := fb(ctx).Test() + return values.ValueOf(a || b) + } + return values.ValueOf(fa(ctx).Test() || fb(ctx).Test()) } } ; diff --git a/expressions/y.go b/expressions/y.go index 531a3320..d8302e03 100644 --- a/expressions/y.go +++ b/expressions/y.go @@ -94,7 +94,7 @@ const yyErrCode = 2 const yyInitialStackSize = 16 //line yacctab:1 -var yyExca = [...]int{ +var yyExca = [...]int8{ -1, 1, 1, -1, -2, 0, @@ -110,7 +110,7 @@ const yyPrivate = 57344 const yyLast = 104 -var yyAct = [...]int{ +var yyAct = [...]int8{ 9, 74, 46, 41, 8, 87, 78, 23, 14, 15, 18, 10, 11, 25, 42, 3, 4, 5, 6, 25, 37, 58, 10, 11, 40, 42, 45, 50, 51, 52, @@ -124,7 +124,7 @@ var yyAct = [...]int{ 17, 22, 67, 63, } -var yyPact = [...]int{ +var yyPact = [...]int16{ 7, -1000, 60, 76, 89, 71, 18, -1000, 19, 49, -1000, -1000, 18, -1000, 18, 18, -6, 14, -3, -1000, 10, 38, 1, 39, 83, -1000, 18, 18, 18, 18, @@ -136,12 +136,12 @@ var yyPact = [...]int{ 88, 86, 6, -1000, -25, -1000, -1000, -1000, } -var yyPgo = [...]int{ +var yyPgo = [...]int8{ 0, 0, 71, 4, 94, 1, 103, 102, 101, 2, 100, 99, 3, 98, 97, 10, 96, } -var yyR1 = [...]int{ +var yyR1 = [...]int8{ 0, 16, 16, 16, 16, 16, 10, 11, 11, 12, 12, 8, 9, 9, 15, 13, 6, 6, 5, 5, 14, 14, 14, 1, 1, 1, 1, 1, 3, 3, @@ -149,7 +149,7 @@ var yyR1 = [...]int{ 2, 4, 4, 4, } -var yyR2 = [...]int{ +var yyR2 = [...]int8{ 0, 2, 5, 3, 3, 3, 2, 3, 1, 0, 3, 2, 0, 3, 1, 4, 5, 1, 1, 1, 0, 2, 3, 1, 1, 2, 4, 3, 1, 3, @@ -157,7 +157,7 @@ var yyR2 = [...]int{ 3, 1, 3, 3, } -var yyChk = [...]int{ +var yyChk = [...]int16{ -1000, -16, -4, 8, 9, 10, 11, -2, -3, -1, 4, 5, 29, 25, 17, 18, 5, -10, -15, 4, -13, 5, -8, -1, 22, 7, 31, 12, 13, 24, @@ -169,7 +169,7 @@ var yyChk = [...]int{ 6, 20, -1, 4, -5, 4, 5, 30, } -var yyDef = [...]int{ +var yyDef = [...]int8{ 0, -2, 0, 0, 0, 0, 0, 41, 33, 28, 23, 24, 0, 1, 0, 0, 0, 0, 9, 14, 0, 0, 0, 12, 0, 25, 0, 0, 0, 0, @@ -181,7 +181,7 @@ var yyDef = [...]int{ 0, 0, 32, 22, 0, 18, 19, 16, } -var yyTok1 = [...]int{ +var yyTok1 = [...]int8{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -197,12 +197,12 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 22, } -var yyTok2 = [...]int{ +var yyTok2 = [...]int8{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, } -var yyTok3 = [...]int{ +var yyTok3 = [...]int8{ 0, } @@ -284,9 +284,9 @@ func yyErrorMessage(state, lookAhead int) string { expected := make([]int, 0, 4) // Look for shiftable tokens. - base := yyPact[state] + base := int(yyPact[state]) for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { - if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { + if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok { if len(expected) == cap(expected) { return res } @@ -296,13 +296,13 @@ func yyErrorMessage(state, lookAhead int) string { if yyDef[state] == -2 { i := 0 - for yyExca[i] != -1 || yyExca[i+1] != state { + for yyExca[i] != -1 || int(yyExca[i+1]) != state { i += 2 } // Look for tokens that we accept or reduce. for i += 2; yyExca[i] >= 0; i += 2 { - tok := yyExca[i] + tok := int(yyExca[i]) if tok < TOKSTART || yyExca[i+1] == 0 { continue } @@ -333,30 +333,30 @@ func yylex1(lex yyLexer, lval *yySymType) (char, token int) { token = 0 char = lex.Lex(lval) if char <= 0 { - token = yyTok1[0] + token = int(yyTok1[0]) goto out } if char < len(yyTok1) { - token = yyTok1[char] + token = int(yyTok1[char]) goto out } if char >= yyPrivate { if char < yyPrivate+len(yyTok2) { - token = yyTok2[char-yyPrivate] + token = int(yyTok2[char-yyPrivate]) goto out } } for i := 0; i < len(yyTok3); i += 2 { - token = yyTok3[i+0] + token = int(yyTok3[i+0]) if token == char { - token = yyTok3[i+1] + token = int(yyTok3[i+1]) goto out } } out: if token == 0 { - token = yyTok2[1] /* unknown char */ + token = int(yyTok2[1]) /* unknown char */ } if yyDebug >= 3 { __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) @@ -411,7 +411,7 @@ yystack: yyS[yyp].yys = yystate yynewstate: - yyn = yyPact[yystate] + yyn = int(yyPact[yystate]) if yyn <= yyFlag { goto yydefault /* simple state */ } @@ -422,8 +422,8 @@ yynewstate: if yyn < 0 || yyn >= yyLast { goto yydefault } - yyn = yyAct[yyn] - if yyChk[yyn] == yytoken { /* valid shift */ + yyn = int(yyAct[yyn]) + if int(yyChk[yyn]) == yytoken { /* valid shift */ yyrcvr.char = -1 yytoken = -1 yyVAL = yyrcvr.lval @@ -436,7 +436,7 @@ yynewstate: yydefault: /* default state action */ - yyn = yyDef[yystate] + yyn = int(yyDef[yystate]) if yyn == -2 { if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) @@ -445,18 +445,18 @@ yydefault: /* look through exception table */ xi := 0 for { - if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { + if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate { break } xi += 2 } for xi += 2; ; xi += 2 { - yyn = yyExca[xi+0] + yyn = int(yyExca[xi+0]) if yyn < 0 || yyn == yytoken { break } } - yyn = yyExca[xi+1] + yyn = int(yyExca[xi+1]) if yyn < 0 { goto ret0 } @@ -478,10 +478,10 @@ yydefault: /* find a state where "error" is a legal shift action */ for yyp >= 0 { - yyn = yyPact[yyS[yyp].yys] + yyErrCode + yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode if yyn >= 0 && yyn < yyLast { - yystate = yyAct[yyn] /* simulate a shift of "error" */ - if yyChk[yystate] == yyErrCode { + yystate = int(yyAct[yyn]) /* simulate a shift of "error" */ + if int(yyChk[yystate]) == yyErrCode { goto yystack } } @@ -517,7 +517,7 @@ yydefault: yypt := yyp _ = yypt // guard against "declared and not used" - yyp -= yyR2[yyn] + yyp -= int(yyR2[yyn]) // yyp is now the index of $0. Perform the default action. Iff the // reduced production is ε, $1 is possibly out of range. if yyp+1 >= len(yyS) { @@ -528,16 +528,16 @@ yydefault: yyVAL = yyS[yyp+1] /* consult goto table to find next state */ - yyn = yyR1[yyn] - yyg := yyPgo[yyn] + yyn = int(yyR1[yyn]) + yyg := int(yyPgo[yyn]) yyj := yyg + yyS[yyp].yys + 1 if yyj >= yyLast { - yystate = yyAct[yyg] + yystate = int(yyAct[yyg]) } else { - yystate = yyAct[yyj] - if yyChk[yystate] != -yyn { - yystate = yyAct[yyg] + yystate = int(yyAct[yyj]) + if int(yyChk[yystate]) != -yyn { + yystate = int(yyAct[yyg]) } } // dummy call; replaced with literal code @@ -834,15 +834,25 @@ yydefault: { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { + if _, ok := ctx.(*varsContext); ok { + a := fa(ctx).Test() + b := fb(ctx).Test() + return values.ValueOf(a && b) + } return values.ValueOf(fa(ctx).Test() && fb(ctx).Test()) } } case 43: yyDollar = yyS[yypt-3 : yypt+1] -//line expressions.y:216 +//line expressions.y:221 { fa, fb := yyDollar[1].f, yyDollar[3].f yyVAL.f = func(ctx Context) values.Value { + if _, ok := ctx.(*varsContext); ok { + a := fa(ctx).Test() + b := fb(ctx).Test() + return values.ValueOf(a || b) + } return values.ValueOf(fa(ctx).Test() || fb(ctx).Test()) } } From b3bfe8e6e23cfa910d22511947407ae6ca095c49 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Fri, 2 Sep 2022 11:23:07 +1000 Subject: [PATCH 35/96] lint --- expressions/expressions.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expressions/expressions.y b/expressions/expressions.y index 4e020832..24d63b8d 100644 --- a/expressions/expressions.y +++ b/expressions/expressions.y @@ -210,7 +210,7 @@ cond: | cond AND rel { fa, fb := $1, $3 $$ = func(ctx Context) values.Value { - if _, ok := ctx.(*varsContext); ok { + if _, ok := ctx.(*varsContext); ok { a := fa(ctx).Test() b := fb(ctx).Test() return values.ValueOf(a && b) From fca3c3f1e28ee62cdf641ae422bd480ad91046b8 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 8 Sep 2022 18:49:29 +1000 Subject: [PATCH 36/96] add ability to only render allowed merge tags --- .gitignore | 1 + cmd/liquid/main_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ engine.go | 6 +++++- render/config.go | 7 ++++++- render/render.go | 38 ++++++++++++++++++++++++++++++-------- 5 files changed, 83 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 7abd1c9e..91e12ed0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store *.output *.out /liquid diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index 15caf6a3..1fedca46 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -4,6 +4,7 @@ import ( "bytes" "testing" + "github.com/autopilot3/liquid" "github.com/stretchr/testify/require" ) @@ -46,3 +47,43 @@ func TestMain(t *testing.T) { require.NoError(t, run([]string{"file1", "file2"})) require.Equal(t, 1, exitCode) } + +func TestRenderAllowedTags(t *testing.T) { + + bindings := map[string]interface{}{ + "people": map[string]interface{}{ + "name": "bob", + "email": "bob@example.com", + }, + } + engine := liquid.NewEngine() + engine.SetAllowedTags(map[string]struct{}{ + "{{ people.name }}": {}, + }) + tests := []struct { + name string + src string + expected string + }{ + { + "Allow name only", + "Hello {{ people.name }}, your email is {{ people.email }}!", + "Hello bob, your email is {{ people.email }}!", + }, + } + for _, tt := range tests { + tmpl, err := engine.ParseString(tt.src) + if err != nil { + t.Fatal(err) + } + t.Run(tt.name, func(t *testing.T) { + out, err := tmpl.RenderString(bindings) + if err != nil { + t.Fatal(err) + } + if out != tt.expected { + t.Errorf("TestRenderAllowedTags() = %v, want %v", out, tt.expected) + } + }) + } +} diff --git a/engine.go b/engine.go index 2acc0d4b..e14c4b24 100644 --- a/engine.go +++ b/engine.go @@ -25,6 +25,11 @@ import ( // An engine can be configured with additional filters and tags. type Engine struct{ cfg render.Config } +func (e *Engine) SetAllowedTags(allowedTags map[string]struct{}) *Engine { + e.cfg.AllowedTags = allowedTags + return e +} + // NewEngine returns a new Engine. func NewEngine() *Engine { engine := &Engine{render.NewConfig()} @@ -260,7 +265,6 @@ func (e *Engine) RegisterBlock(name string, td Renderer) { // * https://github.com/autopilot3/liquid/blob/master/filters/filters.go // // * https://github.com/osteele/gojekyll/blob/master/filters/filters.go -// func (e *Engine) RegisterFilter(name string, fn interface{}) { e.cfg.AddFilter(name, fn) } diff --git a/render/config.go b/render/config.go index 070d67b7..14174ae2 100644 --- a/render/config.go +++ b/render/config.go @@ -8,6 +8,7 @@ import ( type Config struct { parser.Config grammar + AllowedTags map[string]struct{} } type grammar struct { @@ -21,5 +22,9 @@ func NewConfig() Config { tags: map[string]TagCompiler{}, blockDefs: map[string]*blockSyntax{}, } - return Config{parser.NewConfig(g), g} + return Config{ + parser.NewConfig(g), + g, + nil, + } } diff --git a/render/render.go b/render/render.go index b475d398..dc986b76 100644 --- a/render/render.go +++ b/render/render.go @@ -71,15 +71,37 @@ func (n *RawNode) render(w *trimWriter, ctx nodeContext) Error { } func (n *ObjectNode) render(w *trimWriter, ctx nodeContext) Error { - w.TrimLeft(n.TrimLeft) - value, err := ctx.Evaluate(n.expr) - if err != nil { - return wrapRenderError(err, n) - } - if err := wrapRenderError(writeObject(w, value), n); err != nil { - return err + var ( + value interface{} + err error + ) + if len(ctx.config.AllowedTags) != 0 { + if _, ok := ctx.config.AllowedTags[n.Source]; ok { + w.TrimLeft(n.TrimLeft) + value, err = ctx.Evaluate(n.expr) + if err != nil { + return wrapRenderError(err, n) + } + if err := wrapRenderError(writeObject(w, value), n); err != nil { + return err + } + w.TrimRight(n.TrimRight) + } else { + w.TrimLeft(n.TrimLeft) + writeObject(w, n.Source) + w.TrimRight(n.TrimRight) + } + } else { + w.TrimLeft(n.TrimLeft) + value, err = ctx.Evaluate(n.expr) + if err != nil { + return wrapRenderError(err, n) + } + if err := wrapRenderError(writeObject(w, value), n); err != nil { + return err + } + w.TrimRight(n.TrimRight) } - w.TrimRight(n.TrimRight) return nil } From 203ed38c6ae0218d87a79b9542e2711513220440 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Fri, 9 Sep 2022 13:40:20 +1000 Subject: [PATCH 37/96] MD5 and SHA1 filters --- .gitignore | 1 + filters/standard_filters.go | 42 +++++++++++++++++++++++++++++++- filters/standard_filters_test.go | 19 ++++++++++++++- 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 91e12ed0..97a203bb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *.out /liquid *.test +.idea \ No newline at end of file diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 35f75d77..46718b2e 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -2,8 +2,11 @@ package filters import ( + "crypto/md5" // #nosec G501 + "crypto/sha1" "encoding/json" "fmt" + "hash" "html" "math" "net/url" @@ -13,8 +16,9 @@ import ( "time" "unicode" - "github.com/autopilot3/liquid/values" "github.com/osteele/tuesday" + + "github.com/autopilot3/liquid/values" ) // A FilterDictionary holds filters. @@ -213,6 +217,42 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("type", func(value interface{}) string { return fmt.Sprintf("%T", value) }) + + // Hash filters + + // #nosec G401 + fd.AddFilter("md5", hashFilter(md5.New())) + fd.AddFilter("sha1", hashFilter(sha1.New())) +} + +func hashFilter(h hash.Hash) func(value interface{}) string { + return func(value interface{}) string { + var vBytes []byte + switch v := value.(type) { + case string: + vBytes = []byte(v) + case int, int8, int16, int32, int64, float32, float64, bool: + vBytes = []byte(fmt.Sprint(v)) + default: + return "" + } + h.Reset() + if _, err := h.Write(vBytes); err == nil { + return fmt.Sprintf("%x", h.Sum(nil)) + } + return "" + } +} + +func toBytes(value interface{}) []byte { + switch v := value.(type) { + case string: + return []byte(v) + case int, int8, int16, int32, int64, float32, float64, bool: + return []byte(fmt.Sprint(v)) + default: + return nil + } } func joinFilter(a []interface{}, sep func(string) string) interface{} { diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 87486d47..9e3eb96b 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -8,8 +8,9 @@ import ( yaml "gopkg.in/yaml.v2" - "github.com/autopilot3/liquid/expressions" "github.com/stretchr/testify/require" + + "github.com/autopilot3/liquid/expressions" ) var filterTests = []struct { @@ -188,6 +189,22 @@ var filterTests = []struct { {`map | inspect`, `{"a":1}`}, {`1 | type`, `int`}, {`"1" | type`, `string`}, + + // Hash filters + + {`"Take my protein pills and put my helmet on" | md5`, "505a1a407670a93d9ef2cf34960002f9"}, + {`"" | md5`, "d41d8cd98f00b204e9800998ecf8427e"}, + {`100 | md5`, "f899139df5e1059396431415e770c6dd"}, + {`100.01 | md5`, "e74f9831767648ecdd211c3f8cd85b86"}, + {`true | md5`, "b326b5062b2f0e69046810717534cb09"}, + {`false | md5`, "68934a3e9455fa72420237eb05902327"}, + + {`"Take my protein pills and put my helmet on" | sha1`, "07f3b4973325af9109399ead74f2180bcaefa4c0"}, + {`"" | sha1`, "da39a3ee5e6b4b0d3255bfef95601890afd80709"}, + {`100 | sha1`, "310b86e0b62b828562fc91c7be5380a992b2786a"}, + {`100.01 | sha1`, "2cf9b40e62dd0bff2c57d179bfc99674d25f3c33"}, + {`true | sha1`, "5ffe533b830f08a0326348a9160afafc8ada44db"}, + {`false | sha1`, "7cb6efb98ba5972a9b5090dc2e517fe14d12cb04"}, } var filterTestBindings = map[string]interface{}{ From 39122cde2c378b72b7e4a9ce3aa5928d1d22ef5b Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Sun, 11 Sep 2022 20:03:11 +1000 Subject: [PATCH 38/96] SHA256 Filter --- filters/standard_filters.go | 12 +++++++----- filters/standard_filters_test.go | 9 +++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 46718b2e..fd916856 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -4,6 +4,7 @@ package filters import ( "crypto/md5" // #nosec G501 "crypto/sha1" + "crypto/sha256" "encoding/json" "fmt" "hash" @@ -221,22 +222,23 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo // Hash filters // #nosec G401 - fd.AddFilter("md5", hashFilter(md5.New())) - fd.AddFilter("sha1", hashFilter(sha1.New())) + fd.AddFilter("md5", hashFilter(func() hash.Hash { return md5.New() })) + fd.AddFilter("sha1", hashFilter(func() hash.Hash { return sha1.New() })) + fd.AddFilter("sha256", hashFilter(func() hash.Hash { return sha256.New() })) } -func hashFilter(h hash.Hash) func(value interface{}) string { +func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { return func(value interface{}) string { var vBytes []byte switch v := value.(type) { case string: vBytes = []byte(v) - case int, int8, int16, int32, int64, float32, float64, bool: + case int, int8, int16, int32, int64, float32, float64: vBytes = []byte(fmt.Sprint(v)) default: return "" } - h.Reset() + h := hashFn() if _, err := h.Write(vBytes); err == nil { return fmt.Sprintf("%x", h.Sum(nil)) } diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 9e3eb96b..ad67eac6 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -196,15 +196,16 @@ var filterTests = []struct { {`"" | md5`, "d41d8cd98f00b204e9800998ecf8427e"}, {`100 | md5`, "f899139df5e1059396431415e770c6dd"}, {`100.01 | md5`, "e74f9831767648ecdd211c3f8cd85b86"}, - {`true | md5`, "b326b5062b2f0e69046810717534cb09"}, - {`false | md5`, "68934a3e9455fa72420237eb05902327"}, {`"Take my protein pills and put my helmet on" | sha1`, "07f3b4973325af9109399ead74f2180bcaefa4c0"}, {`"" | sha1`, "da39a3ee5e6b4b0d3255bfef95601890afd80709"}, {`100 | sha1`, "310b86e0b62b828562fc91c7be5380a992b2786a"}, {`100.01 | sha1`, "2cf9b40e62dd0bff2c57d179bfc99674d25f3c33"}, - {`true | sha1`, "5ffe533b830f08a0326348a9160afafc8ada44db"}, - {`false | sha1`, "7cb6efb98ba5972a9b5090dc2e517fe14d12cb04"}, + + {`"Take my protein pills and put my helmet on" | sha256`, "b19c3d04c1b80ae9acd15227c0dde0cb6f5755995afa3c846a3473ac42de6f63"}, + {`"" | sha256`, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, + {`100 | sha256`, "ad57366865126e55649ecb23ae1d48887544976efea46a48eb5d85a6eeb4d306"}, + {`100.01 | sha256`, "4b46711a09b65af6dcbbc4caab38ab58e06d08eb75fbeb8e367fdd1ccc289fba"}, } var filterTestBindings = map[string]interface{}{ From 2b550c14ddc9e36f812214aeeafdffd0cde36630 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Sun, 11 Sep 2022 20:38:11 +1000 Subject: [PATCH 39/96] HMAC MD5 --- filters/standard_filters.go | 38 +++++++++++++++++++++++--------- filters/standard_filters_test.go | 15 +++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index fd916856..dc29baa7 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -2,6 +2,7 @@ package filters import ( + "crypto/hmac" "crypto/md5" // #nosec G501 "crypto/sha1" "crypto/sha256" @@ -222,20 +223,17 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo // Hash filters // #nosec G401 - fd.AddFilter("md5", hashFilter(func() hash.Hash { return md5.New() })) - fd.AddFilter("sha1", hashFilter(func() hash.Hash { return sha1.New() })) - fd.AddFilter("sha256", hashFilter(func() hash.Hash { return sha256.New() })) + fd.AddFilter("md5", hashFilter(md5.New)) + fd.AddFilter("sha1", hashFilter(sha1.New)) + fd.AddFilter("sha256", hashFilter(sha256.New)) + // #nosec G401 + fd.AddFilter("hmac", hmacFilter(md5.New)) } func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { return func(value interface{}) string { - var vBytes []byte - switch v := value.(type) { - case string: - vBytes = []byte(v) - case int, int8, int16, int32, int64, float32, float64: - vBytes = []byte(fmt.Sprint(v)) - default: + vBytes := toBytes(value) + if vBytes == nil { return "" } h := hashFn() @@ -246,11 +244,29 @@ func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { } } +func hmacFilter(hashFn func() hash.Hash) func(value, key interface{}) string { + return func(value, key interface{}) string { + vBytes := toBytes(value) + if vBytes == nil { + return "" + } + kBytes := toBytes(key) + if len(kBytes) == 0 { + return "" + } + hm := hmac.New(hashFn, kBytes) + if _, err := hm.Write(vBytes); err == nil { + return fmt.Sprintf("%x", hm.Sum(nil)) + } + return "" + } +} + func toBytes(value interface{}) []byte { switch v := value.(type) { case string: return []byte(v) - case int, int8, int16, int32, int64, float32, float64, bool: + case int, int8, int16, int32, int64, float32, float64: return []byte(fmt.Sprint(v)) default: return nil diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index ad67eac6..568d92e4 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -206,6 +206,21 @@ var filterTests = []struct { {`"" | sha256`, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, {`100 | sha256`, "ad57366865126e55649ecb23ae1d48887544976efea46a48eb5d85a6eeb4d306"}, {`100.01 | sha256`, "4b46711a09b65af6dcbbc4caab38ab58e06d08eb75fbeb8e367fdd1ccc289fba"}, + + {`"Take my protein pills and put my helmet on" | hmac: "key"`, "5b74077685d98d1e1d03cd289e2c2bfc"}, + {`"Take my protein pills and put my helmet on" | hmac: ""`, ""}, + {`"" | hmac: "key"`, "63530468a04e386459855da0063b6596"}, + {`"" | hmac: 100`, "3dca4879a1503e097da2f46c70e53a44"}, + {`"" | hmac: 100.01`, "50a40e5d258d5337b8f23d5f790f5419"}, + {`"Take my protein pills and put my helmet on" | hmac: 100`, "3494f6a7895d9e8084343e1020984ba6"}, + {`"Take my protein pills and put my helmet on" | hmac: 100.01`, "c1ef31ab6b3630ffb2e6842a600bf572"}, + {`"Only numeric and string keys are supported" | hmac: true`, ""}, + {`100 | hmac: "key"`, "f69388563202c10d4e0dc44646a3b937"}, + {`100 | hmac: 100`, "e459c4d00f32981388e5d0e797c8ac68"}, + {`100 | hmac: 100.01`, "f88e6d1df733b884b9748bbab83b3e68"}, + {`100.01 | hmac: "key"`, "41e66d9c6ca6e0b7b0470d9c03fef001"}, + {`100.01 | hmac: 100`, "7ac1da15168b6bf50c2975fa3198e84e"}, + {`100.01 | hmac: 100.01`, "bcd8551b5dbc26ed858752b9046dc654"}, } var filterTestBindings = map[string]interface{}{ From ef283b07efe036560040eb5c7f8da813ad74b721 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Sun, 11 Sep 2022 20:57:53 +1000 Subject: [PATCH 40/96] HMAC SHA1 & SHA256 --- filters/standard_filters.go | 3 +++ filters/standard_filters_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index dc29baa7..bb7bcfe1 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -228,6 +228,8 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("sha256", hashFilter(sha256.New)) // #nosec G401 fd.AddFilter("hmac", hmacFilter(md5.New)) + fd.AddFilter("hmac_sha1", hmacFilter(sha1.New)) + fd.AddFilter("hmac_sha256", hmacFilter(sha256.New)) } func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { @@ -245,6 +247,7 @@ func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { } func hmacFilter(hashFn func() hash.Hash) func(value, key interface{}) string { + return func(value, key interface{}) string { vBytes := toBytes(value) if vBytes == nil { diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 568d92e4..414758eb 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -221,6 +221,36 @@ var filterTests = []struct { {`100.01 | hmac: "key"`, "41e66d9c6ca6e0b7b0470d9c03fef001"}, {`100.01 | hmac: 100`, "7ac1da15168b6bf50c2975fa3198e84e"}, {`100.01 | hmac: 100.01`, "bcd8551b5dbc26ed858752b9046dc654"}, + + {`"Take my protein pills and put my helmet on" | hmac_sha1: "key"`, "fca4135e0bc4d4bcdccfd0bd98edc30d3d7ac629"}, + {`"Take my protein pills and put my helmet on" | hmac_sha1: ""`, ""}, + {`"" | hmac_sha1: "key"`, "f42bb0eeb018ebbd4597ae7213711ec60760843f"}, + {`"" | hmac_sha1: 100`, "8099fabd3501a2555ffc9cb981f604960ae8c7d4"}, + {`"" | hmac_sha1: 100.01`, "139b02a8c7e02f9739b881b139608a3771963567"}, + {`"Take my protein pills and put my helmet on" | hmac_sha1: 100`, "595095014fab1b061a47cc1b7856b78bd78ad998"}, + {`"Take my protein pills and put my helmet on" | hmac_sha1: 100.01`, "3922875669b50f66373f1a21d91fd113f456b66c"}, + {`"Only numeric and string keys are supported" | hmac_sha1: true`, ""}, + {`100 | hmac_sha1: "key"`, "30385a0b6d754aee6a69093edd9d16accd57e26d"}, + {`100 | hmac_sha1: 100`, "56ba1ffa433eef7d9ebe9ef9fc464bdf2d68d7ed"}, + {`100 | hmac_sha1: 100.01`, "f962759dc0683e9aed4728d10cad6ade3c0f03ac"}, + {`100.01 | hmac_sha1: "key"`, "a3812ff53e8080fd42193b75d2245fe7ecb08df5"}, + {`100.01 | hmac_sha1: 100`, "877bfb3895f60525f123edec278d7dd915c6b2a6"}, + {`100.01 | hmac_sha1: 100.01`, "0efc1381dd2a001a0ba3db56f6e9456f3f4d73a8"}, + + {`"Take my protein pills and put my helmet on" | hmac_sha256: "key"`, "111fce4b586c1c54804196bbc014e45005958fcaf5462fa206ad5856811686f5"}, + {`"Take my protein pills and put my helmet on" | hmac_sha256: ""`, ""}, + {`"" | hmac_sha256: "key"`, "5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0"}, + {`"" | hmac_sha256: 100`, "b854798844b7e780ef9faa722c24135cd6699352086cb20b320c1857be689a44"}, + {`"" | hmac_sha256: 100.01`, "53f01171794ac7f4de338759e3e3434f4c305812050d1cffcda9b66c69bb7b69"}, + {`"Take my protein pills and put my helmet on" | hmac_sha256: 100`, "c23af083390e2408faed6cf7d23f914425e9cab268050d5dc674f023bc8a8d6a"}, + {`"Take my protein pills and put my helmet on" | hmac_sha256: 100.01`, "9a19b23c1e55a2f570aad746844cb36f928d20ff4c837dca8fef0c2ef453cf63"}, + {`"Only numeric and string keys are supported" | hmac_sha256: true`, ""}, + {`100 | hmac_sha256: "key"`, "71d0fcbb40b55250039eb1f8bf363e280431f868af075355e6c9e44574f915d8"}, + {`100 | hmac_sha256: 100`, "f74a692209268d93c5a6ec227edfe17f7a70b28e049648f80238695798ffd407"}, + {`100 | hmac_sha256: 100.01`, "571751c3df688bc29af6e730c0c0d02ed4f1261fdfc9de2bf51a274106a5c6d4"}, + {`100.01 | hmac_sha256: "key"`, "b6c9391539ba7d250c9cbea6fb8aaaf278a5f858ad9206ae7ba6063ae17f2eb6"}, + {`100.01 | hmac_sha256: 100`, "7a48e1789185ab575a94579302ff9c4b57e58c70e40609f7a2a76469c9381d01"}, + {`100.01 | hmac_sha256: 100.01`, "bad95722cd8088216306962a575751a3a7251234f61504b33be224f9a9c2971c"}, } var filterTestBindings = map[string]interface{}{ From 9fc30e639010b13558f8fd50967b20fe59dde2d4 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Mon, 12 Sep 2022 08:33:08 +1000 Subject: [PATCH 41/96] Do not hash string inputs --- filters/standard_filters.go | 18 +++++++++--------- filters/standard_filters_test.go | 23 +++++++++++------------ 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index bb7bcfe1..55761319 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -234,12 +234,12 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { return func(value interface{}) string { - vBytes := toBytes(value) - if vBytes == nil { + valueBytes := toBytes(value) + if len(valueBytes) == 0 { return "" } h := hashFn() - if _, err := h.Write(vBytes); err == nil { + if _, err := h.Write(valueBytes); err == nil { return fmt.Sprintf("%x", h.Sum(nil)) } return "" @@ -249,16 +249,16 @@ func hashFilter(hashFn func() hash.Hash) func(value interface{}) string { func hmacFilter(hashFn func() hash.Hash) func(value, key interface{}) string { return func(value, key interface{}) string { - vBytes := toBytes(value) - if vBytes == nil { + valueBytes := toBytes(value) + if len(valueBytes) == 0 { return "" } - kBytes := toBytes(key) - if len(kBytes) == 0 { + keyBytes := toBytes(key) + if len(keyBytes) == 0 { return "" } - hm := hmac.New(hashFn, kBytes) - if _, err := hm.Write(vBytes); err == nil { + hm := hmac.New(hashFn, keyBytes) + if _, err := hm.Write(valueBytes); err == nil { return fmt.Sprintf("%x", hm.Sum(nil)) } return "" diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 414758eb..99516171 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -193,25 +193,24 @@ var filterTests = []struct { // Hash filters {`"Take my protein pills and put my helmet on" | md5`, "505a1a407670a93d9ef2cf34960002f9"}, - {`"" | md5`, "d41d8cd98f00b204e9800998ecf8427e"}, {`100 | md5`, "f899139df5e1059396431415e770c6dd"}, {`100.01 | md5`, "e74f9831767648ecdd211c3f8cd85b86"}, {`"Take my protein pills and put my helmet on" | sha1`, "07f3b4973325af9109399ead74f2180bcaefa4c0"}, - {`"" | sha1`, "da39a3ee5e6b4b0d3255bfef95601890afd80709"}, + {`"" | sha1`, ""}, {`100 | sha1`, "310b86e0b62b828562fc91c7be5380a992b2786a"}, {`100.01 | sha1`, "2cf9b40e62dd0bff2c57d179bfc99674d25f3c33"}, {`"Take my protein pills and put my helmet on" | sha256`, "b19c3d04c1b80ae9acd15227c0dde0cb6f5755995afa3c846a3473ac42de6f63"}, - {`"" | sha256`, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, + {`"" | sha256`, ""}, {`100 | sha256`, "ad57366865126e55649ecb23ae1d48887544976efea46a48eb5d85a6eeb4d306"}, {`100.01 | sha256`, "4b46711a09b65af6dcbbc4caab38ab58e06d08eb75fbeb8e367fdd1ccc289fba"}, {`"Take my protein pills and put my helmet on" | hmac: "key"`, "5b74077685d98d1e1d03cd289e2c2bfc"}, {`"Take my protein pills and put my helmet on" | hmac: ""`, ""}, - {`"" | hmac: "key"`, "63530468a04e386459855da0063b6596"}, - {`"" | hmac: 100`, "3dca4879a1503e097da2f46c70e53a44"}, - {`"" | hmac: 100.01`, "50a40e5d258d5337b8f23d5f790f5419"}, + {`"" | hmac: "key"`, ""}, + {`"" | hmac: 100`, ""}, + {`"" | hmac: 100.01`, ""}, {`"Take my protein pills and put my helmet on" | hmac: 100`, "3494f6a7895d9e8084343e1020984ba6"}, {`"Take my protein pills and put my helmet on" | hmac: 100.01`, "c1ef31ab6b3630ffb2e6842a600bf572"}, {`"Only numeric and string keys are supported" | hmac: true`, ""}, @@ -224,9 +223,9 @@ var filterTests = []struct { {`"Take my protein pills and put my helmet on" | hmac_sha1: "key"`, "fca4135e0bc4d4bcdccfd0bd98edc30d3d7ac629"}, {`"Take my protein pills and put my helmet on" | hmac_sha1: ""`, ""}, - {`"" | hmac_sha1: "key"`, "f42bb0eeb018ebbd4597ae7213711ec60760843f"}, - {`"" | hmac_sha1: 100`, "8099fabd3501a2555ffc9cb981f604960ae8c7d4"}, - {`"" | hmac_sha1: 100.01`, "139b02a8c7e02f9739b881b139608a3771963567"}, + {`"" | hmac_sha1: "key"`, ""}, + {`"" | hmac_sha1: 100`, ""}, + {`"" | hmac_sha1: 100.01`, ""}, {`"Take my protein pills and put my helmet on" | hmac_sha1: 100`, "595095014fab1b061a47cc1b7856b78bd78ad998"}, {`"Take my protein pills and put my helmet on" | hmac_sha1: 100.01`, "3922875669b50f66373f1a21d91fd113f456b66c"}, {`"Only numeric and string keys are supported" | hmac_sha1: true`, ""}, @@ -239,9 +238,9 @@ var filterTests = []struct { {`"Take my protein pills and put my helmet on" | hmac_sha256: "key"`, "111fce4b586c1c54804196bbc014e45005958fcaf5462fa206ad5856811686f5"}, {`"Take my protein pills and put my helmet on" | hmac_sha256: ""`, ""}, - {`"" | hmac_sha256: "key"`, "5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0"}, - {`"" | hmac_sha256: 100`, "b854798844b7e780ef9faa722c24135cd6699352086cb20b320c1857be689a44"}, - {`"" | hmac_sha256: 100.01`, "53f01171794ac7f4de338759e3e3434f4c305812050d1cffcda9b66c69bb7b69"}, + {`"" | hmac_sha256: "key"`, ""}, + {`"" | hmac_sha256: 100`, ""}, + {`"" | hmac_sha256: 100.01`, ""}, {`"Take my protein pills and put my helmet on" | hmac_sha256: 100`, "c23af083390e2408faed6cf7d23f914425e9cab268050d5dc674f023bc8a8d6a"}, {`"Take my protein pills and put my helmet on" | hmac_sha256: 100.01`, "9a19b23c1e55a2f570aad746844cb36f928d20ff4c837dca8fef0c2ef453cf63"}, {`"Only numeric and string keys are supported" | hmac_sha256: true`, ""}, From 74ed9c8960efe0ecca92b3f712631b422790d1c7 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Mon, 12 Sep 2022 09:30:54 +1000 Subject: [PATCH 42/96] at_least & at_most filters --- filters/standard_filters.go | 45 +++++++++++++++++ filters/standard_filters_test.go | 86 ++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 55761319..eac59ade 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -14,6 +14,7 @@ import ( "net/url" "reflect" "regexp" + "strconv" "strings" "time" "unicode" @@ -108,6 +109,9 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo return math.Floor(n*exp+0.5) / exp }) + fd.AddFilter("at_least", floatFilter(math.Max)) + fd.AddFilter("at_most", floatFilter(math.Min)) + // sequence filters fd.AddFilter("size", values.Length) @@ -265,6 +269,47 @@ func hmacFilter(hashFn func() hash.Hash) func(value, key interface{}) string { } } +func floatFilter(fn func(v1, v2 float64) float64) func(lhs, rhs interface{}) interface{} { + return func(lhs, rhs interface{}) interface{} { + lhsValue, ok := parseAsFloat64(lhs) + if !ok { + return "" + } + rhsValue, ok := parseAsFloat64(rhs) + if !ok { + return "" + } + return fn(lhsValue, rhsValue) + } +} + +func parseAsFloat64(value interface{}) (float64, bool) { + switch v := value.(type) { + case string: + parsed, err := strconv.ParseFloat(v, 64) + if err != nil { + return 0, false + } + return parsed, true + case int: + return float64(v), true + case int8: + return float64(v), true + case int16: + return float64(v), true + case int32: + return float64(v), true + case int64: + return float64(v), true + case float32: + return float64(v), true + case float64: + return v, true + default: + return 0, false + } +} + func toBytes(value interface{}) []byte { switch v := value.(type) { case string: diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 99516171..1aaf0bf4 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -250,6 +250,92 @@ var filterTests = []struct { {`100.01 | hmac_sha256: "key"`, "b6c9391539ba7d250c9cbea6fb8aaaf278a5f858ad9206ae7ba6063ae17f2eb6"}, {`100.01 | hmac_sha256: 100`, "7a48e1789185ab575a94579302ff9c4b57e58c70e40609f7a2a76469c9381d01"}, {`100.01 | hmac_sha256: 100.01`, "bad95722cd8088216306962a575751a3a7251234f61504b33be224f9a9c2971c"}, + + // at_least + {`"10" | at_least: "20"`, 20}, + {`"10.5" | at_least: "20"`, 20}, + {`"10.5" | at_least: "20.5"`, 20.5}, + {`10 | at_least: 20`, 20}, + {`10.5 | at_least: 20`, 20}, + {`10.5 | at_least: 20.5`, 20.5}, + {`10 | at_least: "20"`, 20}, + {`10.5 | at_least: "20"`, 20}, + {`10.5 | at_least: "20.5"`, 20.5}, + {`"10" | at_least: 20`, 20}, + {`"10.5" | at_least: 20`, 20}, + {`"10.5" | at_least: 20.5`, 20.5}, + + {`"20" | at_least: "10"`, 20}, + {`"20.5" | at_least: "10"`, 20.5}, + {`"20.5" | at_least: "10.5"`, 20.5}, + {`20 | at_least: 10`, 20}, + {`20.5 | at_least: 10`, 20.5}, + {`20.5 | at_least: 10.5`, 20.5}, + {`20 | at_least: "10"`, 20}, + {`20.5 | at_least: "10"`, 20.5}, + {`20.5 | at_least: "10.5"`, 20.5}, + {`"20" | at_least: 10`, 20}, + {`"20.5" | at_least: 10`, 20.5}, + {`"20.5" | at_least: 10.5`, 20.5}, + + {`"0" | at_least: "0"`, 0}, + {`0 | at_least: "0"`, 0}, + {`"0" | at_least: 0`, 0}, + {`"0.0" | at_least: "0.0"`, 0}, + {`0.0 | at_least: "0.0"`, 0}, + {`"0.0" | at_least: 0.0`, 0}, + + {`"" | at_least: 20`, ""}, + {`"" | at_least: "20"`, ""}, + {`"" | at_least: 20.5`, ""}, + {`"" | at_least: "20.5"`, ""}, + {`10 | at_least: ""`, ""}, + {`"10" | at_least: ""`, ""}, + {`"10.2" | at_least: ""`, ""}, + {`"10.2" | at_least: ""`, ""}, + + // at_most + {`"10" | at_most: "20"`, 10}, + {`"10.5" | at_most: "20"`, 10.5}, + {`"10.5" | at_most: "20.5"`, 10.5}, + {`10 | at_most: 20`, 10}, + {`10.5 | at_most: 20`, 10.5}, + {`10.5 | at_most: 20.5`, 10.5}, + {`10 | at_most: "20"`, 10}, + {`10.5 | at_most: "20"`, 10.5}, + {`10.5 | at_most: "20.5"`, 10.5}, + {`"10" | at_most: 20`, 10}, + {`"10.5" | at_most: 20`, 10.5}, + {`"10.5" | at_most: 20.5`, 10.5}, + + {`"20" | at_most: "10"`, 10}, + {`"20.5" | at_most: "10"`, 10}, + {`"20.5" | at_most: "10.5"`, 10.5}, + {`20 | at_most: 10`, 10}, + {`20.5 | at_most: 10`, 10}, + {`20.5 | at_most: 10.5`, 10.5}, + {`20 | at_most: "10"`, 10}, + {`20.5 | at_most: "10"`, 10}, + {`20.5 | at_most: "10.5"`, 10.5}, + {`"20" | at_most: 10`, 10}, + {`"20.5" | at_most: 10`, 10}, + {`"20.5" | at_most: 10.5`, 10.5}, + + {`"0" | at_most: "0"`, 0}, + {`0 | at_most: "0"`, 0}, + {`"0" | at_most: 0`, 0}, + {`"0.0" | at_most: "0.0"`, 0}, + {`0.0 | at_most: "0.0"`, 0}, + {`"0.0" | at_most: 0.0`, 0}, + + {`"" | at_most: 20`, ""}, + {`"" | at_most: "20"`, ""}, + {`"" | at_most: 20.5`, ""}, + {`"" | at_most: "20.5"`, ""}, + {`10 | at_most: ""`, ""}, + {`"10" | at_most: ""`, ""}, + {`"10.2" | at_most: ""`, ""}, + {`"10.2" | at_most: ""`, ""}, } var filterTestBindings = map[string]interface{}{ From 1ddc8b1acaf0ed23f36e79a1759c5a0396dda33c Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 19 Sep 2022 12:03:31 +1000 Subject: [PATCH 43/96] add support for gtypes date type --- filters/standard_filters.go | 24 ++++++++++++++++++++++-- filters/standard_filters_test.go | 5 +++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index eac59ade..327f36c9 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -21,6 +21,7 @@ import ( "github.com/osteele/tuesday" + "github.com/autopilot3/ap3-types-go/types/date" "github.com/autopilot3/liquid/values" ) @@ -74,9 +75,28 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("uniq", uniqFilter) // date filters - fd.AddFilter("date", func(t time.Time, format func(string) string) (string, error) { + fd.AddFilter("date", func(t interface{}, format func(string) string) (string, error) { f := format("%a, %b %d, %y") - return tuesday.Strftime(f, t) + switch tp := t.(type) { + case date.Date: + d := t.(date.Date) + tme, err := d.Time() + if err != nil { + return "", err + } + return tuesday.Strftime(f, tme) + case string: + tme, err := values.ParseDate(t.(string)) + if err != nil { + return "", err + } + return tuesday.Strftime(f, tme) + case time.Time: + tme := t.(time.Time) + return tuesday.Strftime(f, tme) + default: + return "", fmt.Errorf("date filter: unsupported type %T", tp) + } }) // number filters diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 1aaf0bf4..5c7361e2 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/autopilot3/ap3-types-go/types/date" "github.com/autopilot3/liquid/expressions" ) @@ -75,6 +76,7 @@ var filterTests = []struct { {`"2017-07-09" | date: "%d/%m"`, "09/07"}, {`"2017-07-09" | date: "%e/%m"`, " 9/07"}, {`"2017-07-09" | date: "%-d/%-m"`, "9/7"}, + {`ortto.example_date | date`, "Fri, Jul 17, 15"}, // sequence (array or string) filters {`"Ground control to Major Tom." | size`, 28}, @@ -374,6 +376,9 @@ var filterTestBindings = map[string]interface{}{ "article": map[string]interface{}{ "published_at": timeMustParse("2015-07-17T15:04:05Z"), }, + "ortto": map[string]interface{}{ + "example_date": date.MustNewFromTime(timeMustParse("2015-07-17T15:04:05Z")), + }, "page": map[string]interface{}{ "title": "Introduction", }, From 69e0b28c434f56cdf92eb7b9ec967a21109e7184 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 21 Sep 2022 08:21:19 +1000 Subject: [PATCH 44/96] fix nil used on date filter --- filters/standard_filters.go | 2 ++ filters/standard_filters_test.go | 1 + 2 files changed, 3 insertions(+) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 327f36c9..59e45bc1 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -94,6 +94,8 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo case time.Time: tme := t.(time.Time) return tuesday.Strftime(f, tme) + case nil: + return "", nil default: return "", fmt.Errorf("date filter: unsupported type %T", tp) } diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 5c7361e2..0073b664 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -77,6 +77,7 @@ var filterTests = []struct { {`"2017-07-09" | date: "%e/%m"`, " 9/07"}, {`"2017-07-09" | date: "%-d/%-m"`, "9/7"}, {`ortto.example_date | date`, "Fri, Jul 17, 15"}, + {`ortto.not_existing_date | date`, ""}, // sequence (array or string) filters {`"Ground control to Major Tom." | size`, 28}, From 2d71610fcf1b50acd9be0c3eb8190a2c295b2375 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 21 Sep 2022 15:54:56 +1000 Subject: [PATCH 45/96] use contains to properly check if source contains allowed tags --- cmd/liquid/main_test.go | 9 +++++++-- render/render.go | 10 +++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index 1fedca46..f3b60520 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -58,7 +58,7 @@ func TestRenderAllowedTags(t *testing.T) { } engine := liquid.NewEngine() engine.SetAllowedTags(map[string]struct{}{ - "{{ people.name }}": {}, + "people.name": {}, }) tests := []struct { name string @@ -67,9 +67,14 @@ func TestRenderAllowedTags(t *testing.T) { }{ { "Allow name only", - "Hello {{ people.name }}, your email is {{ people.email }}!", + "Hello {{ people.name | default: 'there' }}, your email is {{ people.email }}!", "Hello bob, your email is {{ people.email }}!", }, + { + "Allow name only", + "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!", + "Hello bob, your email is {{ people.email | default: 'unknown' }}!", + }, } for _, tt := range tests { tmpl, err := engine.ParseString(tt.src) diff --git a/render/render.go b/render/render.go index dc986b76..b9ed10c6 100644 --- a/render/render.go +++ b/render/render.go @@ -6,6 +6,7 @@ import ( "io" "io/ioutil" "reflect" + "strings" "time" "github.com/autopilot3/liquid/values" @@ -76,7 +77,14 @@ func (n *ObjectNode) render(w *trimWriter, ctx nodeContext) Error { err error ) if len(ctx.config.AllowedTags) != 0 { - if _, ok := ctx.config.AllowedTags[n.Source]; ok { + allowed := false + for tag := range ctx.config.AllowedTags { + if strings.Contains(n.Source, tag) { + allowed = true + break + } + } + if allowed { w.TrimLeft(n.TrimLeft) value, err = ctx.Evaluate(n.expr) if err != nil { From 0248e8829a3506025a198c660021fae5dfa38285 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 9 Nov 2022 14:33:01 +1100 Subject: [PATCH 46/96] allow tags with default for better templates screenshot rendering --- cmd/liquid/main_test.go | 31 +++++++++++++++++++++---------- engine.go | 4 ++++ render/config.go | 4 +++- render/render.go | 5 +++++ 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index f3b60520..a6a68e6d 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -52,31 +52,42 @@ func TestRenderAllowedTags(t *testing.T) { bindings := map[string]interface{}{ "people": map[string]interface{}{ - "name": "bob", - "email": "bob@example.com", + "name": "bob", }, } - engine := liquid.NewEngine() - engine.SetAllowedTags(map[string]struct{}{ - "people.name": {}, - }) tests := []struct { - name string - src string - expected string + name string + allowTagsWithDefault bool + src string + expected string }{ { "Allow name only", + false, "Hello {{ people.name | default: 'there' }}, your email is {{ people.email }}!", "Hello bob, your email is {{ people.email }}!", }, { - "Allow name only", + "Allow name only, others have default", + false, "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!", "Hello bob, your email is {{ people.email | default: 'unknown' }}!", }, + { + "Allow name and default", + true, + "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!", + "Hello bob, your email is unknown!", + }, } for _, tt := range tests { + engine := liquid.NewEngine() + engine.SetAllowedTags(map[string]struct{}{ + "people.name": {}, + }) + if tt.allowTagsWithDefault { + engine.AllowedTagsWithDefault() + } tmpl, err := engine.ParseString(tt.src) if err != nil { t.Fatal(err) diff --git a/engine.go b/engine.go index e14c4b24..ef6a2efc 100644 --- a/engine.go +++ b/engine.go @@ -29,6 +29,10 @@ func (e *Engine) SetAllowedTags(allowedTags map[string]struct{}) *Engine { e.cfg.AllowedTags = allowedTags return e } +func (e *Engine) AllowedTagsWithDefault() *Engine { + e.cfg.AllowTagsWithDefault = true + return e +} // NewEngine returns a new Engine. func NewEngine() *Engine { diff --git a/render/config.go b/render/config.go index 14174ae2..14eed33b 100644 --- a/render/config.go +++ b/render/config.go @@ -8,7 +8,8 @@ import ( type Config struct { parser.Config grammar - AllowedTags map[string]struct{} + AllowedTags map[string]struct{} + AllowTagsWithDefault bool } type grammar struct { @@ -26,5 +27,6 @@ func NewConfig() Config { parser.NewConfig(g), g, nil, + false, } } diff --git a/render/render.go b/render/render.go index b9ed10c6..def15072 100644 --- a/render/render.go +++ b/render/render.go @@ -78,6 +78,11 @@ func (n *ObjectNode) render(w *trimWriter, ctx nodeContext) Error { ) if len(ctx.config.AllowedTags) != 0 { allowed := false + if strings.Contains(n.Source, "default:") { + if ctx.config.AllowTagsWithDefault { + allowed = true + } + } for tag := range ctx.config.AllowedTags { if strings.Contains(n.Source, tag) { allowed = true From 7822ad35accdab2a92d0a89a440e83bec6ac9a36 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 9 Nov 2022 14:39:44 +1100 Subject: [PATCH 47/96] avoid double check --- render/render.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/render/render.go b/render/render.go index def15072..15fd09ba 100644 --- a/render/render.go +++ b/render/render.go @@ -83,10 +83,12 @@ func (n *ObjectNode) render(w *trimWriter, ctx nodeContext) Error { allowed = true } } - for tag := range ctx.config.AllowedTags { - if strings.Contains(n.Source, tag) { - allowed = true - break + if !allowed { + for tag := range ctx.config.AllowedTags { + if strings.Contains(n.Source, tag) { + allowed = true + break + } } } if allowed { From 0cd651a24547d86b36081f43ace0583c1f39a496 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 9 Nov 2022 15:04:22 +1100 Subject: [PATCH 48/96] WIP --- render/render.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/render/render.go b/render/render.go index 15fd09ba..287a469c 100644 --- a/render/render.go +++ b/render/render.go @@ -78,10 +78,8 @@ func (n *ObjectNode) render(w *trimWriter, ctx nodeContext) Error { ) if len(ctx.config.AllowedTags) != 0 { allowed := false - if strings.Contains(n.Source, "default:") { - if ctx.config.AllowTagsWithDefault { - allowed = true - } + if ctx.config.AllowTagsWithDefault && strings.Contains(n.Source, "default:") { + allowed = true } if !allowed { for tag := range ctx.config.AllowedTags { From 09ea7ac97dc3445d0f92c3b8b8241158531da727 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 16 Nov 2022 11:23:50 +1100 Subject: [PATCH 49/96] if we enter allowed tags mode, always render the first branch in control flow --- cmd/liquid/main_test.go | 10 ++++++++-- render/context.go | 6 ++++++ tags/control_flow_tags.go | 10 ++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index a6a68e6d..8d7e5a0c 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -64,8 +64,8 @@ func TestRenderAllowedTags(t *testing.T) { { "Allow name only", false, - "Hello {{ people.name | default: 'there' }}, your email is {{ people.email }}!", - "Hello bob, your email is {{ people.email }}!", + "Hello {{ people.name | default: 'there' }}, your email is {{ people.email }}! {% if people.random == '123' %} you can't see me {% endif %}", + "Hello bob, your email is {{ people.email }}! you can't see me ", }, { "Allow name only, others have default", @@ -79,6 +79,12 @@ func TestRenderAllowedTags(t *testing.T) { "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!", "Hello bob, your email is unknown!", }, + { + "Allow name and default", + true, + "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!{% if people.random == '123' %} you can't see me.{% endif %}", + "Hello bob, your email is unknown! you can't see me.", + }, } for _, tt := range tests { engine := liquid.NewEngine() diff --git a/render/context.go b/render/context.go index 95bbb8d0..2a0bdc17 100644 --- a/render/context.go +++ b/render/context.go @@ -49,6 +49,8 @@ type Context interface { TagName() string // WrapError creates a new error that records the source location from the current context. WrapError(err error) Error + + GetConfig() *Config } type rendererContext struct { @@ -171,3 +173,7 @@ func (c rendererContext) TagName() string { return "" } } + +func (c rendererContext) GetConfig() *Config { + return &c.ctx.config +} diff --git a/tags/control_flow_tags.go b/tags/control_flow_tags.go index ff56ff5e..1e90466d 100644 --- a/tags/control_flow_tags.go +++ b/tags/control_flow_tags.go @@ -62,6 +62,12 @@ func caseTagCompiler(node render.BlockNode) (func(io.Writer, render.Context) err if err != nil { return err } + + cfg := ctx.GetConfig() + if len(cfg.AllowedTags) > 0 && len(cases) > 0 { + return ctx.RenderBlock(w, cases[0].body()) + } + for _, clause := range cases { b, err := clause.test(sel, ctx) if err != nil { @@ -106,6 +112,10 @@ func ifTagCompiler(polarity bool) func(render.BlockNode) (func(io.Writer, render branches = append(branches, branchRec{test, c}) } return func(w io.Writer, ctx render.Context) error { + cfg := ctx.GetConfig() + if len(cfg.AllowedTags) > 0 && len(branches) > 0 { + return ctx.RenderBlock(w, branches[0].body) + } for _, b := range branches { value, err := ctx.Evaluate(b.test) if err != nil { From 3624a4f6e578ce2a91bc60fd0fa96506528f727f Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 16 Nov 2022 12:08:48 +1100 Subject: [PATCH 50/96] render control flow as it is --- cmd/liquid/main_test.go | 4 ++-- render/render.go | 7 +++++++ tags/control_flow_tags.go | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index 8d7e5a0c..add66c4f 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -65,7 +65,7 @@ func TestRenderAllowedTags(t *testing.T) { "Allow name only", false, "Hello {{ people.name | default: 'there' }}, your email is {{ people.email }}! {% if people.random == '123' %} you can't see me {% endif %}", - "Hello bob, your email is {{ people.email }}! you can't see me ", + "Hello bob, your email is {{ people.email }}! {% if people.random == '123' %} you can't see me {% endif %}", }, { "Allow name only, others have default", @@ -83,7 +83,7 @@ func TestRenderAllowedTags(t *testing.T) { "Allow name and default", true, "Hello {{ people.name | default: 'there' }}, your email is {{ people.email | default: 'unknown' }}!{% if people.random == '123' %} you can't see me.{% endif %}", - "Hello bob, your email is unknown! you can't see me.", + "Hello bob, your email is unknown!{% if people.random == '123' %} you can't see me.{% endif %}", }, } for _, tt := range tests { diff --git a/render/render.go b/render/render.go index 287a469c..389eee61 100644 --- a/render/render.go +++ b/render/render.go @@ -58,6 +58,13 @@ func (n *BlockNode) render(w *trimWriter, ctx nodeContext) Error { panic(fmt.Errorf("unset renderer for %v", n)) } err := renderer(w, rendererContext{ctx, nil, n}) + + if len(ctx.config.AllowedTags) > 0 { + end, ok := ctx.config.findBlockDef("end" + n.Name) + if ok { + w.Write([]byte("{% " + end.TagName() + " %}")) + } + } return wrapRenderError(err, n) } diff --git a/tags/control_flow_tags.go b/tags/control_flow_tags.go index 1e90466d..308e7839 100644 --- a/tags/control_flow_tags.go +++ b/tags/control_flow_tags.go @@ -114,7 +114,11 @@ func ifTagCompiler(polarity bool) func(render.BlockNode) (func(io.Writer, render return func(w io.Writer, ctx render.Context) error { cfg := ctx.GetConfig() if len(cfg.AllowedTags) > 0 && len(branches) > 0 { - return ctx.RenderBlock(w, branches[0].body) + for _, b := range branches { + w.Write([]byte(b.body.SourceText())) + ctx.RenderBlock(w, b.body) + } + return nil } for _, b := range branches { value, err := ctx.Evaluate(b.test) From 847fcc273ae6aa15491a160975fe34a1c284b7cb Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 12 Dec 2022 17:39:18 +1100 Subject: [PATCH 51/96] time in tz filter --- engine.go | 20 ++++++++++++++++++++ engine_test.go | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/engine.go b/engine.go index ef6a2efc..f4fb5fe1 100644 --- a/engine.go +++ b/engine.go @@ -48,6 +48,26 @@ func NewEngine() *Engine { } return s.String() }) + + engine.RegisterFilter("timeInTimezone", func(s time.Time, timezone string, format string) string { + tz, err := time.LoadLocation(timezone) + if err != nil { + return "" + } + switch format { + case "mdy12": + return s.In(tz).Format("Jan 02 2006 3:04 PM") + case "mdy24": + return s.In(tz).Format("Jan 02 2006 15:04") + case "dmy12": + return s.In(tz).Format("02 Jan 2006 3:04 PM") + case "dmy24": + return s.In(tz).Format("02 Jan 2006 15:04") + default: + return s.String() + } + }) + engine.RegisterFilter("rawPhone", func(s phone.International) string { return s.CountryCode.String() + s.Number.String() }) diff --git a/engine_test.go b/engine_test.go index 6ace8ad0..ab8d2839 100644 --- a/engine_test.go +++ b/engine_test.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "testing" + "time" "github.com/stretchr/testify/require" ) @@ -94,3 +95,22 @@ func BenchmarkEngine_Parse(b *testing.B) { engine.ParseTemplate(s) } } + +func TestCustomFilter(t *testing.T) { + // GMT Sun Dec 11 2022 14:02:03 GMT+0000 + // Your Time Zone Mon Dec 12 2022 01:02:03 GMT+1100 (Australian Eastern Daylight Time) + params := map[string]interface{}{ + "message": &map[string]interface{}{ + "created_at": time.Unix(1670767323, 0), + }, + } + engine := NewEngine() + template := "{{ message.created_at | timeInTimezone: 'Australia/Sydney', 'mdy12' }}" + str, err := engine.ParseAndRenderString(template, params) + require.NoError(t, err) + require.Equal(t, "Dec 12 2022 1:02 AM", str) + template = "{{ message.created_at | timeInTimezone: 'Asia/Shanghai', 'mdy12' }}" + str, err = engine.ParseAndRenderString(template, params) + require.NoError(t, err) + require.Equal(t, "Dec 11 2022 10:02 PM", str) +} From b6d10d331320571e9efced43d4c62030a2ccb87e Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 14 Dec 2022 19:49:57 +1100 Subject: [PATCH 52/96] add date filter to support number type --- engine_test.go | 11 +++++++++++ filters/standard_filters.go | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/engine_test.go b/engine_test.go index ab8d2839..79023057 100644 --- a/engine_test.go +++ b/engine_test.go @@ -114,3 +114,14 @@ func TestCustomFilter(t *testing.T) { require.NoError(t, err) require.Equal(t, "Dec 11 2022 10:02 PM", str) } + +func TestDateFilter(t *testing.T) { + engine := NewEngine() + template := `{% assign vardays = 30 | times: 24 | times: 60 | times: 60 %}{{ 'now' | date: "%s" | plus: vardays | date: "%d/%m/%Y" }}` + str, err := engine.ParseAndRenderString(template, nil) + require.NoError(t, err) + t.Log(str) + if len(str) == 0 { + t.Error("date filter error") + } +} diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 59e45bc1..1f93eeae 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -94,6 +94,14 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo case time.Time: tme := t.(time.Time) return tuesday.Strftime(f, tme) + case int64: + unixTime := t.(int64) + tme := time.Unix(unixTime, 0) + return tuesday.Strftime(f, tme) + case float64: + unixTime := t.(float64) + tme := time.Unix(int64(unixTime), 0) + return tuesday.Strftime(f, tme) case nil: return "", nil default: From 021f417c3674b27cedcfa9471a4eff0255356fb5 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 20 Dec 2022 10:41:47 +1100 Subject: [PATCH 53/96] new dateformat available for date/time filter --- engine.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/engine.go b/engine.go index f4fb5fe1..91bec6bd 100644 --- a/engine.go +++ b/engine.go @@ -63,6 +63,14 @@ func NewEngine() *Engine { return s.In(tz).Format("02 Jan 2006 3:04 PM") case "dmy24": return s.In(tz).Format("02 Jan 2006 15:04") + case "ymd12": + return s.Format("2006 Jan 02 3:04 PM") + case "ymd24": + return s.Format("2006 Jan 02 15:04") + case "ydm12": + return s.Format("2006 02 Jan 3:04 PM") + case "ydm24": + return s.Format("2006 02 Jan 15:04") default: return s.String() } @@ -86,6 +94,14 @@ func NewEngine() *Engine { return s.Format("02 Jan 2006 3:04 PM") case "dmy24": return s.Format("02 Jan 2006 15:04") + case "ymd12": + return s.Format("2006 Jan 02 3:04 PM") + case "ymd24": + return s.Format("2006 Jan 02 15:04") + case "ydm12": + return s.Format("2006 02 Jan 3:04 PM") + case "ydm24": + return s.Format("2006 02 Jan 15:04") default: return s.String() } @@ -101,6 +117,10 @@ func NewEngine() *Engine { return fmt.Sprintf("%02d/%02d/%d", s.Month(), s.Day(), s.Year()) case "dmy": return fmt.Sprintf("%02d/%02d/%d", s.Day(), s.Month(), s.Year()) + case "ymd": + return fmt.Sprintf("%d/%02d/%02d", s.Year(), s.Month(), s.Day()) + case "ydm": + return fmt.Sprintf("%d/%02d/%02d", s.Year(), s.Day(), s.Month()) default: return s.String() } From f03e31bbdd74502225c9837acdd93951c42649fe Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Thu, 2 Mar 2023 10:43:30 +0100 Subject: [PATCH 54/96] fix: liquid proposal 2 Signed-off-by: Sacha Froment --- values/value.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/values/value.go b/values/value.go index af80c36c..a3f938fe 100644 --- a/values/value.go +++ b/values/value.go @@ -6,6 +6,8 @@ import ( "strings" yaml "gopkg.in/yaml.v2" + + "github.com/autopilot3/ap3-helpers-go/language" ) // A Value is a Liquid runtime value. @@ -214,7 +216,12 @@ func (sv stringValue) Contains(substr Value) bool { if !ok { s = fmt.Sprint(substr.Interface()) } - return strings.Contains(sv.value.(string), s) + switch sv.value.(type) { + case language.LanguageCode: + return strings.Contains(string(sv.value.(language.LanguageCode)), s) + default: + return strings.Contains(sv.value.(string), s) + } } func (sv stringValue) PropertyValue(iv Value) Value { From 53137de3a02914dde7425e6ffed37bc2265cd3c5 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 23 May 2023 08:49:42 +1000 Subject: [PATCH 55/96] add decimalWithDelimiter filter supporting localisation separator --- engine.go | 34 ++++++++++++++++++++++++++++++++++ engine_test.go | 22 ++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/engine.go b/engine.go index 91bec6bd..8f0f171c 100644 --- a/engine.go +++ b/engine.go @@ -156,6 +156,40 @@ func NewEngine() *Engine { return value }) + engine.RegisterFilter("decimalWithDelimiter", func(s string, format string, currency string, loc string) string { + if s == "" { + return s + } + num, err := strconv.ParseFloat(s, 64) + if err != nil { + logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") + return s + } + var formatTemplate string + switch format { + case "whole": + formatTemplate = "%.0f" + case "one": + formatTemplate = "%.1f" + case "two": + formatTemplate = "%.2f" + default: + formatTemplate = "%.2f" + } + + tag, err := language.Parse(loc) + if err != nil { + tag = language.English + } + p := message.NewPrinter(tag) + value := p.Sprintf(formatTemplate, float64(num)/1000) + if currency != "" { + return currency + value + } + + return value + }) + engine.RegisterFilter("numberWithDelimiter", func(s string, loc string, format string) string { if s == "" { return s diff --git a/engine_test.go b/engine_test.go index 79023057..a4c5e266 100644 --- a/engine_test.go +++ b/engine_test.go @@ -125,3 +125,25 @@ func TestDateFilter(t *testing.T) { t.Error("date filter error") } } + +func TestDecimalFilter(t *testing.T) { + engine := NewEngine() + template := `{{ 12345 | decimal: 'one', '$' }}` + str, err := engine.ParseAndRenderString(template, nil) + require.NoError(t, err) + t.Log(str) + if str != "$12.3" { + t.Error("decimal filter error") + } +} + +func TestDecimalWithDelimiterFilter(t *testing.T) { + engine := NewEngine() + template := `{{ 12345 | decimalWithDelimiter: 'one', '€', 'de' }}` + str, err := engine.ParseAndRenderString(template, nil) + require.NoError(t, err) + t.Log(str) + if str != "€12,3" { + t.Error("decimal with delimiter filter error") + } +} From 9ce47a53915a65dfc031ceeabfe0563f9fe1bac6 Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Wed, 7 Jun 2023 09:46:30 +0200 Subject: [PATCH 56/96] chore: go mod Signed-off-by: Sacha Froment --- go.mod | 72 ++++++++++++------------ go.sum | 175 +++++++++++++++++++++++++-------------------------------- 2 files changed, 113 insertions(+), 134 deletions(-) diff --git a/go.mod b/go.mod index 5bba1c51..8e6ff42c 100644 --- a/go.mod +++ b/go.mod @@ -3,69 +3,67 @@ module github.com/autopilot3/liquid go 1.18 require ( - github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e - github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c - github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f + github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c + github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50 + github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50 github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.7.2 - golang.org/x/text v0.3.7 + github.com/stretchr/testify v1.8.0 + golang.org/x/text v0.9.0 gopkg.in/yaml.v2 v2.4.0 ) require ( github.com/alexsergivan/transliterator v1.0.0 // indirect - github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d // indirect - github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549 // indirect - github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4 // indirect - github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724 // indirect - github.com/aws/aws-sdk-go v1.44.73 // indirect + github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b // indirect + github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e // indirect + github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227 // indirect + github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e // indirect + github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18 // indirect + github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect + github.com/aws/aws-sdk-go v1.44.118 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/gocql/gocql v1.1.0 // indirect + github.com/gocql/gocql v1.3.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.15.9 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/klauspost/compress v1.15.12 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/montanaflynn/stats v0.6.6 // indirect - github.com/nats-io/jwt/v2 v2.3.0 // indirect - github.com/nats-io/nats.go v1.16.0 // indirect + github.com/nats-io/nats.go v1.18.0 // indirect github.com/nats-io/nkeys v0.3.0 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/nyaruka/phonenumbers v1.1.0 // indirect + github.com/nyaruka/phonenumbers v1.1.6 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.12.2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.34.0 // indirect - github.com/prometheus/procfs v0.7.3 // indirect - github.com/recurly/recurly-client-go/v3 v3.14.0 // indirect - github.com/stretchr/objx v0.2.0 // indirect - github.com/tidwall/pretty v1.2.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect + github.com/recurly/recurly-client-go/v3 v3.16.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.1.1 // indirect github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.mongodb.org/mongo-driver v1.10.1 // indirect - go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.22.0 // indirect - golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect - golang.org/x/net v0.0.0-20220708220712-1185a9018129 // indirect - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect - golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect - golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect - google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa // indirect - google.golang.org/grpc v1.47.0 // indirect + go.mongodb.org/mongo-driver v1.11.7 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/crypto v0.3.0 // indirect + golang.org/x/net v0.9.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.7.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e // indirect + google.golang.org/grpc v1.50.1 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index e073f8f5..bd1d95a8 100644 --- a/go.sum +++ b/go.sum @@ -41,23 +41,27 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d h1:lVmonmpT4UM7d/zLCZU3fBVIaFrjZY6z3Oy6KUM1zBc= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20220808051319-c0c4888ab84d/go.mod h1:7FVkH4i9RMH3q08VwjvhBNhUR4fXfXLY1bOfqooFWBg= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549 h1:rUbXqKVAvKXC2GXJXjnAu1Zis3VaZvXTlcFfAQ23370= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20220815000228-07e4fce9c549/go.mod h1:oB/A/nNpFXy3bobXjLBqigjZEn+yfz85IQrV3svuQ7Y= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e h1:nYFA5tLfVVqasvGovMATkdGaaxgmMRFTSTstMPJBHG0= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20220818052733-470df251e17e/go.mod h1:C0hY7iUev14MjnQES1k6xMte4P93D4CKoNObuvJj93E= -github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c h1:DnRzrnAExwGen8h7UDHLyiipLwW7kpVUDBKODWJ0My8= -github.com/autopilot3/ap3-helpers-go v0.0.0-20220817060835-b4df27340b6c/go.mod h1:5lTcg//toNV8Xkfq5F1I5NBaK6tiMQkzAPspXjdb6Jk= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4 h1:VC9Sdqh8uhKCNY4Y2buGQ9bKZzn7/3O5fV3gMW0lBwk= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20220607042605-760ec3b441d4/go.mod h1:+3cmt4dkWXQs2hQ/yh9OBuIKALWhxgZhp3pjoTaBAZQ= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724 h1:UtUfECfof5Ra+uxsiQpjCv6hsGID5lqDqVibM7FX5w4= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20220811035802-2c628d380724/go.mod h1:Hd5JrYY7rFYM3x3cKMWA4vMYn43dwHNEGHSm+ygPz5g= -github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f h1:VCa2hnlKlRuaNhIZoJ3TIaAdxxuAD9wlaeGIbUeJkOE= -github.com/autopilot3/ap3-types-go v0.0.0-20220812015404-6a86bc0e028f/go.mod h1:WnKayXDQ1cF4TA8iGCUZ1qoDzCakPuOEq5D32T3Hxls= -github.com/aws/aws-sdk-go v1.44.73 h1:dfvXVwi4A5/GxsmtsWI6ryjSIqM9SG0DKyGrB7q0NV8= -github.com/aws/aws-sdk-go v1.44.73/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b h1:9fnNViYsEU59RW2qICTwv4ErnTxARfKcC0ua11S3t/Y= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b/go.mod h1:LR9AGBqWcVaJh/rmQOjtZhGZg1NFXmj73NvUIOSSjI4= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e h1:yMXDnCtx2LhDXa4cM0lJL1L667W4XNlOxpoOavk0MZA= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e/go.mod h1:ErUx5MMOI6KcPIUEFfMizK+ZUI01EZx9zUfOP37ARc4= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c h1:UIar9xceMgILmrJ97JkUOEgUI058zoAUN9ELvq1NN2k= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c/go.mod h1:e8zRIIwubUvX2B8vvcmrsXP75sH9dyeAIdXfllivO88= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50 h1:+KIrfst4OWkS5R2dEpgBLmJlIr/tRjBm13zYYc9XGEo= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50/go.mod h1:9lXsEMiVRlqP1Zs8vwJqFG/AUXOLFAFmOr5B0liqxQ0= +github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227 h1:2Pj1rs1M+Lsc5pg3AAHmjKkDmLN5PUqTAthtbVKkGWk= +github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227/go.mod h1:635ufmN5bWVQc55Jtakdhff7Z+rUCe0HhcciOcl+qJc= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e h1:0/AbTcrsjPtcKZ+XRXvrAdkGZbU9TrvNO8DbomXrXLE= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e/go.mod h1:KYbEwh2Ax6jYOf/0fgfwGAql9DBcsITI8WrnMCENlNA= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18 h1:/Cc2WgOb9dzxPY4zQbF43AsnejBx6w+V+Fm8TJYtN9M= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18/go.mod h1:i0HGkEaaOYpb4qpu1TtKLWYImz8Bu4P1RJyOn1sVHE8= +github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50 h1:VnCsqVCa2LKKN3L5UPlLgGIZ5w478QdwwvI+/3ql4BM= +github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50/go.mod h1:nGHbM3ml9bi/TxVATa7OiyE4PTf9UHVCBF5LrtwMnSk= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= +github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= +github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= +github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= 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= @@ -69,28 +73,21 @@ github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4Yn github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.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/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -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= @@ -103,8 +100,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gocql/gocql v1.1.0 h1:ow36yzymDGsuKqnkecq2zR3prFkkbdzC/af5zTyPXNc= -github.com/gocql/gocql v1.1.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= +github.com/gocql/gocql v1.3.1 h1:BTwM4rux+ah5G3oH6/MQa+tur/TDd/XAAOXDxBBs7rg= +github.com/gocql/gocql v1.3.1/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= 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= @@ -120,8 +117,8 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU 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 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= 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= @@ -137,8 +134,9 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD 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 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -155,8 +153,7 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/gofuzz v1.0.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= @@ -168,10 +165,8 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf 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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/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.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -193,8 +188,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 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/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM= +github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= 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= @@ -204,8 +199,9 @@ github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= +github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -219,16 +215,15 @@ github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt 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/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= -github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/nats-server/v2 v2.8.1 h1:WZ9m/d8rklkWo6opo3X927vXnuaE00VEEl5zXcpL6qw= -github.com/nats-io/nats.go v1.16.0 h1:zvLE7fGBQYW6MWaFaRdsgm9qT39PJDQoju+DS8KsO1g= -github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nats.go v1.18.0 h1:o480Ao6kuSSFyJO75rGTXCEPj7LGkY84C1Ye+Uhm4c0= +github.com/nats-io/nats.go v1.18.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nyaruka/phonenumbers v1.1.0 h1:OvNAOAl4A9a2kNpzziITbUVH4bBBeKHkHl0llPmkxaA= -github.com/nyaruka/phonenumbers v1.1.0/go.mod h1:cGaEsOrLjIL0iKGqJR5Rfywy86dSkbApEpXuM9KySNA= +github.com/nyaruka/phonenumbers v1.1.6 h1:DcueYq7QrOArAprAYNoQfDgp0KetO4LqtnBtQC6Wyes= +github.com/nyaruka/phonenumbers v1.1.6/go.mod h1:yShPJHDSH3aTKzCbXyVxNpbl2kA+F+Ne5Pun/MvFRos= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= @@ -244,49 +239,48 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn 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 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= 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 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= 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.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= -github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= 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 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/recurly/recurly-client-go/v3 v3.14.0 h1:OHsMM8cvzLwuTD9nmMpgee7elaqIiDGh5W9blIOUggk= -github.com/recurly/recurly-client-go/v3 v3.14.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/recurly/recurly-client-go/v3 v3.16.0 h1:AlTeS8tlSmQrFLKkKSrDfMeswHAY8ThOrxqwM73dc48= +github.com/recurly/recurly-client-go/v3 v3.16.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= 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/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.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 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.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= -github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= @@ -304,22 +298,20 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de 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.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4= -go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8= +go.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs= +go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= 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.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/zap v1.22.0 h1:Zcye5DUgBloQ9BaT4qc9BnjOFog5TvBSAGkJ3Nf70c0= -go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U= +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.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= 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= @@ -329,8 +321,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= 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= @@ -391,13 +383,12 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R 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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/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.0.0-20220708220712-1185a9018129 h1:vucSRfWwTsoXro7P+3Cjlr6flUMtzCwzlvkxEQtHHB0= -golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= 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= @@ -416,8 +407,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ 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-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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= @@ -452,17 +443,14 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w 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-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -470,15 +458,14 @@ 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.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= @@ -515,6 +502,7 @@ golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWc 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-20200617212913-87be026d3888/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= @@ -525,8 +513,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= 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= @@ -572,15 +560,14 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG 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-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 v0.0.0-20220607223854-30acc4cbd2aa h1:u5ndLsuhUo/bFuumgRSYgK92eCf5IEAogxgNBqAjNqs= -google.golang.org/genproto v0.0.0-20220607223854-30acc4cbd2aa/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= 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= @@ -593,10 +580,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa 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.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= 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= @@ -609,8 +594,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj 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.27.1/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 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -624,7 +607,6 @@ 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= @@ -632,7 +614,6 @@ 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= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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= From 4a040f65c4761e794959f5d0aa90c8d47f97347c Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Thu, 8 Jun 2023 17:18:50 +0200 Subject: [PATCH 57/96] chore: go mod Signed-off-by: Sacha Froment --- customtags/tags.go | 23 +- go.mod | 53 +---- go.sum | 566 ++------------------------------------------- 3 files changed, 33 insertions(+), 609 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index 70509d64..997ee552 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -2,8 +2,7 @@ package customtags import ( "fmt" - - crmtypes "github.com/autopilot3/ap3-crm-api-go/services/types" + // crmtypes "github.com/autopilot3/ap3-crm-api-go/services/types" ) const ( @@ -24,16 +23,16 @@ const ( ) type Tag struct { - ID string `json:"id" bson:"id"` - Type TagType `json:"type" bson:"type"` - Icon string `json:"icon" bson:"icon"` - Title string `json:"title" bson:"title"` - DisplayType string `json:"display_type" bson:"display_type"` - LiquidName string `json:"liquid_name" bson:"liquid_name"` - DefaultValue string `json:"default_value" bson:"default_value"` - FormatOption string `json:"format_option" bson:"format_option"` - FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` - ActivityID crmtypes.FieldID `json:"activity_id" bson:"activity_id"` + ID string `json:"id" bson:"id"` + Type TagType `json:"type" bson:"type"` + Icon string `json:"icon" bson:"icon"` + Title string `json:"title" bson:"title"` + DisplayType string `json:"display_type" bson:"display_type"` + LiquidName string `json:"liquid_name" bson:"liquid_name"` + DefaultValue string `json:"default_value" bson:"default_value"` + FormatOption string `json:"format_option" bson:"format_option"` + // FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` + // ActivityID crmtypes.FieldID `json:"activity_id" bson:"activity_id"` } func (t *Tag) GetPreviewString() (string, error) { diff --git a/go.mod b/go.mod index 8e6ff42c..785658b0 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,10 @@ module github.com/autopilot3/liquid -go 1.18 +go 1.20 require ( - github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c - github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50 - github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50 + github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c + github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.8.0 golang.org/x/text v0.9.0 @@ -13,59 +12,19 @@ require ( ) require ( - github.com/alexsergivan/transliterator v1.0.0 // indirect - github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b // indirect - github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e // indirect - github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227 // indirect - github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e // indirect - github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18 // indirect - github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect - github.com/aws/aws-sdk-go v1.44.118 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/gocql/gocql v1.3.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect - github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.15.12 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect - github.com/minio/highwayhash v1.0.2 // indirect - github.com/montanaflynn/stats v0.6.6 // indirect - github.com/nats-io/nats.go v1.18.0 // indirect - github.com/nats-io/nkeys v0.3.0 // indirect - github.com/nats-io/nuid v1.0.1 // indirect - github.com/nyaruka/phonenumbers v1.1.6 // indirect + github.com/kr/pretty v0.3.0 // indirect + github.com/nyaruka/phonenumbers v1.1.7 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.37.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect - github.com/recurly/recurly-client-go/v3 v3.16.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - github.com/xdg-go/pbkdf2 v1.0.0 // indirect - github.com/xdg-go/scram v1.1.1 // indirect - github.com/xdg-go/stringprep v1.0.3 // indirect - github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect go.mongodb.org/mongo-driver v1.11.7 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.3.0 // indirect - golang.org/x/net v0.9.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.7.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e // indirect - google.golang.org/grpc v1.50.1 // indirect - google.golang.org/protobuf v1.28.1 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect - gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index bd1d95a8..89aa02da 100644 --- a/go.sum +++ b/go.sum @@ -1,310 +1,62 @@ -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= -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/HdrHistogram/hdrhistogram-go v1.0.0 h1:jivTvI9tBw5B8wW9Qd0uoQ2qaajb29y4TPhYTgh8Lb0= -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/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= -github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b h1:9fnNViYsEU59RW2qICTwv4ErnTxARfKcC0ua11S3t/Y= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230517065351-633d9d7a6f4b/go.mod h1:LR9AGBqWcVaJh/rmQOjtZhGZg1NFXmj73NvUIOSSjI4= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e h1:yMXDnCtx2LhDXa4cM0lJL1L667W4XNlOxpoOavk0MZA= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20230428072227-01f6abbb4f8e/go.mod h1:ErUx5MMOI6KcPIUEFfMizK+ZUI01EZx9zUfOP37ARc4= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c h1:UIar9xceMgILmrJ97JkUOEgUI058zoAUN9ELvq1NN2k= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20230607052049-44a337e05e9c/go.mod h1:e8zRIIwubUvX2B8vvcmrsXP75sH9dyeAIdXfllivO88= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50 h1:+KIrfst4OWkS5R2dEpgBLmJlIr/tRjBm13zYYc9XGEo= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230606232859-fe3bd640fa50/go.mod h1:9lXsEMiVRlqP1Zs8vwJqFG/AUXOLFAFmOr5B0liqxQ0= -github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227 h1:2Pj1rs1M+Lsc5pg3AAHmjKkDmLN5PUqTAthtbVKkGWk= -github.com/autopilot3/ap3-index-go v0.0.0-20230326222547-9f5e01c5e227/go.mod h1:635ufmN5bWVQc55Jtakdhff7Z+rUCe0HhcciOcl+qJc= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e h1:0/AbTcrsjPtcKZ+XRXvrAdkGZbU9TrvNO8DbomXrXLE= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20230524041201-8c6bc7fd986e/go.mod h1:KYbEwh2Ax6jYOf/0fgfwGAql9DBcsITI8WrnMCENlNA= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18 h1:/Cc2WgOb9dzxPY4zQbF43AsnejBx6w+V+Fm8TJYtN9M= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230320234855-83d147879b18/go.mod h1:i0HGkEaaOYpb4qpu1TtKLWYImz8Bu4P1RJyOn1sVHE8= -github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50 h1:VnCsqVCa2LKKN3L5UPlLgGIZ5w478QdwwvI+/3ql4BM= -github.com/autopilot3/ap3-types-go v0.0.0-20230607051310-98449e071d50/go.mod h1:nGHbM3ml9bi/TxVATa7OiyE4PTf9UHVCBF5LrtwMnSk= -github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= -github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= -github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= -github.com/aws/aws-sdk-go v1.44.118 h1:FJOqIRTukf7+Ulp047/k7JB6eqMXNnj7eb+coORThHQ= -github.com/aws/aws-sdk-go v1.44.118/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c h1:3Kx/si67riZOlDu1Y0jDtoatMyTwBMpNZmU4Sx4xQto= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c/go.mod h1:dtgRnPQWlquCKQV14Pc9tp53y4JFsClBY0xB/bWISDo= +github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 h1:EqE7yey4gFMcdjPYMvAOA/Py74gjaaaGPkfN7Jd00V8= +github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4/go.mod h1:r+n0lyASsNocFfWAonv/miOBSNUPPfqXWLmc6H7P20o= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -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/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= -github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -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.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.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/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -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/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-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/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gocql/gocql v1.3.1 h1:BTwM4rux+ah5G3oH6/MQa+tur/TDd/XAAOXDxBBs7rg= -github.com/gocql/gocql v1.3.1/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= -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-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -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/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 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= -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/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= 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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -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/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.2/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 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/gofuzz v1.0.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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -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/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= -github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= -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/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -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/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/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/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM= -github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -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.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= 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/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= -github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -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/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= -github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -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/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= -github.com/nats-io/nats-server/v2 v2.8.1 h1:WZ9m/d8rklkWo6opo3X927vXnuaE00VEEl5zXcpL6qw= -github.com/nats-io/nats.go v1.18.0 h1:o480Ao6kuSSFyJO75rGTXCEPj7LGkY84C1Ye+Uhm4c0= -github.com/nats-io/nats.go v1.18.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= -github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= -github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nyaruka/phonenumbers v1.1.6 h1:DcueYq7QrOArAprAYNoQfDgp0KetO4LqtnBtQC6Wyes= -github.com/nyaruka/phonenumbers v1.1.6/go.mod h1:yShPJHDSH3aTKzCbXyVxNpbl2kA+F+Ne5Pun/MvFRos= +github.com/nyaruka/phonenumbers v1.1.7 h1:5UUI9hE79Kk0dymSquXbMYB7IlNDNhvu2aNlJpm9et8= +github.com/nyaruka/phonenumbers v1.1.7/go.mod h1:DC7jZd321FqUe+qWSNcHi10tyIyGNXGcNbfkPvdp1Vs= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= -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 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/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.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -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.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -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.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -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 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/recurly/recurly-client-go/v3 v3.16.0 h1:AlTeS8tlSmQrFLKkKSrDfMeswHAY8ThOrxqwM73dc48= -github.com/recurly/recurly-client-go/v3 v3.16.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -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/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= 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 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -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 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= -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.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs= go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= -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.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= @@ -312,317 +64,31 @@ 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.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -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-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= -golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -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/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/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-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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/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.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -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/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-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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-20190130150945-aca44879d564/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.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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/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.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -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.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= 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-20200617212913-87be026d3888/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/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= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -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.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/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-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-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 v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -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.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= -google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -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.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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/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.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= 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= -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= From e918b4873fd4419f4cf4af2ae0d249788cc055af Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Thu, 8 Jun 2023 17:30:20 +0200 Subject: [PATCH 58/96] chore: go mod Signed-off-by: Sacha Froment --- customtags/tags.go | 23 +++---- go.mod | 44 ++++++++++++- go.sum | 151 ++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 196 insertions(+), 22 deletions(-) diff --git a/customtags/tags.go b/customtags/tags.go index 997ee552..70509d64 100644 --- a/customtags/tags.go +++ b/customtags/tags.go @@ -2,7 +2,8 @@ package customtags import ( "fmt" - // crmtypes "github.com/autopilot3/ap3-crm-api-go/services/types" + + crmtypes "github.com/autopilot3/ap3-crm-api-go/services/types" ) const ( @@ -23,16 +24,16 @@ const ( ) type Tag struct { - ID string `json:"id" bson:"id"` - Type TagType `json:"type" bson:"type"` - Icon string `json:"icon" bson:"icon"` - Title string `json:"title" bson:"title"` - DisplayType string `json:"display_type" bson:"display_type"` - LiquidName string `json:"liquid_name" bson:"liquid_name"` - DefaultValue string `json:"default_value" bson:"default_value"` - FormatOption string `json:"format_option" bson:"format_option"` - // FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` - // ActivityID crmtypes.FieldID `json:"activity_id" bson:"activity_id"` + ID string `json:"id" bson:"id"` + Type TagType `json:"type" bson:"type"` + Icon string `json:"icon" bson:"icon"` + Title string `json:"title" bson:"title"` + DisplayType string `json:"display_type" bson:"display_type"` + LiquidName string `json:"liquid_name" bson:"liquid_name"` + DefaultValue string `json:"default_value" bson:"default_value"` + FormatOption string `json:"format_option" bson:"format_option"` + FieldID crmtypes.FieldID `json:"field_id" bson:"field_id"` + ActivityID crmtypes.FieldID `json:"activity_id" bson:"activity_id"` } func (t *Tag) GetPreviewString() (string, error) { diff --git a/go.mod b/go.mod index 785658b0..8ecadb21 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/autopilot3/liquid go 1.20 require ( + github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8 github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 github.com/osteele/tuesday v1.0.3 @@ -12,19 +13,58 @@ require ( ) require ( + github.com/alexsergivan/transliterator v1.0.0 // indirect + github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1 // indirect + github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e // indirect + github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875 // indirect + github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79 // indirect + github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069 // indirect + github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect + github.com/aws/aws-sdk-go v1.44.278 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/gocql/gocql v1.4.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/kr/pretty v0.3.0 // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/minio/highwayhash v1.0.2 // indirect + github.com/montanaflynn/stats v0.6.6 // indirect + github.com/nats-io/nats.go v1.26.0 // indirect + github.com/nats-io/nkeys v0.4.4 // indirect + github.com/nats-io/nuid v1.0.1 // indirect github.com/nyaruka/phonenumbers v1.1.7 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.15.1 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/recurly/recurly-client-go/v3 v3.17.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/xdg-go/pbkdf2 v1.0.0 // indirect + github.com/xdg-go/scram v1.1.1 // indirect + github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect go.mongodb.org/mongo-driver v1.11.7 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect + golang.org/x/crypto v0.8.0 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/grpc v1.55.0 // indirect google.golang.org/protobuf v1.30.0 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 89aa02da..5b965be1 100644 --- a/go.sum +++ b/go.sum @@ -1,31 +1,89 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= +github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1 h1:a5qtvylgeYhlCYfFDXvthweL7F1RcZfdcIPCEq6/RUQ= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1/go.mod h1:OqU75X89yhMB/AnXD7dug1jZVbfQjEbfncdES1mkUe0= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e h1:7d2ooyMPmq1lAQODryU3854GO+vggF42AMikUa3KBtc= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e/go.mod h1:wuRSkANTPp7MS+8L9EMjjCGYp8clKK0cS4q2AyWb3bI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8 h1:xVP4qj21CLZq9LyvypPi14h7NXADGJgUVhFYHYGCTKs= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8/go.mod h1:EGwfVr+YALlj3pF3nH+vEnk04rPPLQ18rv1AXMXcKdE= github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c h1:3Kx/si67riZOlDu1Y0jDtoatMyTwBMpNZmU4Sx4xQto= github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c/go.mod h1:dtgRnPQWlquCKQV14Pc9tp53y4JFsClBY0xB/bWISDo= +github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875 h1:do3SLtrlPpQ+S3eljjbppBIeXguR9K3tuUekNrBA88Y= +github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875/go.mod h1:j87/tXTz/nchA1Trj5ZlDh86CRni9sgEPLUwsfjnDl4= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79 h1:aZ4R359JPugPA94S9Yru0EtHJKaaZnOG1bGZxf79FqA= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79/go.mod h1:c+TMNGeRz+yhTeFP7iv3UDD50Mv5oSm6ft9xBfG7ua8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069 h1:HX8EeEDyNC6gXMZ0nPUbpJ1/lc5M58jEvoA+oxgYnD8= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069/go.mod h1:mHR25lgct7dsXK4p/i/xsckeB19kKcXADYaoeFaY3Ks= github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 h1:EqE7yey4gFMcdjPYMvAOA/Py74gjaaaGPkfN7Jd00V8= github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4/go.mod h1:r+n0lyASsNocFfWAonv/miOBSNUPPfqXWLmc6H7P20o= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= +github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= +github.com/aws/aws-sdk-go v1.44.278 h1:jJFDO/unYFI48WQk7UGSyO3rBA/gnmRpNYNuAw/fPgE= +github.com/aws/aws-sdk-go v1.44.278/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +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/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gocql/gocql v1.4.0 h1:NIlXAJXsjzjGvVn36njh9OLYWzS3D7FdvsifLj4eDEY= +github.com/gocql/gocql v1.4.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +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/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= 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/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= +github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4= +github.com/nats-io/nats-server/v2 v2.9.17 h1:gFpUQ3hqIDJrnqog+Bl5vaXg+RhhYEZIElasEuRn2tw= +github.com/nats-io/nats.go v1.26.0 h1:fWJTYPnZ8DzxIaqIHOAMfColuznchnd5Ab5dbJpgPIE= +github.com/nats-io/nats.go v1.26.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= +github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA= +github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nyaruka/phonenumbers v1.1.7 h1:5UUI9hE79Kk0dymSquXbMYB7IlNDNhvu2aNlJpm9et8= github.com/nyaruka/phonenumbers v1.1.7/go.mod h1:DC7jZd321FqUe+qWSNcHi10tyIyGNXGcNbfkPvdp1Vs= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= @@ -36,25 +94,44 @@ 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 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/recurly/recurly-client-go/v3 v3.17.0 h1:wJ9prRj6zZQWTvj2wiRETZ95SerzgceU3cPKRpumqiw= +github.com/recurly/recurly-client-go/v3 v3.17.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +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 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= +github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs= go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= @@ -64,20 +141,74 @@ 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.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190412213103-97732733099d/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-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200617212913-87be026d3888/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-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +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= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= @@ -85,8 +216,10 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw 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-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/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.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/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= From b1a99f1d69c2e78382cb63a5648e3f01b03c36df Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Wed, 14 Jun 2023 17:08:35 +0200 Subject: [PATCH 59/96] chore: Remove autopilot from go.sum --- go.sum | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/go.sum b/go.sum index 5b965be1..0dc6fdea 100644 --- a/go.sum +++ b/go.sum @@ -1,24 +1,6 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1 h1:a5qtvylgeYhlCYfFDXvthweL7F1RcZfdcIPCEq6/RUQ= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1/go.mod h1:OqU75X89yhMB/AnXD7dug1jZVbfQjEbfncdES1mkUe0= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e h1:7d2ooyMPmq1lAQODryU3854GO+vggF42AMikUa3KBtc= -github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e/go.mod h1:wuRSkANTPp7MS+8L9EMjjCGYp8clKK0cS4q2AyWb3bI= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8 h1:xVP4qj21CLZq9LyvypPi14h7NXADGJgUVhFYHYGCTKs= -github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8/go.mod h1:EGwfVr+YALlj3pF3nH+vEnk04rPPLQ18rv1AXMXcKdE= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c h1:3Kx/si67riZOlDu1Y0jDtoatMyTwBMpNZmU4Sx4xQto= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c/go.mod h1:dtgRnPQWlquCKQV14Pc9tp53y4JFsClBY0xB/bWISDo= -github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875 h1:do3SLtrlPpQ+S3eljjbppBIeXguR9K3tuUekNrBA88Y= -github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875/go.mod h1:j87/tXTz/nchA1Trj5ZlDh86CRni9sgEPLUwsfjnDl4= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79 h1:aZ4R359JPugPA94S9Yru0EtHJKaaZnOG1bGZxf79FqA= -github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79/go.mod h1:c+TMNGeRz+yhTeFP7iv3UDD50Mv5oSm6ft9xBfG7ua8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069 h1:HX8EeEDyNC6gXMZ0nPUbpJ1/lc5M58jEvoA+oxgYnD8= -github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069/go.mod h1:mHR25lgct7dsXK4p/i/xsckeB19kKcXADYaoeFaY3Ks= -github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 h1:EqE7yey4gFMcdjPYMvAOA/Py74gjaaaGPkfN7Jd00V8= -github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4/go.mod h1:r+n0lyASsNocFfWAonv/miOBSNUPPfqXWLmc6H7P20o= -github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= -github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= github.com/aws/aws-sdk-go v1.44.278 h1:jJFDO/unYFI48WQk7UGSyO3rBA/gnmRpNYNuAw/fPgE= github.com/aws/aws-sdk-go v1.44.278/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= From 8cf9c652601c0aee12e0e4a1942a438948896e13 Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Wed, 14 Jun 2023 17:33:00 +0200 Subject: [PATCH 60/96] chore: Remove autopilot from go.sum & go.mod --- go.mod | 9 --------- 1 file changed, 9 deletions(-) diff --git a/go.mod b/go.mod index 8ecadb21..8e83b203 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,6 @@ module github.com/autopilot3/liquid go 1.20 require ( - github.com/autopilot3/ap3-crm-api-go v0.0.0-20230608145736-bf4e29090aa8 - github.com/autopilot3/ap3-helpers-go v0.0.0-20230608142806-9a8771d3fb4c - github.com/autopilot3/ap3-types-go v0.0.0-20230608142628-8549cf54f6c4 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.8.0 golang.org/x/text v0.9.0 @@ -14,12 +11,6 @@ require ( require ( github.com/alexsergivan/transliterator v1.0.0 // indirect - github.com/autopilot3/ap3-auth-go v1.0.13-0.20230608142644-40d909d9b5b1 // indirect - github.com/autopilot3/ap3-billing-api-go v0.0.0-20230608111542-54a58a288e5e // indirect - github.com/autopilot3/ap3-index-go v0.0.0-20230608112303-35a5eba81875 // indirect - github.com/autopilot3/ap3-ring-api-go v0.0.0-20230608112225-e8bd22621d79 // indirect - github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230608143140-7fb6ff7a9069 // indirect - github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect github.com/aws/aws-sdk-go v1.44.278 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect From 52574125ceec4bc2371bd6b08e6140258493d6bd Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 24 Jul 2023 13:05:44 +1000 Subject: [PATCH 61/96] add dummy trackURL filter to bypass liquid syntax check --- engine.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/engine.go b/engine.go index 91bec6bd..941ba46a 100644 --- a/engine.go +++ b/engine.go @@ -284,6 +284,11 @@ func NewEngine() *Engine { } return false }) + + // trackURL here is a dummy filter, it is used to avoid error when parsing liquid template. Services support this filter will replace it with real filter + engine.RegisterFilter("trackURL", func(s string) string { + return s + }) return engine } From 5cbf03120d9f277c42006c6ab4d423aa816c7e8b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 24 Jul 2023 13:07:41 +1000 Subject: [PATCH 62/96] fix mod --- go.mod | 29 +++++++++++++++++--------- go.sum | 64 ++++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 59 insertions(+), 34 deletions(-) diff --git a/go.mod b/go.mod index 8e83b203..d338ebd9 100644 --- a/go.mod +++ b/go.mod @@ -3,14 +3,23 @@ module github.com/autopilot3/liquid go 1.20 require ( + github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 + github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68 + github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.8.0 - golang.org/x/text v0.9.0 + golang.org/x/text v0.10.0 gopkg.in/yaml.v2 v2.4.0 ) require ( github.com/alexsergivan/transliterator v1.0.0 // indirect + github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a // indirect + github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c // indirect + github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea // indirect + github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f // indirect + github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2 // indirect + github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect github.com/aws/aws-sdk-go v1.44.278 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -26,12 +35,12 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/montanaflynn/stats v0.6.6 // indirect + github.com/nats-io/jwt/v2 v2.4.1 // indirect github.com/nats-io/nats.go v1.26.0 // indirect github.com/nats-io/nkeys v0.4.4 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/nyaruka/phonenumbers v1.1.7 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.15.1 // indirect github.com/prometheus/client_model v0.3.0 // indirect @@ -41,19 +50,19 @@ require ( github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect - github.com/xdg-go/scram v1.1.1 // indirect - github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/xdg-go/scram v1.1.2 // indirect + github.com/xdg-go/stringprep v1.0.4 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.mongodb.org/mongo-driver v1.11.7 // indirect + go.mongodb.org/mongo-driver v1.12.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.8.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.8.0 // indirect + golang.org/x/crypto v0.10.0 // indirect + golang.org/x/net v0.11.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.9.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/genproto v0.0.0-20230320184635-7606e756e683 // indirect google.golang.org/grpc v1.55.0 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index 0dc6fdea..191654e4 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,24 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a h1:AmcQIDNyHmFjpF7AHBWeAvD+3/Keo0ekyfKntkBTE+I= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a/go.mod h1:G5G/OxZ/ZulRJNMkKxjdWCeBYug8DVWvLcg46mF8C6c= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c h1:m8FLXveG84nlTh8DNKteH5clIaEv578g+jDYtBg5xxw= +github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c/go.mod h1:bgKV0qCvMk+1A1XScaoB5QfGbchGl5YEJCqMcIcN4UI= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 h1:JS2A7z9JlEknMUNQJmeY3SX5s0I8D5ga0H8JSngPLHw= +github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5/go.mod h1:SJs66Oti32Zro6TrN3+5+mgsuI7CPkgGNxXsJIZG1Zg= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68 h1:VaAO/Gd3WJA3xdwN7UnvDP7aFu86hASw7OePzpN0K54= +github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68/go.mod h1:Pvl00mHB5pua7XpyEoz0w5zm8IRx7wgBOyyrPy7lfiU= +github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea h1:styrioXYutY+Iw+cayBdyJo17uksbxfqkcnOnPzf6S0= +github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea/go.mod h1:i7rtUVGqaVgEK+MRY9OgpDaKEoSRkj4JAsDWiTZC9wg= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f h1:xzzx7z1F2XK9DDS3MR5a5plWX6T0YpVzAWcabMnf/SQ= +github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f/go.mod h1:p+zOzV+4mfoRpKUZrVnf3g9ENKRPAJkwyFEQxU12iMY= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2 h1:yPjtxirjuvzhbuuMAhdIZFBzYFM6rKn/EXst068RDJY= +github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2/go.mod h1:grZ3E1woGyvBHDdzOZz5vC7Ysr3Kqtgn0MX7fphM5Ao= +github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0 h1:6RuJ3+zFjAchVZE9E/BGjaAc1Cz470jbWEGmWTDMlHI= +github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0/go.mod h1:UOEjcRDxJuWRmq82hfGWt4ajMcsXpnLc5wOkZRgySzw= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= +github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= github.com/aws/aws-sdk-go v1.44.278 h1:jJFDO/unYFI48WQk7UGSyO3rBA/gnmRpNYNuAw/fPgE= github.com/aws/aws-sdk-go v1.44.278/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= @@ -59,6 +77,7 @@ github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJ github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4= +github.com/nats-io/jwt/v2 v2.4.1/go.mod h1:24BeQtRwxRV8ruvC4CojXlx/WQ/VjuwlYiH+vu/+ibI= github.com/nats-io/nats-server/v2 v2.9.17 h1:gFpUQ3hqIDJrnqog+Bl5vaXg+RhhYEZIElasEuRn2tw= github.com/nats-io/nats.go v1.26.0 h1:fWJTYPnZ8DzxIaqIHOAMfColuznchnd5Ab5dbJpgPIE= github.com/nats-io/nats.go v1.26.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= @@ -92,30 +111,27 @@ github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 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 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= +github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= +github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= +github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.11.7 h1:LIwYxASDLGUg/8wOhgOOZhX8tQa/9tgZPgzZoVqJvcs= -go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= +go.mongodb.org/mongo-driver v1.12.0 h1:aPx33jmn/rQuJXPQLZQ8NtfPQG8CaqgLThFtqRb0PiE= +go.mongodb.org/mongo-driver v1.12.0/go.mod h1:AZkxhPnFJUoH7kZlFkVKucV20K387miPfm7oimrSmK0= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= @@ -129,8 +145,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -142,16 +158,15 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -162,8 +177,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -171,10 +186,12 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200617212913-87be026d3888/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -187,8 +204,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683 h1:khxVcsk/FhnzxMKOyD+TDGwjbEOpcPuIpmafPGFmhMA= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -196,7 +213,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 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-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= From 3bddbfde5863c5892356232aed98f231bb8b4e5c Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 24 Jul 2023 14:23:42 +1000 Subject: [PATCH 63/96] add $$TRACK_ME to help identify url want to be tracked --- engine.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 941ba46a..d5c25ef0 100644 --- a/engine.go +++ b/engine.go @@ -287,7 +287,7 @@ func NewEngine() *Engine { // trackURL here is a dummy filter, it is used to avoid error when parsing liquid template. Services support this filter will replace it with real filter engine.RegisterFilter("trackURL", func(s string) string { - return s + return "$$TRACK_ME:" + s + "$$" }) return engine } From 50e84f5cf69538a25c1f3793af76cd483f27d960 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 24 Jul 2023 14:24:55 +1000 Subject: [PATCH 64/96] lint --- filters/standard_filters.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 1f93eeae..9814cc50 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -3,8 +3,8 @@ package filters import ( "crypto/hmac" - "crypto/md5" // #nosec G501 - "crypto/sha1" + "crypto/md5" // #nosec G501 + "crypto/sha1" // #nosec G505 "crypto/sha256" "encoding/json" "fmt" From 30b2413767e8bcee8fe1fcdca36a1a8a2f903073 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 21 Aug 2023 12:29:13 +1000 Subject: [PATCH 65/96] unescape string before track URL before bee could escape the append/original URL --- engine.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/engine.go b/engine.go index d5c25ef0..11836fd1 100644 --- a/engine.go +++ b/engine.go @@ -3,6 +3,7 @@ package liquid import ( "context" "fmt" + "html" "io" "reflect" "strconv" @@ -287,7 +288,7 @@ func NewEngine() *Engine { // trackURL here is a dummy filter, it is used to avoid error when parsing liquid template. Services support this filter will replace it with real filter engine.RegisterFilter("trackURL", func(s string) string { - return "$$TRACK_ME:" + s + "$$" + return "$$TRACK_ME:" + html.UnescapeString(s) + "$$" }) return engine } From e46e2b03c138bff450c5e637061ce2825c35d8e5 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 17 Oct 2023 15:59:28 +1100 Subject: [PATCH 66/96] retire ioutil --- cmd/liquid/main.go | 7 +++---- render/context.go | 4 ++-- render/context_test.go | 5 ++--- render/render.go | 3 +-- render/render_test.go | 3 +-- tags/control_flow_tags_test.go | 3 +-- tags/include_tag_test.go | 6 +++--- tags/iteration_tags_test.go | 4 ++-- tags/standard_tags_test.go | 4 ++-- 9 files changed, 17 insertions(+), 22 deletions(-) diff --git a/cmd/liquid/main.go b/cmd/liquid/main.go index 72db9408..f96ea078 100644 --- a/cmd/liquid/main.go +++ b/cmd/liquid/main.go @@ -4,15 +4,14 @@ // // Examples: // -// echo '{{ "Hello " | append: "World" }}' | liquid -// liquid source.tpl +// echo '{{ "Hello " | append: "World" }}' | liquid +// liquid source.tpl package main import ( "bytes" "fmt" "io" - "io/ioutil" "os" "strings" @@ -49,7 +48,7 @@ func run(args []string) error { usage() exit(1) case len(args) == 1: - s, err := ioutil.ReadFile(args[0]) + s, err := os.ReadFile(args[0]) if err != nil { return err } diff --git a/render/context.go b/render/context.go index 2a0bdc17..fed8cf43 100644 --- a/render/context.go +++ b/render/context.go @@ -3,7 +3,7 @@ package render import ( "bytes" "io" - "io/ioutil" + "os" "strings" "github.com/autopilot3/liquid/expressions" @@ -112,7 +112,7 @@ func (c rendererContext) RenderChildren(w io.Writer) Error { } func (c rendererContext) RenderFile(filename string, b map[string]interface{}) (string, error) { - source, err := ioutil.ReadFile(filename) + source, err := os.ReadFile(filename) if err != nil { return "", err } diff --git a/render/context_test.go b/render/context_test.go index aaf3b7eb..099d4f77 100644 --- a/render/context_test.go +++ b/render/context_test.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "os" "testing" @@ -103,7 +102,7 @@ func TestContext_errors(t *testing.T) { t.Run(fmt.Sprintf("%02d", i+1), func(t *testing.T) { root, err := cfg.Compile(test.in, parser.SourceLoc{}) require.NoErrorf(t, err, test.in) - err = Render(root, ioutil.Discard, contextTestBindings, cfg) + err = Render(root, io.Discard, contextTestBindings, cfg) require.Errorf(t, err, test.in) require.Containsf(t, err.Error(), test.expect, test.in) }) @@ -119,7 +118,7 @@ func TestContext_file_not_found_error(t *testing.T) { addContextTestTags(cfg) root, err := cfg.Compile(`{% test_render_file testdata/missing_file %}`, parser.SourceLoc{}) require.NoError(t, err) - err = Render(root, ioutil.Discard, contextTestBindings, cfg) + err = Render(root, io.Discard, contextTestBindings, cfg) require.Error(t, err) require.True(t, os.IsNotExist(err.Cause())) } diff --git a/render/render.go b/render/render.go index 389eee61..0ee76d22 100644 --- a/render/render.go +++ b/render/render.go @@ -4,7 +4,6 @@ package render import ( "fmt" "io" - "io/ioutil" "reflect" "strings" "time" @@ -25,7 +24,7 @@ func Render(node Node, w io.Writer, vars map[string]interface{}, c Config) Error } func FindVariables(node Node, c Config) (map[string]interface{}, Error) { - tw := trimWriter{w: ioutil.Discard} + tw := trimWriter{w: io.Discard} ctx := newFindVariablesNodeContext(c) if err := node.render(&tw, ctx); err != nil { return nil, err diff --git a/render/render_test.go b/render/render_test.go index 5c7192e1..31655277 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "testing" "time" @@ -107,7 +106,7 @@ func TestRenderErrors(t *testing.T) { t.Run(fmt.Sprintf("%02d", i+1), func(t *testing.T) { root, err := cfg.Compile(test.in, parser.SourceLoc{}) require.NoErrorf(t, err, test.in) - err = Render(root, ioutil.Discard, renderTestBindings, cfg) + err = Render(root, io.Discard, renderTestBindings, cfg) require.Errorf(t, err, test.in) require.Containsf(t, err.Error(), test.out, test.in) }) diff --git a/tags/control_flow_tags_test.go b/tags/control_flow_tags_test.go index 817371f4..949feaf1 100644 --- a/tags/control_flow_tags_test.go +++ b/tags/control_flow_tags_test.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "testing" "github.com/autopilot3/liquid/parser" @@ -93,7 +92,7 @@ func TestControlFlowTags_errors(t *testing.T) { t.Run(fmt.Sprintf("%02d", i+1), func(t *testing.T) { root, err := cfg.Compile(test.in, parser.SourceLoc{}) require.NoErrorf(t, err, test.in) - err = render.Render(root, ioutil.Discard, tagTestBindings, cfg) + err = render.Render(root, io.Discard, tagTestBindings, cfg) require.Errorf(t, err, test.in) require.Contains(t, err.Error(), test.expected, test.in) }) diff --git a/tags/include_tag_test.go b/tags/include_tag_test.go index bdb35d6d..a53ed5d4 100644 --- a/tags/include_tag_test.go +++ b/tags/include_tag_test.go @@ -2,7 +2,7 @@ package tags import ( "bytes" - "io/ioutil" + "io" "os" "strings" "testing" @@ -41,7 +41,7 @@ func TestIncludeTag(t *testing.T) { // errors root, err = config.Compile(`{% include 10 %}`, loc) require.NoError(t, err) - err = render.Render(root, ioutil.Discard, includeTestBindings, config) + err = render.Render(root, io.Discard, includeTestBindings, config) require.Error(t, err) require.Contains(t, err.Error(), "requires a string") } @@ -54,7 +54,7 @@ func TestIncludeTag_file_not_found_error(t *testing.T) { // See the comment in TestIncludeTag_file_not_found_error. root, err := config.Compile(`{% include "missing_file.html" %}`, loc) require.NoError(t, err) - err = render.Render(root, ioutil.Discard, includeTestBindings, config) + err = render.Render(root, io.Discard, includeTestBindings, config) require.Error(t, err) require.True(t, os.IsNotExist(err.Cause())) } diff --git a/tags/iteration_tags_test.go b/tags/iteration_tags_test.go index 02af2cf7..89b970b5 100644 --- a/tags/iteration_tags_test.go +++ b/tags/iteration_tags_test.go @@ -3,7 +3,7 @@ package tags import ( "bytes" "fmt" - "io/ioutil" + "io" "regexp" "strings" "testing" @@ -157,7 +157,7 @@ func TestIterationTags_errors(t *testing.T) { t.Run(fmt.Sprintf("%02d", i+1+len(iterationSyntaxErrorTests)), func(t *testing.T) { root, err := cfg.Compile(test.in, parser.SourceLoc{}) require.NoErrorf(t, err, test.in) - err = render.Render(root, ioutil.Discard, iterationTestBindings, cfg) + err = render.Render(root, io.Discard, iterationTestBindings, cfg) require.Errorf(t, err, test.in) require.Containsf(t, err.Error(), test.expected, test.in) }) diff --git a/tags/standard_tags_test.go b/tags/standard_tags_test.go index 05bf8577..04041bab 100644 --- a/tags/standard_tags_test.go +++ b/tags/standard_tags_test.go @@ -3,7 +3,7 @@ package tags import ( "bytes" "fmt" - "io/ioutil" + "io" "testing" "github.com/autopilot3/liquid/parser" @@ -100,7 +100,7 @@ func TestStandardTags_render_errors(t *testing.T) { t.Run(fmt.Sprintf("%02d", i+1), func(t *testing.T) { root, err := config.Compile(test.in, parser.SourceLoc{}) require.NoErrorf(t, err, test.in) - err = render.Render(root, ioutil.Discard, tagTestBindings, config) + err = render.Render(root, io.Discard, tagTestBindings, config) require.Errorf(t, err, test.in) require.Containsf(t, err.Error(), test.expected, test.in) }) From 78aaa509da82bb692549ba331b7f1bf24c3aa0e5 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 5 Feb 2024 09:27:59 +1100 Subject: [PATCH 67/96] date time filter supports time too --- engine.go | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/engine.go b/engine.go index 5e3887ab..01d31223 100644 --- a/engine.go +++ b/engine.go @@ -108,22 +108,35 @@ func NewEngine() *Engine { } }) - engine.RegisterFilter("dateFormatOrDefault", func(s date.Date, format string, defaultValue string) string { - if s == 0 { + engine.RegisterFilter("dateFormatOrDefault", func(s interface{}, format string, defaultValue string) string { + var ( + d date.Date + err error + ) + switch s := s.(type) { + case date.Date: + d = s + case time.Time: + d, err = date.NewFromTime(s) + if err != nil { + return defaultValue + } + } + if d.IsZero() { return defaultValue } switch format { case "mdy": - return fmt.Sprintf("%02d/%02d/%d", s.Month(), s.Day(), s.Year()) + return fmt.Sprintf("%02d/%02d/%d", d.Month(), d.Day(), d.Year()) case "dmy": - return fmt.Sprintf("%02d/%02d/%d", s.Day(), s.Month(), s.Year()) + return fmt.Sprintf("%02d/%02d/%d", d.Day(), d.Month(), d.Year()) case "ymd": - return fmt.Sprintf("%d/%02d/%02d", s.Year(), s.Month(), s.Day()) + return fmt.Sprintf("%d/%02d/%02d", d.Year(), d.Month(), d.Day()) case "ydm": - return fmt.Sprintf("%d/%02d/%02d", s.Year(), s.Day(), s.Month()) + return fmt.Sprintf("%d/%02d/%02d", d.Year(), d.Day(), d.Month()) default: - return s.String() + return d.String() } }) From 1de69f6df4177ffb3e9a21ff271f6cd821a2ac78 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 5 Feb 2024 09:40:36 +1100 Subject: [PATCH 68/96] add dateFormatOrDefault test --- cmd/liquid/main_test.go | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/cmd/liquid/main_test.go b/cmd/liquid/main_test.go index add66c4f..67680b6e 100644 --- a/cmd/liquid/main_test.go +++ b/cmd/liquid/main_test.go @@ -3,7 +3,9 @@ package main import ( "bytes" "testing" + "time" + "github.com/autopilot3/ap3-types-go/types/date" "github.com/autopilot3/liquid" "github.com/stretchr/testify/require" ) @@ -109,3 +111,48 @@ func TestRenderAllowedTags(t *testing.T) { }) } } + +func TestDateFormat(t *testing.T) { + + bDate, _ := date.New(1994, 4, 28, "UTC") + bindings := map[string]interface{}{ + "people": map[string]interface{}{ + "birthday": bDate, + }, + } + tests := []struct { + name string + v interface{} + src string + expected string + }{ + { + "date", + bDate, + "{{ people.birthday | dateFormatOrDefault: 'dmy' | default: '0001-01-01' }}", + "28/04/1994", + }, + { + "time", + time.Date(1994, time.April, 28, 0, 0, 0, 0, time.UTC), + "{{ people.birthday | dateFormatOrDefault: 'dmy' | default: '0001-01-01' }}", + "28/04/1994", + }, + } + for _, tt := range tests { + engine := liquid.NewEngine() + tmpl, err := engine.ParseString(tt.src) + if err != nil { + t.Fatal(err) + } + t.Run(tt.name, func(t *testing.T) { + out, err := tmpl.RenderString(bindings) + if err != nil { + t.Fatal(err) + } + if out != tt.expected { + t.Errorf("TestRenderAllowedTags() = %v, want %v", out, tt.expected) + } + }) + } +} From bb1da1f00f683edd844fd79271f1d1ccce1f290a Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Mon, 25 Mar 2024 10:32:35 +1100 Subject: [PATCH 69/96] Fix find vars inside control flow blocks --- go.mod | 22 +++++++-------- go.sum | 57 ++++++++++++++++++++++----------------- render/context.go | 6 +++++ tags/control_flow_tags.go | 6 ++++- template.go | 6 +++++ 5 files changed, 60 insertions(+), 37 deletions(-) diff --git a/go.mod b/go.mod index d338ebd9..4e25ffbf 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/autopilot3/liquid -go 1.20 +go 1.22 require ( github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 @@ -8,7 +8,7 @@ require ( github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.8.0 - golang.org/x/text v0.10.0 + golang.org/x/text v0.14.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -27,7 +27,7 @@ require ( github.com/gocql/gocql v1.4.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -37,7 +37,7 @@ require ( github.com/montanaflynn/stats v0.6.6 // indirect github.com/nats-io/jwt/v2 v2.4.1 // indirect github.com/nats-io/nats.go v1.26.0 // indirect - github.com/nats-io/nkeys v0.4.4 // indirect + github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/nyaruka/phonenumbers v1.1.7 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect @@ -57,14 +57,14 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.10.0 // indirect - golang.org/x/net v0.11.0 // indirect - golang.org/x/sync v0.2.0 // indirect - golang.org/x/sys v0.9.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto v0.0.0-20230320184635-7606e756e683 // indirect - google.golang.org/grpc v1.55.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/grpc v1.62.1 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 191654e4..ea950ba0 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,5 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a h1:AmcQIDNyHmFjpF7AHBWeAvD+3/Keo0ekyfKntkBTE+I= @@ -23,6 +24,7 @@ github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYO github.com/aws/aws-sdk-go v1.44.278 h1:jJFDO/unYFI48WQk7UGSyO3rBA/gnmRpNYNuAw/fPgE= github.com/aws/aws-sdk-go v1.44.278/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= 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/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= @@ -41,18 +43,18 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/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/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.2/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.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -66,9 +68,11 @@ github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/d github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= 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/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= @@ -79,10 +83,11 @@ github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4= github.com/nats-io/jwt/v2 v2.4.1/go.mod h1:24BeQtRwxRV8ruvC4CojXlx/WQ/VjuwlYiH+vu/+ibI= github.com/nats-io/nats-server/v2 v2.9.17 h1:gFpUQ3hqIDJrnqog+Bl5vaXg+RhhYEZIElasEuRn2tw= +github.com/nats-io/nats-server/v2 v2.9.17/go.mod h1:eQysm3xDZmIjfkjr7DuD9DjRFpnxQc2vKVxtEg0Dp6s= github.com/nats-io/nats.go v1.26.0 h1:fWJTYPnZ8DzxIaqIHOAMfColuznchnd5Ab5dbJpgPIE= github.com/nats-io/nats.go v1.26.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= -github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA= -github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64= +github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= +github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nyaruka/phonenumbers v1.1.7 h1:5UUI9hE79Kk0dymSquXbMYB7IlNDNhvu2aNlJpm9et8= @@ -106,6 +111,7 @@ github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB github.com/recurly/recurly-client-go/v3 v3.17.0 h1:wJ9prRj6zZQWTvj2wiRETZ95SerzgceU3cPKRpumqiw= github.com/recurly/recurly-client-go/v3 v3.17.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6Jbniq9M1ESBwSxbLaS9eQ= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -135,6 +141,7 @@ go.mongodb.org/mongo-driver v1.12.0/go.mod h1:AZkxhPnFJUoH7kZlFkVKucV20K387miPfm go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= 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.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= @@ -145,8 +152,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -158,15 +165,15 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -177,8 +184,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -189,9 +196,10 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200617212913-87be026d3888/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -204,16 +212,15 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto v0.0.0-20230320184635-7606e756e683 h1:khxVcsk/FhnzxMKOyD+TDGwjbEOpcPuIpmafPGFmhMA= -google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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/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.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/render/context.go b/render/context.go index fed8cf43..6d417c9e 100644 --- a/render/context.go +++ b/render/context.go @@ -51,6 +51,8 @@ type Context interface { WrapError(err error) Error GetConfig() *Config + + IsFindVars() bool } type rendererContext struct { @@ -59,6 +61,10 @@ type rendererContext struct { cn *BlockNode } +func (c rendererContext) IsFindVars() bool { + return c.ctx.findVariablesOnly +} + func (c rendererContext) Errorf(format string, a ...interface{}) Error { return renderErrorf(c.node, format, a...) } diff --git a/tags/control_flow_tags.go b/tags/control_flow_tags.go index 308e7839..34bbbb22 100644 --- a/tags/control_flow_tags.go +++ b/tags/control_flow_tags.go @@ -125,7 +125,11 @@ func ifTagCompiler(polarity bool) func(render.BlockNode) (func(io.Writer, render if err != nil { return err } - if value != nil && value != false { + if ctx.IsFindVars() { + if err := ctx.RenderBlock(w, b.body); err != nil { + return err + } + } else if value != nil && value != false { return ctx.RenderBlock(w, b.body) } } diff --git a/template.go b/template.go index 828cb3b6..27bbc597 100644 --- a/template.go +++ b/template.go @@ -24,6 +24,12 @@ func newTemplate(cfg *render.Config, source []byte, path string, line int) (*Tem return &Template{root, cfg}, nil } +// GetRoot returns the root node of the abstract syntax tree (AST) representing +// the parsed template. +func (t *Template) GetRoot() render.Node { + return t.root +} + // Render executes the template with the specified variable bindings. func (t *Template) Render(vars Bindings) ([]byte, SourceError) { buf := new(bytes.Buffer) From 9b5f70cd0e13b0f256879d73343e01a28b25630f Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Mon, 25 Mar 2024 13:17:23 +1100 Subject: [PATCH 70/96] Fix case control flow find vars --- tags/control_flow_tags.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tags/control_flow_tags.go b/tags/control_flow_tags.go index 34bbbb22..246890c9 100644 --- a/tags/control_flow_tags.go +++ b/tags/control_flow_tags.go @@ -73,7 +73,11 @@ func caseTagCompiler(node render.BlockNode) (func(io.Writer, render.Context) err if err != nil { return err } - if b { + if ctx.IsFindVars() { + if err := ctx.RenderBlock(w, clause.body()); err != nil { + return err + } + } else if b { return ctx.RenderBlock(w, clause.body()) } } From 422dcbdc7920e0f6564d08a06f237179703d40bb Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Wed, 27 Mar 2024 10:02:37 +1100 Subject: [PATCH 71/96] Implement loop vars --- engine_test.go | 52 ++++++++++++++++++++++++ expressions/context.go | 89 ++++++++++++++++++++++++++++++++++++++++-- render/context.go | 19 +++++++++ render/render.go | 8 ++++ tags/iteration_tags.go | 10 +++++ 5 files changed, 174 insertions(+), 4 deletions(-) diff --git a/engine_test.go b/engine_test.go index a4c5e266..cd99958a 100644 --- a/engine_test.go +++ b/engine_test.go @@ -2,6 +2,7 @@ package liquid import ( "bytes" + "encoding/json" "fmt" "io" "testing" @@ -147,3 +148,54 @@ func TestDecimalWithDelimiterFilter(t *testing.T) { t.Error("decimal with delimiter filter error") } } + +func TestFindVariables(t *testing.T) { + engine := NewEngine() + + tests := []struct { + name string + liquid string + expectedVars string + }{ + { + name: "2 levels loop", + liquid: `{% for company in people.companies %} + {% for instance in people.instances %} + {{ company.name }} + {{ instance.name }} + {% endfor %} + {% endfor %}`, + expectedVars: `{"people.companies":{"Loop":true,"Attributes":{"name":{"Loop":false,"Attributes":null}}},"people.instances":{"Loop":true,"Attributes":{"name":{"Loop":false,"Attributes":null}}}}`, + }, + { + name: "2 levels loop which uses var of top loop", + liquid: `{% for company in people.companies %} + {% for instance in company.instances %} + {{ company.name }} + {{ instance.name }} + {% endfor %} + {% endfor %}`, + expectedVars: `{"people.companies":{"Loop":true,"Attributes":{"instances":{"Loop":true,"Attributes":{"name":{"Loop":false,"Attributes":null}}},"name":{"Loop":false,"Attributes":null}}}}`, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + tmpl, err := engine.ParseString(test.liquid) + if err != nil { + t.Fatalf("Expected no err: but got %s", err) + } + vars, err := tmpl.FindVariables() + if err != nil { + t.Fatalf("Expected no FindVariables err: but got %s", err) + } + varsJSON, jerr := json.Marshal(vars) + if jerr != nil { + t.Fatalf("Expected no Marshal err: but got %s", jerr) + } + + if string(varsJSON) != test.expectedVars { + t.Errorf("Expected:\n%s\nbut got:\n%s", test.expectedVars, string(varsJSON)) + } + }) + } +} diff --git a/expressions/context.go b/expressions/context.go index c26a1a95..1c30d9ab 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -2,6 +2,7 @@ package expressions import ( "reflect" + "strings" "github.com/autopilot3/liquid/values" ) @@ -66,17 +67,97 @@ func (c *varsContext) Clone() Context { return c } +const LatestVarNameKey = "$LATEST$" +const LoopVarsKey = "$LOOP_VARS$" + +type VariableBind struct { + Loop bool + Attributes map[string]*VariableBind +} + +type LoopVar struct { + Name string + Source string +} + +type LoopVarsStack struct { + LastKey int + Vars map[int]LoopVar +} + +func (l *LoopVarsStack) Set(name string, source string) int { + key := l.LastKey + l.Vars[key] = LoopVar{ + Name: name + ".", + Source: source, + } + l.LastKey++ + return key +} + +func (l *LoopVarsStack) Remove(key int) { + delete(l.Vars, key) +} + +func NewLoopVars() *LoopVarsStack { + return &LoopVarsStack{ + Vars: make(map[int]LoopVar), + } +} + // Get looks up a variable value in the expression context. func (c *varsContext) Get(name string) interface{} { - if len(c.currentVars) == 0 { - c.variables[name] = struct{}{} - } else { + if len(c.currentVars) > 0 { for idx := len(c.currentVars) - 1; idx >= 0; idx-- { name += "." + c.currentVars[idx] } - c.variables[name] = struct{}{} c.currentVars = c.currentVars[:0] } + if loopVars, ok := c.variables[LoopVarsKey]; ok { + loopVars := loopVars.(*LoopVarsStack) + for _, loopVar := range loopVars.Vars { + if strings.HasPrefix(name, loopVar.Name) { + var bind *VariableBind + attributeName := strings.TrimPrefix(name, loopVar.Name) + // only 2 levels of array is allowed + objArrays := strings.SplitN(loopVar.Source, "[]", 2) + if len(objArrays) > 1 { + if val, ok := c.variables[objArrays[0]]; ok { + bind = val.(*VariableBind) + attr, ok := bind.Attributes[strings.TrimPrefix(objArrays[1], ".")] + if ok { + if attr.Attributes == nil { + attr.Attributes = make(map[string]*VariableBind) + } + attr.Loop = true + attr.Attributes[attributeName] = &VariableBind{} + } + } + } else { + if val, ok := c.variables[loopVar.Source]; !ok { + bind = &VariableBind{ + Loop: true, + Attributes: make(map[string]*VariableBind), + } + c.variables[loopVar.Source] = bind + } else { + bind = val.(*VariableBind) + bind.Loop = true + if bind.Attributes == nil { + bind.Attributes = make(map[string]*VariableBind) + } + } + bind.Attributes[attributeName] = &VariableBind{} + } + c.variables[LatestVarNameKey] = loopVar.Source + "[]." + attributeName + return values.ValueOf(nil) + } + } + } + if _, ok := c.variables[name]; !ok { + c.variables[name] = &VariableBind{} + } + c.variables[LatestVarNameKey] = name return values.ValueOf(nil) } diff --git a/render/context.go b/render/context.go index 6d417c9e..e056e902 100644 --- a/render/context.go +++ b/render/context.go @@ -53,6 +53,9 @@ type Context interface { GetConfig() *Config IsFindVars() bool + + SetLoopVar(name string, sourceName string) int + RemoveLoopVar(key int) } type rendererContext struct { @@ -65,6 +68,22 @@ func (c rendererContext) IsFindVars() bool { return c.ctx.findVariablesOnly } +func (c rendererContext) SetLoopVar(name string, sourceName string) int { + loopVars, ok := c.ctx.bindings[expressions.LoopVarsKey] + if !ok { + loopVars = expressions.NewLoopVars() + c.ctx.bindings[expressions.LoopVarsKey] = loopVars + } + return loopVars.(*expressions.LoopVarsStack).Set(name, sourceName) +} + +func (c rendererContext) RemoveLoopVar(key int) { + loopVars, ok := c.ctx.bindings[expressions.LoopVarsKey] + if ok { + loopVars.(*expressions.LoopVarsStack).Remove(key) + } +} + func (c rendererContext) Errorf(format string, a ...interface{}) Error { return renderErrorf(c.node, format, a...) } diff --git a/render/render.go b/render/render.go index 0ee76d22..4de794ac 100644 --- a/render/render.go +++ b/render/render.go @@ -8,6 +8,7 @@ import ( "strings" "time" + "github.com/autopilot3/liquid/expressions" "github.com/autopilot3/liquid/values" ) @@ -29,6 +30,13 @@ func FindVariables(node Node, c Config) (map[string]interface{}, Error) { if err := node.render(&tw, ctx); err != nil { return nil, err } + for k, v := range ctx.bindings { + if v == nil { + delete(ctx.bindings, k) + } + } + delete(ctx.bindings, expressions.LatestVarNameKey) + delete(ctx.bindings, expressions.LoopVarsKey) return ctx.bindings, nil } diff --git a/tags/iteration_tags.go b/tags/iteration_tags.go index 74ea44e9..81a9b0ea 100644 --- a/tags/iteration_tags.go +++ b/tags/iteration_tags.go @@ -81,15 +81,25 @@ func (loop loopRenderer) render(w io.Writer, ctx render.Context) error { if err != nil { return err } + var loopVarIdx int + if ctx.IsFindVars() { + loopSourceVarName := ctx.Get(expressions.LatestVarNameKey).(string) + val = []map[string]interface{}{ + {}, // empty object + } + loopVarIdx = ctx.SetLoopVar(loop.Variable, loopSourceVarName) + } iter := makeIterator(val) if iter == nil { return nil } iter = applyLoopModifiers(loop.Loop, iter) + // shallow-bind the loop variables; restore on exit defer func(index, forloop interface{}) { ctx.Set(forloopVarName, index) ctx.Set(loop.Variable, forloop) + ctx.RemoveLoopVar(loopVarIdx) }(ctx.Get(forloopVarName), ctx.Get(loop.Variable)) cycleMap := map[string]int{} loop: From 832e15d488cd3e6d0e43588b5b43c449dda4a18b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 3 Apr 2024 16:31:08 +1100 Subject: [PATCH 72/96] extend compare to auto detect if the comparer is time and do comparison accordingly --- values/compare.go | 27 +++++++++++++++++++++++++++ values/compare_test.go | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/values/compare.go b/values/compare.go index 4edbf440..d74a0dea 100644 --- a/values/compare.go +++ b/values/compare.go @@ -2,6 +2,7 @@ package values import ( "reflect" + "time" ) var ( @@ -16,6 +17,20 @@ func Equal(a, b interface{}) bool { // nolint: gocyclo return a == b } ra, rb := reflect.ValueOf(a), reflect.ValueOf(b) + if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(time.Time{}) { + // we have a time comparison, try to convert b to time.Time + // there should be only two cases: b is a user input string or a time.Time which is our variabeles from crm + if rb.Kind() == reflect.String { + db, err := ParseDate(rb.String()) + if err == nil { + return ra.Interface().(time.Time).Equal(db) + } else { + return false + } + } else if rb.Kind() == reflect.Struct && rb.Type() == reflect.TypeOf(time.Time{}) { + return ra.Interface().(time.Time).Equal(rb.Interface().(time.Time)) + } + } switch joinKind(ra.Kind(), rb.Kind()) { case reflect.Array, reflect.Slice: if ra.Len() != rb.Len() { @@ -52,6 +67,18 @@ func Less(a, b interface{}) bool { return false } ra, rb := reflect.ValueOf(a), reflect.ValueOf(b) + if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(time.Time{}) { + // we have a time comparison, try to convert b to time.time + // there should be only two cases: b is a user input string or a time.Time which is our variabeles from crm + if rb.Kind() == reflect.String { + db, err := ParseDate(rb.String()) + if err == nil { + return ra.Interface().(time.Time).Before(db) + } + } else if rb.Kind() == reflect.Struct && rb.Type() == reflect.TypeOf(time.Time{}) { + return ra.Interface().(time.Time).Before(rb.Interface().(time.Time)) + } + } switch joinKind(ra.Kind(), rb.Kind()) { case reflect.Bool: return !ra.Bool() && rb.Bool() diff --git a/values/compare_test.go b/values/compare_test.go index b199d462..03fcdf87 100644 --- a/values/compare_test.go +++ b/values/compare_test.go @@ -3,6 +3,7 @@ package values import ( "fmt" "testing" + "time" "github.com/stretchr/testify/require" ) @@ -37,6 +38,9 @@ var eqTests = []struct { {[]string{"a", "b"}, []string{"a", "c"}, false}, {[]interface{}{1.0, 2}, []interface{}{1, 2.0}, true}, {eqTestObj, eqTestObj, true}, + {time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), true}, + {time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), "2023-01-01", false}, + {time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC), "2021-01-01 00:00:00 UTC", true}, } func TestEqual(t *testing.T) { From 83f683394c10e696a8354639dc5dad0fbaaecc40 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 4 Apr 2024 08:53:27 +1100 Subject: [PATCH 73/96] further extend time comparison to support either comparer is of time.Time type and also date type --- values/compare.go | 50 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/values/compare.go b/values/compare.go index d74a0dea..1076a6be 100644 --- a/values/compare.go +++ b/values/compare.go @@ -3,6 +3,8 @@ package values import ( "reflect" "time" + + "github.com/autopilot3/ap3-types-go/types/date" ) var ( @@ -67,18 +69,54 @@ func Less(a, b interface{}) bool { return false } ra, rb := reflect.ValueOf(a), reflect.ValueOf(b) - if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(time.Time{}) { - // we have a time comparison, try to convert b to time.time - // there should be only two cases: b is a user input string or a time.Time which is our variabeles from crm + // time comparison + if ra.Kind() == reflect.Struct { + if ra.Type() == reflect.TypeOf(time.Time{}) { + // we have a time comparison, try to convert b to time.time + // there should be only two cases: b is a user input string or a time.Time which is our variabeles from crm + if rb.Kind() == reflect.String { + db, err := ParseDate(rb.String()) + if err == nil { + return ra.Interface().(time.Time).Before(db) + } + } else if rb.Kind() == reflect.Struct && rb.Type() == reflect.TypeOf(time.Time{}) { + return ra.Interface().(time.Time).Before(rb.Interface().(time.Time)) + } + } + } else if rb.Kind() == reflect.Struct { + if rb.Type() == reflect.TypeOf(time.Time{}) { + // we have a time comparison, try to convert a to time.time + // there should be only two cases: a is a user input string or a time.Time which is our variabeles from crm + if ra.Kind() == reflect.String { + da, err := ParseDate(ra.String()) + if err == nil { + return da.Before(rb.Interface().(time.Time)) + } + } else if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(time.Time{}) { + return ra.Interface().(time.Time).Before(rb.Interface().(time.Time)) + } + } + } + // date comparison only for date.Date vs string case, since date.Date is of kind int so naturally two date.Date can be compared + dVar := date.Date(1) + if reflect.TypeOf(a) == reflect.TypeOf(dVar) { if rb.Kind() == reflect.String { db, err := ParseDate(rb.String()) if err == nil { - return ra.Interface().(time.Time).Before(db) + d := date.NewFromUTCTime(db) + return a.(date.Date) < d + } + } + } else if reflect.TypeOf(b) == reflect.TypeOf(dVar) { + if ra.Kind() == reflect.String { + da, err := ParseDate(ra.String()) + if err == nil { + d := date.NewFromUTCTime(da) + return d < b.(date.Date) } - } else if rb.Kind() == reflect.Struct && rb.Type() == reflect.TypeOf(time.Time{}) { - return ra.Interface().(time.Time).Before(rb.Interface().(time.Time)) } } + switch joinKind(ra.Kind(), rb.Kind()) { case reflect.Bool: return !ra.Bool() && rb.Bool() From 29855808e68d64482b9e58e9e361b3534400561e Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 23 Apr 2024 14:44:12 +1000 Subject: [PATCH 74/96] support phone type equal compare --- go.mod | 8 ++++---- go.sum | 22 ++++++++++------------ values/compare.go | 10 ++++++++++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 4e25ffbf..143d4fee 100644 --- a/go.mod +++ b/go.mod @@ -5,9 +5,9 @@ go 1.22 require ( github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68 - github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0 + github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86 github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.8.0 + github.com/stretchr/testify v1.8.4 golang.org/x/text v0.14.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -39,7 +39,7 @@ require ( github.com/nats-io/nats.go v1.26.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/nyaruka/phonenumbers v1.1.7 // indirect + github.com/nyaruka/phonenumbers v1.3.3 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.15.1 // indirect @@ -53,7 +53,7 @@ require ( github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.mongodb.org/mongo-driver v1.12.0 // indirect + go.mongodb.org/mongo-driver v1.13.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect diff --git a/go.sum b/go.sum index ea950ba0..69454ce7 100644 --- a/go.sum +++ b/go.sum @@ -16,8 +16,8 @@ github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f h1:xzzx github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f/go.mod h1:p+zOzV+4mfoRpKUZrVnf3g9ENKRPAJkwyFEQxU12iMY= github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2 h1:yPjtxirjuvzhbuuMAhdIZFBzYFM6rKn/EXst068RDJY= github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2/go.mod h1:grZ3E1woGyvBHDdzOZz5vC7Ysr3Kqtgn0MX7fphM5Ao= -github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0 h1:6RuJ3+zFjAchVZE9E/BGjaAc1Cz470jbWEGmWTDMlHI= -github.com/autopilot3/ap3-types-go v0.0.0-20230623012359-9fe0e1118da0/go.mod h1:UOEjcRDxJuWRmq82hfGWt4ajMcsXpnLc5wOkZRgySzw= +github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86 h1:EETj+p3nP0+2UeL9VCBnrIsNEHXeU+NHsMcVA0pbmfk= +github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86/go.mod h1:SZBN0MVBLv10rBhrKw276GwWFPG4u/FkumFg/ipD/6w= github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= @@ -90,8 +90,8 @@ github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nyaruka/phonenumbers v1.1.7 h1:5UUI9hE79Kk0dymSquXbMYB7IlNDNhvu2aNlJpm9et8= -github.com/nyaruka/phonenumbers v1.1.7/go.mod h1:DC7jZd321FqUe+qWSNcHi10tyIyGNXGcNbfkPvdp1Vs= +github.com/nyaruka/phonenumbers v1.3.3 h1:20xjcqyG/ocEjuS6ry9XKyXdy8scWzjCiLW9aDyx8ks= +github.com/nyaruka/phonenumbers v1.3.3/go.mod h1:Ut+eFwikULbmCenH6InMKL9csUNLyxHuBLyfkpum11s= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= @@ -113,13 +113,12 @@ github.com/recurly/recurly-client-go/v3 v3.17.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6 github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= @@ -136,8 +135,8 @@ github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.12.0 h1:aPx33jmn/rQuJXPQLZQ8NtfPQG8CaqgLThFtqRb0PiE= -go.mongodb.org/mongo-driver v1.12.0/go.mod h1:AZkxhPnFJUoH7kZlFkVKucV20K387miPfm7oimrSmK0= +go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= +go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= @@ -227,6 +226,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/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= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/values/compare.go b/values/compare.go index 1076a6be..bdf3b5ae 100644 --- a/values/compare.go +++ b/values/compare.go @@ -5,6 +5,7 @@ import ( "time" "github.com/autopilot3/ap3-types-go/types/date" + "github.com/autopilot3/ap3-types-go/types/phone" ) var ( @@ -19,6 +20,7 @@ func Equal(a, b interface{}) bool { // nolint: gocyclo return a == b } ra, rb := reflect.ValueOf(a), reflect.ValueOf(b) + // time comparison if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(time.Time{}) { // we have a time comparison, try to convert b to time.Time // there should be only two cases: b is a user input string or a time.Time which is our variabeles from crm @@ -33,6 +35,14 @@ func Equal(a, b interface{}) bool { // nolint: gocyclo return ra.Interface().(time.Time).Equal(rb.Interface().(time.Time)) } } + // phone comparison + if ra.Kind() == reflect.Struct && ra.Type() == reflect.TypeOf(phone.International{}) { + if rb.Kind() == reflect.String { + return ra.Interface().(phone.International).String() == rb.String() + } else if rb.Kind() == reflect.Struct && rb.Type() == reflect.TypeOf(phone.International{}) { + return ra.Interface().(phone.International).Equal(rb.Interface().(phone.International)) + } + } switch joinKind(ra.Kind(), rb.Kind()) { case reflect.Array, reflect.Slice: if ra.Len() != rb.Len() { From ea281ecb383fea77ea04bbbf39508b92438863a6 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 19 Aug 2024 17:31:01 +1000 Subject: [PATCH 75/96] add check for phone type --- engine.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 01d31223..1f7dd866 100644 --- a/engine.go +++ b/engine.go @@ -40,7 +40,12 @@ func NewEngine() *Engine { engine := &Engine{render.NewConfig()} filters.AddStandardFilters(&engine.cfg) tags.AddStandardTags(engine.cfg) - engine.RegisterFilter("hideCountryCodeAndDefault", func(s phone.International, hide bool, defaultValue string) string { + engine.RegisterFilter("hideCountryCodeAndDefault", func(v interface{}, hide bool, defaultValue string) string { + s, ok := v.(phone.International) + if !ok { + logger.Infow(context.Background(), fmt.Sprintf("failed to cast field value %+v to phone.International", v), "lqiuid", "filter") + return defaultValue + } if s.Number.IsZero() && s.CountryCode.IsZero() { return defaultValue } From cb5d300e4f68cfc904c83eebcf231a0e46b43397 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 19 Aug 2024 17:32:55 +1000 Subject: [PATCH 76/96] fix mod for vulnerabilities --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- liquid.go | 1 - 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 143d4fee..87ec73f4 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.8.4 - golang.org/x/text v0.14.0 + golang.org/x/text v0.17.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -57,10 +57,10 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/net v0.22.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect google.golang.org/grpc v1.62.1 // indirect diff --git a/go.sum b/go.sum index 69454ce7..babfd874 100644 --- a/go.sum +++ b/go.sum @@ -151,8 +151,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -164,15 +164,15 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -183,8 +183,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -195,8 +195,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/liquid.go b/liquid.go index de60b89a..80877835 100644 --- a/liquid.go +++ b/liquid.go @@ -3,7 +3,6 @@ Package liquid is a pure Go implementation of Shopify Liquid templates, develope See the project README https://github.com/autopilot3/liquid for additional information and implementation status. - The liquid package itself is versioned in gopkg.in. Subpackages have no compatibility guarantees. Except where specifically documented, the “public” entities of subpackages are intended only for use by the liquid package and its subpackages. */ package liquid From 1dc67699b86ce7738a85503f3ddd72078dce58ee Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 7 Nov 2024 09:55:08 +1100 Subject: [PATCH 77/96] add to_number filter --- filters/standard_filters.go | 25 +++++++++++++++++++++++++ filters/standard_filters_test.go | 1 + 2 files changed, 26 insertions(+) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 9814cc50..e1d46639 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -110,6 +110,31 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo }) // number filters + fd.AddFilter("to_number", func(value interface{}) float64 { + switch v := value.(type) { + case float64: + return v + case int: + return float64(v) + case int8: + return float64(v) + case int16: + return float64(v) + case int32: + return float64(v) + case int64: + return float64(v) + case float32: + return float64(v) + case string: + if f, err := strconv.ParseFloat(v, 64); err == nil { + return f + } + return 0 + default: + return 0 + } + }) fd.AddFilter("abs", math.Abs) fd.AddFilter("ceil", math.Ceil) fd.AddFilter("floor", math.Floor) diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 0073b664..c0c74bea 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -149,6 +149,7 @@ var filterTests = []struct { {`"Tetsuro Takara" | url_encode`, "Tetsuro+Takara"}, // number filters + {`"45" | to_number`, 45}, {`-17 | abs`, 17}, {`4 | abs`, 4}, {`"-19.86" | abs`, 19.86}, From 9d29ed3fb5df647e89c71fd9a01e5cdfcecd70ff Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 23 Dec 2024 09:48:12 +1100 Subject: [PATCH 78/96] add protection and logs for variable not as VariableBind type --- expressions/context.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/expressions/context.go b/expressions/context.go index 1c30d9ab..529f4bf5 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -1,9 +1,12 @@ package expressions import ( + gocontext "context" + "fmt" "reflect" "strings" + "github.com/autopilot3/ap3-helpers-go/logger" "github.com/autopilot3/liquid/values" ) @@ -140,12 +143,18 @@ func (c *varsContext) Get(name string) interface{} { Attributes: make(map[string]*VariableBind), } c.variables[loopVar.Source] = bind - } else { + } else if val != nil { bind = val.(*VariableBind) bind.Loop = true if bind.Attributes == nil { bind.Attributes = make(map[string]*VariableBind) } + } else { + bind = &VariableBind{ + Loop: true, + Attributes: make(map[string]*VariableBind), + } + logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") } bind.Attributes[attributeName] = &VariableBind{} } From 7f5c576994f57a27a8873e2f74daa7eef2001b5e Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 17 Mar 2025 13:36:28 +1100 Subject: [PATCH 79/96] only log phone info if it's not nil and failed to convert --- engine.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 1f7dd866..e4160f16 100644 --- a/engine.go +++ b/engine.go @@ -43,7 +43,9 @@ func NewEngine() *Engine { engine.RegisterFilter("hideCountryCodeAndDefault", func(v interface{}, hide bool, defaultValue string) string { s, ok := v.(phone.International) if !ok { - logger.Infow(context.Background(), fmt.Sprintf("failed to cast field value %+v to phone.International", v), "lqiuid", "filter") + if v != nil { + logger.Infow(context.Background(), fmt.Sprintf("failed to cast field value %+v to phone.International", v), "lqiuid", "filter") + } return defaultValue } if s.Number.IsZero() && s.CountryCode.IsZero() { From d710360fbc31bf7b7c181f18f4afa0baec71195a Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 17 Mar 2025 13:41:38 +1100 Subject: [PATCH 80/96] remove log --- engine.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/engine.go b/engine.go index e4160f16..dc5cb482 100644 --- a/engine.go +++ b/engine.go @@ -43,9 +43,6 @@ func NewEngine() *Engine { engine.RegisterFilter("hideCountryCodeAndDefault", func(v interface{}, hide bool, defaultValue string) string { s, ok := v.(phone.International) if !ok { - if v != nil { - logger.Infow(context.Background(), fmt.Sprintf("failed to cast field value %+v to phone.International", v), "lqiuid", "filter") - } return defaultValue } if s.Number.IsZero() && s.CountryCode.IsZero() { From 2f956345aab3b053e76064500b43e256ac158c99 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 18 Mar 2025 09:27:01 +1100 Subject: [PATCH 81/96] improve nil value comparison if nil values involved --- values/compare.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/values/compare.go b/values/compare.go index bdf3b5ae..09124974 100644 --- a/values/compare.go +++ b/values/compare.go @@ -75,7 +75,29 @@ func Equal(a, b interface{}) bool { // nolint: gocyclo // Less returns a bool indicating whether a < b. func Less(a, b interface{}) bool { a, b = ToLiquid(a), ToLiquid(b) - if a == nil || b == nil { + if a == nil && b == nil { + return false + } else if a == nil { + if reflect.ValueOf(b).Kind() == reflect.String { + return "" < b.(string) + } else if reflect.ValueOf(b).Kind() == reflect.Int || reflect.ValueOf(b).Kind() == reflect.Int8 || reflect.ValueOf(b).Kind() == reflect.Int16 || reflect.ValueOf(b).Kind() == reflect.Int32 || reflect.ValueOf(b).Kind() == reflect.Int64 { + rb := reflect.ValueOf(b).Convert(int64Type).Int() + return 0 < rb + } else if reflect.ValueOf(b).Kind() == reflect.Float32 || reflect.ValueOf(b).Kind() == reflect.Float64 { + rb := reflect.ValueOf(b).Convert(float64Type).Float() + return 0 < rb + } + return false + } else if b == nil { + if reflect.ValueOf(a).Kind() == reflect.String { + return a.(string) < "" + } else if reflect.ValueOf(a).Kind() == reflect.Int || reflect.ValueOf(a).Kind() == reflect.Int8 || reflect.ValueOf(a).Kind() == reflect.Int16 || reflect.ValueOf(a).Kind() == reflect.Int32 || reflect.ValueOf(a).Kind() == reflect.Int64 { + ra := reflect.ValueOf(a).Convert(int64Type).Int() + return ra < 0 + } else if reflect.ValueOf(a).Kind() == reflect.Float32 || reflect.ValueOf(a).Kind() == reflect.Float64 { + ra := reflect.ValueOf(a).Convert(float64Type).Float() + return ra < 0 + } return false } ra, rb := reflect.ValueOf(a), reflect.ValueOf(b) From ba0664d2f1de239a95819a2f98703d9e76ac3531 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 18 Mar 2025 09:34:43 +1100 Subject: [PATCH 82/96] add examples for improved comparison --- engine_test.go | 1 + values/evaluator_test.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/engine_test.go b/engine_test.go index cd99958a..4451c795 100644 --- a/engine_test.go +++ b/engine_test.go @@ -20,6 +20,7 @@ var liquidTests = []struct{ in, expected string }{ {`{% if x %}true{% endif %}`, "true"}, {`{{ "upper" | upcase }}`, "UPPER"}, {`{{ page.ar | first }}`, "first"}, + {`{% if page.nil-number < x %}true{% endif %}`, "true"}, } var testBindings = map[string]interface{}{ diff --git a/values/evaluator_test.go b/values/evaluator_test.go index d45d7291..5d3a262c 100644 --- a/values/evaluator_test.go +++ b/values/evaluator_test.go @@ -25,6 +25,18 @@ var lessTests = []struct { {"a", "b", true}, {"b", "a", false}, {[]string{"a"}, []string{"a"}, false}, + // comparisons involving 1 nil and the other non-nil, nil will be default to 0 for number/string comparison. Otherwise all false + {nil, 0, false}, + {nil, 1, true}, + {nil, -1, false}, + {nil, 1.1, true}, + {nil, -1.1, false}, + {1.1, nil, false}, + {0, nil, false}, + {-1, nil, true}, + {nil, "", false}, + {nil, "a", true}, + {nil, struct{}{}, false}, } func TestLess(t *testing.T) { From d28f0d5e81444f0c4c2bfffca26a15f777496dfe Mon Sep 17 00:00:00 2001 From: HenryHK Date: Mon, 31 Mar 2025 15:37:29 +1100 Subject: [PATCH 83/96] add startsWith/endsWith --- engine.go | 9 +++++++++ engine_test.go | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/engine.go b/engine.go index dc5cb482..4994ee58 100644 --- a/engine.go +++ b/engine.go @@ -341,6 +341,15 @@ func NewEngine() *Engine { engine.RegisterFilter("trackURL", func(s string) string { return "$$TRACK_ME:" + html.UnescapeString(s) + "$$" }) + + engine.RegisterFilter("startsWith", func(s string, prefix string) bool { + return strings.HasPrefix(s, prefix) + }) + + engine.RegisterFilter("endsWith", func(s string, suffix string) bool { + return strings.HasSuffix(s, suffix) + }) + return engine } diff --git a/engine_test.go b/engine_test.go index 4451c795..d7bc4682 100644 --- a/engine_test.go +++ b/engine_test.go @@ -200,3 +200,25 @@ func TestFindVariables(t *testing.T) { }) } } + +func TestStartsWith(t *testing.T) { + engine := NewEngine() + template := `{{ 'hello' | startsWith: 'he' }}` + str, err := engine.ParseAndRenderString(template, nil) + require.NoError(t, err) + t.Log(str) + if str != "true" { + t.Error("startsWith filter error") + } +} + +func TestEndsWith(t *testing.T) { + engine := NewEngine() + template := `{{ 'hello' | endsWith: 'lo' }}` + str, err := engine.ParseAndRenderString(template, nil) + require.NoError(t, err) + t.Log(str) + if str != "true" { + t.Error("endsWith filter error") + } +} From 53e35584422ba0f98e754c401a9ba4d282b1bc4b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Sat, 12 Apr 2025 13:11:43 +1000 Subject: [PATCH 84/96] fix slice of interface cast --- engine.go | 18 ++++++++++-------- engine_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/engine.go b/engine.go index 4994ee58..d684aa31 100644 --- a/engine.go +++ b/engine.go @@ -283,10 +283,11 @@ func NewEngine() *Engine { } return false case reflect.Slice: - slice := s.([]interface{}) - for _, match := range matches { - for _, s := range slice { - if reflect.DeepEqual(s, match) { + val := reflect.ValueOf(s) + for i := 0; i < val.Len(); i++ { + elem := val.Index(i).Interface() + for _, match := range matches { + if reflect.DeepEqual(elem, match) { return true } } @@ -319,11 +320,12 @@ func NewEngine() *Engine { } return true case reflect.Slice: - slice := s.([]interface{}) - for _, match := range matches { + val := reflect.ValueOf(s) + for i := 0; i < val.Len(); i++ { + elem := val.Index(i).Interface() containMatch := false - for _, s := range slice { - if reflect.DeepEqual(s, match) { + for _, match := range matches { + if reflect.DeepEqual(elem, match) { containMatch = true break } diff --git a/engine_test.go b/engine_test.go index d7bc4682..a3000c0e 100644 --- a/engine_test.go +++ b/engine_test.go @@ -30,6 +30,9 @@ var testBindings = map[string]interface{}{ "ar": []interface{}{"first", "second", "third"}, "title": "Introduction", }, + "set": map[string]interface{}{ + "chars": []string{"a", "b", "c"}, + }, } func TestEngine_ParseAndRenderString(t *testing.T) { @@ -222,3 +225,28 @@ func TestEndsWith(t *testing.T) { t.Error("endsWith filter error") } } + +func TestSetContains(t *testing.T) { + engine := NewEngine() + template := `{{ set.chars | setContains: 'a' }}` + str, err := engine.ParseAndRenderString(template, testBindings) + require.NoError(t, err) + t.Log(str) + if str != "true" { + t.Error("set contains filter error") + } + template = `{{ set.chars | setContains: 'd' }}` + str, err = engine.ParseAndRenderString(template, testBindings) + require.NoError(t, err) + t.Log(str) + if str != "false" { + t.Error("set contains filter error") + } + template = `{{ set.chars | setContains: 'a', 'b' }}` + str, err = engine.ParseAndRenderString(template, testBindings) + require.NoError(t, err) + t.Log(str) + if str != "true" { + t.Error("set contains filter error") + } +} From 204768c0dc809559925bf4bee464b4979ea1732b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Sun, 13 Apr 2025 12:10:10 +1000 Subject: [PATCH 85/96] fix lint --- expressions/filters_test.go | 2 +- expressions/scanner.go | 12 ++---------- filters/standard_filters.go | 8 ++++---- values/convert.go | 2 +- values/drop_test.go | 2 +- 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/expressions/filters_test.go b/expressions/filters_test.go index 03fac0ef..294f91d1 100644 --- a/expressions/filters_test.go +++ b/expressions/filters_test.go @@ -15,7 +15,7 @@ func TestContext_AddFilter(t *testing.T) { require.Panics(t, func() { cfg.AddFilter("f", func() int { return 0 }) }) require.Panics(t, func() { cfg.AddFilter("f", func(int) {}) }) // require.Panics(t, func() { cfg.AddFilter("f", func(int) (a int, b int) { return }) }) - require.Panics(t, func() { cfg.AddFilter("f", func(int) (a int, e error, b int) { return }) }) + require.Panics(t, func() { cfg.AddFilter("f", func(int) (a int, b int, e error) { return }) }) require.Panics(t, func() { cfg.AddFilter("f", 10) }) } diff --git a/expressions/scanner.go b/expressions/scanner.go index 774a1682..e1e906db 100644 --- a/expressions/scanner.go +++ b/expressions/scanner.go @@ -277,11 +277,7 @@ func (lex *lexer) Lex(out *yySymType) int { _lower := int(_keys) var _mid int _upper := int(_keys + _klen - 1) - for { - if _upper < _lower { - break - } - + for _upper >= _lower { _mid = _lower + ((_upper - _lower) >> 1) switch { case lex.data[(lex.p)] < _expression_trans_keys[_mid]: @@ -302,11 +298,7 @@ func (lex *lexer) Lex(out *yySymType) int { _lower := int(_keys) var _mid int _upper := int(_keys + (_klen << 1) - 2) - for { - if _upper < _lower { - break - } - + for _upper >= _lower { _mid = _lower + (((_upper - _lower) >> 1) & ^1) switch { case lex.data[(lex.p)] < _expression_trans_keys[_mid]: diff --git a/filters/standard_filters.go b/filters/standard_filters.go index e1d46639..2f735db5 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -190,19 +190,19 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo return html.EscapeString(html.UnescapeString(s)) }) fd.AddFilter("newline_to_br", func(s string) string { - return strings.Replace(s, "\n", "
", -1) + return strings.ReplaceAll(s, "\n", "
") }) fd.AddFilter("prepend", func(s, prefix string) string { return prefix + s }) fd.AddFilter("remove", func(s, old string) string { - return strings.Replace(s, old, "", -1) + return strings.ReplaceAll(s, old, "") }) fd.AddFilter("remove_first", func(s, old string) string { return strings.Replace(s, old, "", 1) }) fd.AddFilter("replace", func(s, old, new string) string { - return strings.Replace(s, old, new, -1) + return strings.ReplaceAll(s, old, new) }) fd.AddFilter("replace_first", func(s, old, new string) string { return strings.Replace(s, old, new, 1) @@ -234,7 +234,7 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo return regexp.MustCompile(`<.*?>`).ReplaceAllString(s, "") }) fd.AddFilter("strip_newlines", func(s string) string { - return strings.Replace(s, "\n", "", -1) + return strings.ReplaceAll(s, "\n", "") }) fd.AddFilter("strip", strings.TrimSpace) fd.AddFilter("lstrip", func(s string) string { diff --git a/values/convert.go b/values/convert.go index 4962c22b..2e6be0c2 100644 --- a/values/convert.go +++ b/values/convert.go @@ -80,7 +80,7 @@ func Convert(value interface{}, typ reflect.Type) (interface{}, error) { // noli // } switch typ.Kind() { case reflect.Bool: - return !(value == nil || value == false), nil + return value != nil && value != false, nil case reflect.Uint: v, err := convertValueToInt(value, typ) return uint(v), err diff --git a/values/drop_test.go b/values/drop_test.go index c55a2381..64981c38 100644 --- a/values/drop_test.go +++ b/values/drop_test.go @@ -56,7 +56,7 @@ func BenchmarkDrop_Resolve_3(b *testing.B) { values <- d.Int() } for i := cap(values); i > 0; i-- { - _ = <-values + <-values } } } From 366f4288f7def8db2a85d0fc79ec680773e17304 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Fri, 2 May 2025 10:50:21 +1000 Subject: [PATCH 86/96] add check for divider --- filters/standard_filters.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 2f735db5..f554bd92 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -151,8 +151,16 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("divided_by", func(a float64, b interface{}) interface{} { switch q := b.(type) { case int, int16, int32, int64: + // check divider + if q.(int) == 0 { + return nil + } return int(a) / q.(int) case float32, float64: + // check divider + if q.(float64) == 0 { + return nil + } return a / b.(float64) default: return nil From b54bea09400c77a0e9b70079e27977bb2f7021ff Mon Sep 17 00:00:00 2001 From: HenryHK Date: Fri, 2 May 2025 11:02:59 +1000 Subject: [PATCH 87/96] use same var for code consistency --- filters/standard_filters.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index f554bd92..8b1f39d0 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -151,11 +151,10 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo fd.AddFilter("divided_by", func(a float64, b interface{}) interface{} { switch q := b.(type) { case int, int16, int32, int64: - // check divider if q.(int) == 0 { return nil } - return int(a) / q.(int) + return int(a) / b.(int) case float32, float64: // check divider if q.(float64) == 0 { From 5c1cfed229f636943a037d97b7d7487284b068b5 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Fri, 2 May 2025 11:04:11 +1000 Subject: [PATCH 88/96] add test --- filters/standard_filters.go | 4 ++-- filters/standard_filters_test.go | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 8b1f39d0..9dd19a40 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -154,13 +154,13 @@ func AddStandardFilters(fd FilterDictionary) { // nolint: gocyclo if q.(int) == 0 { return nil } - return int(a) / b.(int) + return int(a) / q.(int) case float32, float64: // check divider if q.(float64) == 0 { return nil } - return a / b.(float64) + return a / q.(float64) default: return nil } diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index c0c74bea..873cb126 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -183,6 +183,7 @@ var filterTests = []struct { {`20 | divided_by: 7`, 2}, {`20 | divided_by: 7.0`, 2.857142857142857}, {`20 | divided_by: 's'`, nil}, + {`20 | divided_by: 0`, nil}, {`1.2 | round`, 1}, {`2.7 | round`, 3}, From 51fb25985b50c3059891b23c19417348b96a56a3 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 6 May 2025 09:22:51 +1000 Subject: [PATCH 89/96] remove include tag to prevent filesystem access --- render/context.go | 2 ++ render/context_test.go | 29 ------------------- tags/include_tag.go | 31 --------------------- tags/include_tag_test.go | 60 ---------------------------------------- tags/standard_tags.go | 1 - 5 files changed, 2 insertions(+), 121 deletions(-) delete mode 100644 tags/include_tag.go delete mode 100644 tags/include_tag_test.go diff --git a/render/context.go b/render/context.go index e056e902..daa56a9d 100644 --- a/render/context.go +++ b/render/context.go @@ -136,6 +136,8 @@ func (c rendererContext) RenderChildren(w io.Writer) Error { return c.ctx.RenderSequence(w, c.cn.Body) } +// Deprecated: RenderFile parses and renders a template. It's used in the implementation of the {% include %} tag. +// We removed `include` tag to prevent reading files from the filesystem. func (c rendererContext) RenderFile(filename string, b map[string]interface{}) (string, error) { source, err := os.ReadFile(filename) if err != nil { diff --git a/render/context_test.go b/render/context_test.go index 099d4f77..8b4ea4e1 100644 --- a/render/context_test.go +++ b/render/context_test.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "os" "testing" "github.com/autopilot3/liquid/parser" @@ -45,16 +44,6 @@ func addContextTestTags(s Config) { return err }, nil }) - s.AddTag("test_render_file", func(filename string) (func(w io.Writer, c Context) error, error) { - return func(w io.Writer, c Context) error { - s, err := c.RenderFile(filename, map[string]interface{}{"shadowed": 2}) - if err != nil { - return err - } - _, err = io.WriteString(w, s) - return err - }, nil - }) } var contextTests = []struct{ in, out string }{ @@ -63,16 +52,12 @@ var contextTests = []struct{ in, out string }{ {`{% test_expand_tag_arg x %}`, "x"}, {`{% test_expand_tag_arg {{x}} %}`, "123"}, {`{% test_tag_name %}`, "test_tag_name"}, - {`{% test_render_file testdata/render_file.txt %}; unshadowed={{ shadowed }}`, - "rendered shadowed=2; unshadowed=1"}, } var contextErrorTests = []struct{ in, expect string }{ {`{% test_evaluate_string syntax error %}`, "syntax error"}, {`{% test_expand_tag_arg {{ syntax error }} %}`, "syntax error"}, {`{% test_expand_tag_arg {{ x | undefined_filter }} %}`, "undefined filter"}, - {`{% test_render_file testdata/render_file_syntax_error.txt %}`, "syntax error"}, - {`{% test_render_file testdata/render_file_runtime_error.txt %}`, "undefined tag"}, } var contextTestBindings = map[string]interface{}{ @@ -108,17 +93,3 @@ func TestContext_errors(t *testing.T) { }) } } - -func TestContext_file_not_found_error(t *testing.T) { - // Test the cause instead of looking for a string, since the error message is different - // between Darwin and Linux ("no such file") and Windows ("The system cannot find the file specified"), at least. - // - // Also see TestIncludeTag_file_not_found_error. - cfg := NewConfig() - addContextTestTags(cfg) - root, err := cfg.Compile(`{% test_render_file testdata/missing_file %}`, parser.SourceLoc{}) - require.NoError(t, err) - err = Render(root, io.Discard, contextTestBindings, cfg) - require.Error(t, err) - require.True(t, os.IsNotExist(err.Cause())) -} diff --git a/tags/include_tag.go b/tags/include_tag.go deleted file mode 100644 index c14ab9a2..00000000 --- a/tags/include_tag.go +++ /dev/null @@ -1,31 +0,0 @@ -package tags - -import ( - "io" - "path/filepath" - - "github.com/autopilot3/liquid/render" -) - -func includeTag(source string) (func(io.Writer, render.Context) error, error) { - return func(w io.Writer, ctx render.Context) error { - // It might be more efficient to add a context interface to render bytes - // to a writer. The status quo keeps the interface light at the expense of some overhead - // here. - value, err := ctx.EvaluateString(ctx.TagArgs()) - if err != nil { - return err - } - rel, ok := value.(string) - if !ok { - return ctx.Errorf("include requires a string argument; got %v", value) - } - filename := filepath.Join(filepath.Dir(ctx.SourceFile()), rel) - s, err := ctx.RenderFile(filename, map[string]interface{}{}) - if err != nil { - return err - } - _, err = io.WriteString(w, s) - return err - }, nil -} diff --git a/tags/include_tag_test.go b/tags/include_tag_test.go deleted file mode 100644 index a53ed5d4..00000000 --- a/tags/include_tag_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package tags - -import ( - "bytes" - "io" - "os" - "strings" - "testing" - - "github.com/autopilot3/liquid/parser" - "github.com/autopilot3/liquid/render" - "github.com/stretchr/testify/require" -) - -var includeTestBindings = map[string]interface{}{ - "test": true, - "var": "value", -} - -func TestIncludeTag(t *testing.T) { - config := render.NewConfig() - loc := parser.SourceLoc{Pathname: "testdata/include_source.html", LineNo: 1} - AddStandardTags(config) - - // basic functionality - root, err := config.Compile(`{% include "include_target.html" %}`, loc) - require.NoError(t, err) - buf := new(bytes.Buffer) - err = render.Render(root, buf, includeTestBindings, config) - require.NoError(t, err) - require.Equal(t, "include target", strings.TrimSpace(buf.String())) - - // tag and variable - root, err = config.Compile(`{% include "include_target_2.html" %}`, loc) - require.NoError(t, err) - buf = new(bytes.Buffer) - err = render.Render(root, buf, includeTestBindings, config) - require.NoError(t, err) - require.Equal(t, "value", strings.TrimSpace(buf.String())) - - // errors - root, err = config.Compile(`{% include 10 %}`, loc) - require.NoError(t, err) - err = render.Render(root, io.Discard, includeTestBindings, config) - require.Error(t, err) - require.Contains(t, err.Error(), "requires a string") -} - -func TestIncludeTag_file_not_found_error(t *testing.T) { - config := render.NewConfig() - loc := parser.SourceLoc{Pathname: "testdata/include_source.html", LineNo: 1} - AddStandardTags(config) - - // See the comment in TestIncludeTag_file_not_found_error. - root, err := config.Compile(`{% include "missing_file.html" %}`, loc) - require.NoError(t, err) - err = render.Render(root, io.Discard, includeTestBindings, config) - require.Error(t, err) - require.True(t, os.IsNotExist(err.Cause())) -} diff --git a/tags/standard_tags.go b/tags/standard_tags.go index b05e5fa4..8b04c920 100644 --- a/tags/standard_tags.go +++ b/tags/standard_tags.go @@ -11,7 +11,6 @@ import ( // AddStandardTags defines the standard Liquid tags. func AddStandardTags(c render.Config) { c.AddTag("assign", assignTag) - c.AddTag("include", includeTag) // blocks // The parser only recognize the comment and raw tags if they've been defined, From 93dccf665e9245becfa20787b1fe2ae4767e806b Mon Sep 17 00:00:00 2001 From: HenryHK Date: Tue, 6 May 2025 09:39:52 +1000 Subject: [PATCH 90/96] remove RenderFile implementation --- render/context.go | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/render/context.go b/render/context.go index daa56a9d..1367441b 100644 --- a/render/context.go +++ b/render/context.go @@ -2,8 +2,8 @@ package render import ( "bytes" + "errors" "io" - "os" "strings" "github.com/autopilot3/liquid/expressions" @@ -139,26 +139,7 @@ func (c rendererContext) RenderChildren(w io.Writer) Error { // Deprecated: RenderFile parses and renders a template. It's used in the implementation of the {% include %} tag. // We removed `include` tag to prevent reading files from the filesystem. func (c rendererContext) RenderFile(filename string, b map[string]interface{}) (string, error) { - source, err := os.ReadFile(filename) - if err != nil { - return "", err - } - root, err := c.ctx.config.Compile(string(source), c.node.SourceLoc) - if err != nil { - return "", err - } - bindings := map[string]interface{}{} - for k, v := range c.ctx.bindings { - bindings[k] = v - } - for k, v := range b { - bindings[k] = v - } - buf := new(bytes.Buffer) - if err := Render(root, buf, bindings, c.ctx.config); err != nil { - return "", err - } - return buf.String(), nil + return "", errors.New("RenderFile is deprecated and removed") } // InnerString renders the children to a string. From 43cb2e5446e9c4cfb67b489ff0f69e7985ed4136 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Wed, 7 May 2025 10:17:47 +1000 Subject: [PATCH 91/96] update dep --- go.mod | 50 ++++++++++++------------ go.sum | 119 +++++++++++++++++++++++---------------------------------- 2 files changed, 73 insertions(+), 96 deletions(-) diff --git a/go.mod b/go.mod index 87ec73f4..22d8b3ee 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,22 @@ module github.com/autopilot3/liquid -go 1.22 +go 1.24 + +toolchain go1.24.1 require ( github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 - github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68 - github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86 + github.com/autopilot3/ap3-helpers-go v0.0.0-20250506013120-83414d6baf31 + github.com/autopilot3/ap3-types-go v0.0.0-20250409014854-d8c500a2e4d0 github.com/osteele/tuesday v1.0.3 - github.com/stretchr/testify v1.8.4 - golang.org/x/text v0.17.0 + github.com/stretchr/testify v1.10.0 + golang.org/x/text v0.25.0 gopkg.in/yaml.v2 v2.4.0 ) require ( github.com/alexsergivan/transliterator v1.0.0 // indirect - github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a // indirect + github.com/autopilot3/ap3-auth-go v1.0.13-0.20250415000245-a563d6fec65b // indirect github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c // indirect github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea // indirect github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f // indirect @@ -22,24 +24,22 @@ require ( github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 // indirect github.com/aws/aws-sdk-go v1.44.278 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/gocql/gocql v1.4.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.16.5 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/minio/highwayhash v1.0.2 // indirect - github.com/montanaflynn/stats v0.6.6 // indirect - github.com/nats-io/jwt/v2 v2.4.1 // indirect - github.com/nats-io/nats.go v1.26.0 // indirect + github.com/montanaflynn/stats v0.7.1 // indirect + github.com/nats-io/nats.go v1.31.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/nyaruka/phonenumbers v1.3.3 // indirect + github.com/nyaruka/phonenumbers v1.6.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.15.1 // indirect @@ -52,19 +52,19 @@ require ( github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect - github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.mongodb.org/mongo-driver v1.13.1 // indirect + github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect + go.mongodb.org/mongo-driver v1.17.3 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.26.0 // indirect - golang.org/x/net v0.28.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect - google.golang.org/grpc v1.62.1 // indirect - google.golang.org/protobuf v1.33.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/crypto v0.38.0 // indirect + golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/grpc v1.67.2 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index babfd874..edac3ecf 100644 --- a/go.sum +++ b/go.sum @@ -2,37 +2,35 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/alexsergivan/transliterator v1.0.0 h1:SAA+fkGZKLnak47h8Dr6829IE2kpSZR2Y3yTd69cIwY= github.com/alexsergivan/transliterator v1.0.0/go.mod h1:0IrumukulURJ4PD0z6UcdJKP2job1DYDhnHAP5y+5pE= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a h1:AmcQIDNyHmFjpF7AHBWeAvD+3/Keo0ekyfKntkBTE+I= -github.com/autopilot3/ap3-auth-go v1.0.13-0.20230712153453-4c5433356b3a/go.mod h1:G5G/OxZ/ZulRJNMkKxjdWCeBYug8DVWvLcg46mF8C6c= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20250415000245-a563d6fec65b h1:GffxQnGzRSP+lier71a2u5CBIqga0cQwYmi8ekQSjM8= +github.com/autopilot3/ap3-auth-go v1.0.13-0.20250415000245-a563d6fec65b/go.mod h1:igk6G3+5encRxS+88+Be7qP6QCIcswmSEtZt06mRPVA= github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c h1:m8FLXveG84nlTh8DNKteH5clIaEv578g+jDYtBg5xxw= github.com/autopilot3/ap3-billing-api-go v0.0.0-20230717054957-3d5d1e327a8c/go.mod h1:bgKV0qCvMk+1A1XScaoB5QfGbchGl5YEJCqMcIcN4UI= github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 h1:JS2A7z9JlEknMUNQJmeY3SX5s0I8D5ga0H8JSngPLHw= github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5/go.mod h1:SJs66Oti32Zro6TrN3+5+mgsuI7CPkgGNxXsJIZG1Zg= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68 h1:VaAO/Gd3WJA3xdwN7UnvDP7aFu86hASw7OePzpN0K54= -github.com/autopilot3/ap3-helpers-go v0.0.0-20230707124652-58220337fd68/go.mod h1:Pvl00mHB5pua7XpyEoz0w5zm8IRx7wgBOyyrPy7lfiU= +github.com/autopilot3/ap3-helpers-go v0.0.0-20250506013120-83414d6baf31 h1:MphTkfMC1Te1yiLntpSm+vmSPsJlps1bgD5R1R2NDRo= +github.com/autopilot3/ap3-helpers-go v0.0.0-20250506013120-83414d6baf31/go.mod h1:kWYICeX9C9WiVFkyDvWGu0Ks8oBioQ5IMqHzeznow+Y= github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea h1:styrioXYutY+Iw+cayBdyJo17uksbxfqkcnOnPzf6S0= github.com/autopilot3/ap3-index-go v0.0.0-20230614154429-8e96f0923dea/go.mod h1:i7rtUVGqaVgEK+MRY9OgpDaKEoSRkj4JAsDWiTZC9wg= github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f h1:xzzx7z1F2XK9DDS3MR5a5plWX6T0YpVzAWcabMnf/SQ= github.com/autopilot3/ap3-ring-api-go v0.0.0-20230711140618-2033889bea7f/go.mod h1:p+zOzV+4mfoRpKUZrVnf3g9ENKRPAJkwyFEQxU12iMY= github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2 h1:yPjtxirjuvzhbuuMAhdIZFBzYFM6rKn/EXst068RDJY= github.com/autopilot3/ap3-tasks-api-go v0.0.0-20230712063215-13b009ae11f2/go.mod h1:grZ3E1woGyvBHDdzOZz5vC7Ysr3Kqtgn0MX7fphM5Ao= -github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86 h1:EETj+p3nP0+2UeL9VCBnrIsNEHXeU+NHsMcVA0pbmfk= -github.com/autopilot3/ap3-types-go v0.0.0-20240402075403-5f570036dd86/go.mod h1:SZBN0MVBLv10rBhrKw276GwWFPG4u/FkumFg/ipD/6w= +github.com/autopilot3/ap3-types-go v0.0.0-20250409014854-d8c500a2e4d0 h1:Q9H0R/EmaWV7De4n29widFfWDegRGfDm8sPMTk6Mhu0= +github.com/autopilot3/ap3-types-go v0.0.0-20250409014854-d8c500a2e4d0/go.mod h1:a1Re4maX1gsCxvFRO43Reho5CGUjGuohmznJhUpgEwU= github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5 h1:WO0/Itf2u8Aa+v8zcZN27mDmo2j6d0Gy296eacLwvcU= github.com/autopilot3/uasurfer v0.0.0-20220503043020-b0a5a9c79fb5/go.mod h1:WPlm07a+dgY9dsmM0ai6/tIC+dm9PUxu+UlTMTKS28s= github.com/avct/uasurfer v0.0.0-20191028135549-26b5daa857f1/go.mod h1:noBAuukeYOXa0aXGqxr24tADqkwDO2KRD15FsuaZ5a8= github.com/aws/aws-sdk-go v1.44.278 h1:jJFDO/unYFI48WQk7UGSyO3rBA/gnmRpNYNuAw/fPgE= github.com/aws/aws-sdk-go v1.44.278/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= 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/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/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/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -40,19 +38,17 @@ github.com/gocql/gocql v1.4.0 h1:NIlXAJXsjzjGvVn36njh9OLYWzS3D7FdvsifLj4eDEY= github.com/gocql/gocql v1.4.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= @@ -63,9 +59,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= 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/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= -github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= 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= @@ -75,28 +70,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= -github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4= -github.com/nats-io/jwt/v2 v2.4.1/go.mod h1:24BeQtRwxRV8ruvC4CojXlx/WQ/VjuwlYiH+vu/+ibI= -github.com/nats-io/nats-server/v2 v2.9.17 h1:gFpUQ3hqIDJrnqog+Bl5vaXg+RhhYEZIElasEuRn2tw= -github.com/nats-io/nats-server/v2 v2.9.17/go.mod h1:eQysm3xDZmIjfkjr7DuD9DjRFpnxQc2vKVxtEg0Dp6s= -github.com/nats-io/nats.go v1.26.0 h1:fWJTYPnZ8DzxIaqIHOAMfColuznchnd5Ab5dbJpgPIE= -github.com/nats-io/nats.go v1.26.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= +github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= +github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/nats-io/nats.go v1.31.0 h1:/WFBHEc/dOKBF6qf1TZhrdEfTmOZ5JzdJ+Y3m6Y/p7E= +github.com/nats-io/nats.go v1.31.0/go.mod h1:di3Bm5MLsoB4Bx61CBTsxuarI36WbhAwOm8QrW39+i8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nyaruka/phonenumbers v1.3.3 h1:20xjcqyG/ocEjuS6ry9XKyXdy8scWzjCiLW9aDyx8ks= -github.com/nyaruka/phonenumbers v1.3.3/go.mod h1:Ut+eFwikULbmCenH6InMKL9csUNLyxHuBLyfkpum11s= +github.com/nyaruka/phonenumbers v1.6.0 h1:r9ax45fFg+YLUs2X4bNXm5RAxWl00hYjFgNlv32vtHk= +github.com/nyaruka/phonenumbers v1.6.0/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/osteele/tuesday v1.0.3 h1:SrCmo6sWwSgnvs1bivmXLvD7Ko9+aJvvkmDjB5G4FTU= github.com/osteele/tuesday v1.0.3/go.mod h1:pREKpE+L03UFuR+hiznj3q7j3qB1rUZ4XfKejwWFF2M= -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 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -113,12 +100,12 @@ github.com/recurly/recurly-client-go/v3 v3.17.0/go.mod h1:4qKAuNK6JbnLwhd7M3ZcD6 github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +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/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= @@ -129,30 +116,29 @@ github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= +github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= +github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= -go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= +go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ= +go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +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.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -161,44 +147,37 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/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-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200617212913-87be026d3888/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -209,14 +188,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/grpc v1.67.2 h1:Lq11HW1nr5m4OYV+ZVy2BjOK78/zqnTx24vyDBP1JcQ= +google.golang.org/grpc v1.67.2/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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= From 3fcaff710da0c1e150778deffae2c1bba4e048b0 Mon Sep 17 00:00:00 2001 From: HenryHK Date: Thu, 19 Jun 2025 11:19:06 +1000 Subject: [PATCH 92/96] add protection and debug log on VariableBind cast error case --- expressions/context.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/expressions/context.go b/expressions/context.go index 529f4bf5..5e02f8f9 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -126,7 +126,11 @@ func (c *varsContext) Get(name string) interface{} { objArrays := strings.SplitN(loopVar.Source, "[]", 2) if len(objArrays) > 1 { if val, ok := c.variables[objArrays[0]]; ok { - bind = val.(*VariableBind) + bind, ok = val.(*VariableBind) + if !ok { + logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") + bind = &VariableBind{} + } attr, ok := bind.Attributes[strings.TrimPrefix(objArrays[1], ".")] if ok { if attr.Attributes == nil { @@ -144,7 +148,11 @@ func (c *varsContext) Get(name string) interface{} { } c.variables[loopVar.Source] = bind } else if val != nil { - bind = val.(*VariableBind) + bind, ok = val.(*VariableBind) + if !ok { + logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") + bind = &VariableBind{} + } bind.Loop = true if bind.Attributes == nil { bind.Attributes = make(map[string]*VariableBind) From 78ba949e2d8903927b83e3294f649ffb26c30c39 Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Wed, 3 Sep 2025 09:14:49 +1000 Subject: [PATCH 93/96] Pass context to logs --- engine.go | 14 +++++++++----- expressions/config.go | 11 +++++++++-- expressions/context.go | 7 +++---- expressions/expressions_test.go | 5 +++-- expressions/filters_test.go | 5 +++-- expressions/functional_test.go | 5 +++-- expressions/parser_test.go | 3 ++- filters/standard_filters_test.go | 3 ++- parser/config.go | 13 ++++++++++--- render/config.go | 10 ++++++++-- 10 files changed, 52 insertions(+), 24 deletions(-) diff --git a/engine.go b/engine.go index d684aa31..9ebbb854 100644 --- a/engine.go +++ b/engine.go @@ -35,9 +35,13 @@ func (e *Engine) AllowedTagsWithDefault() *Engine { return e } -// NewEngine returns a new Engine. func NewEngine() *Engine { - engine := &Engine{render.NewConfig()} + return NewEngineWithContext(context.Background()) +} + +// NewEngine returns a new Engine. +func NewEngineWithContext(ctx context.Context) *Engine { + engine := &Engine{render.NewConfigWitchContext(ctx)} filters.AddStandardFilters(&engine.cfg) tags.AddStandardTags(engine.cfg) engine.RegisterFilter("hideCountryCodeAndDefault", func(v interface{}, hide bool, defaultValue string) string { @@ -150,7 +154,7 @@ func NewEngine() *Engine { } num, err := strconv.ParseFloat(s, 64) if err != nil { - logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") + logger.Warnw(engine.cfg.Context(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") return s } var formatTemplate string @@ -180,7 +184,7 @@ func NewEngine() *Engine { } num, err := strconv.ParseFloat(s, 64) if err != nil { - logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") + logger.Warnw(engine.cfg.Context(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") return s } var formatTemplate string @@ -214,7 +218,7 @@ func NewEngine() *Engine { } num, err := strconv.ParseFloat(s, 64) if err != nil { - logger.Warnw(context.Background(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") + logger.Warnw(engine.cfg.Context(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") return s } var formatTemplate string diff --git a/expressions/config.go b/expressions/config.go index 6f8bc9c8..e78d46a1 100644 --- a/expressions/config.go +++ b/expressions/config.go @@ -1,11 +1,18 @@ package expressions +import gocontext "context" + // Config holds configuration information for expression interpretation. type Config struct { filters map[string]interface{} + ctx gocontext.Context +} + +func (c *Config) Context() gocontext.Context { + return c.ctx } // NewConfig creates a new Config. -func NewConfig() Config { - return Config{} +func NewConfig(ctx gocontext.Context) Config { + return Config{ctx: ctx} } diff --git a/expressions/context.go b/expressions/context.go index 5e02f8f9..8ee26b2b 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -1,7 +1,6 @@ package expressions import ( - gocontext "context" "fmt" "reflect" "strings" @@ -128,7 +127,7 @@ func (c *varsContext) Get(name string) interface{} { if val, ok := c.variables[objArrays[0]]; ok { bind, ok = val.(*VariableBind) if !ok { - logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") + logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") bind = &VariableBind{} } attr, ok := bind.Attributes[strings.TrimPrefix(objArrays[1], ".")] @@ -150,7 +149,7 @@ func (c *varsContext) Get(name string) interface{} { } else if val != nil { bind, ok = val.(*VariableBind) if !ok { - logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") + logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") bind = &VariableBind{} } bind.Loop = true @@ -162,7 +161,7 @@ func (c *varsContext) Get(name string) interface{} { Loop: true, Attributes: make(map[string]*VariableBind), } - logger.Errorw(gocontext.Background(), fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") + logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") } bind.Attributes[attributeName] = &VariableBind{} } diff --git a/expressions/expressions_test.go b/expressions/expressions_test.go index 05c1c679..a236fb6e 100644 --- a/expressions/expressions_test.go +++ b/expressions/expressions_test.go @@ -1,6 +1,7 @@ package expressions import ( + gocontext "context" "errors" "fmt" "strings" @@ -124,7 +125,7 @@ var evaluatorTestBindings = (map[string]interface{}{ }) func TestEvaluateString(t *testing.T) { - cfg := NewConfig() + cfg := NewConfig(gocontext.Background()) cfg.AddFilter("length", strings.Count) ctx := NewContext(evaluatorTestBindings, cfg) for i, test := range evaluatorTests { @@ -147,7 +148,7 @@ func TestEvaluateString(t *testing.T) { } func TestClosure(t *testing.T) { - cfg := NewConfig() + cfg := NewConfig(gocontext.Background()) ctx := NewContext(map[string]interface{}{"x": 1}, cfg) expr, err := Parse("x") require.NoError(t, err) diff --git a/expressions/filters_test.go b/expressions/filters_test.go index 294f91d1..9f1f1513 100644 --- a/expressions/filters_test.go +++ b/expressions/filters_test.go @@ -1,6 +1,7 @@ package expressions import ( + gocontext "context" "fmt" "testing" @@ -9,7 +10,7 @@ import ( ) func TestContext_AddFilter(t *testing.T) { - cfg := NewConfig() + cfg := NewConfig(gocontext.Background()) require.NotPanics(t, func() { cfg.AddFilter("f", func(int) int { return 0 }) }) require.NotPanics(t, func() { cfg.AddFilter("f", func(int) (a int, e error) { return }) }) require.Panics(t, func() { cfg.AddFilter("f", func() int { return 0 }) }) @@ -20,7 +21,7 @@ func TestContext_AddFilter(t *testing.T) { } func TestContext_runFilter(t *testing.T) { - cfg := NewConfig() + cfg := NewConfig(gocontext.Background()) constant := func(value interface{}) valueFn { return func(Context) values.Value { return values.ValueOf(value) } } diff --git a/expressions/functional_test.go b/expressions/functional_test.go index fe3c7232..c7c1cfe0 100644 --- a/expressions/functional_test.go +++ b/expressions/functional_test.go @@ -1,20 +1,21 @@ package expressions import ( + gocontext "context" "testing" "github.com/stretchr/testify/require" ) func TestConstant(t *testing.T) { - ctx := NewContext(map[string]interface{}{}, NewConfig()) + ctx := NewContext(map[string]interface{}{}, NewConfig(gocontext.Background())) k := Constant(10) v, err := k.Evaluate(ctx) require.NoError(t, err) require.Equal(t, 10, v) } func TestNot(t *testing.T) { - ctx := NewContext(map[string]interface{}{}, NewConfig()) + ctx := NewContext(map[string]interface{}{}, NewConfig(gocontext.Background())) k := Constant(10) v, err := Not(k).Evaluate(ctx) require.NoError(t, err) diff --git a/expressions/parser_test.go b/expressions/parser_test.go index 8517b272..6524b1a0 100644 --- a/expressions/parser_test.go +++ b/expressions/parser_test.go @@ -1,6 +1,7 @@ package expressions import ( + gocontext "context" "fmt" "testing" @@ -35,7 +36,7 @@ var parseErrorTests = []struct{ in, expected string }{ // Since the parser returns funcs, there's no easy way to test them except evaluation func TestParse(t *testing.T) { - cfg := NewConfig() + cfg := NewConfig(gocontext.Background()) cfg.AddFilter("add", func(a, b int) int { return a + b }) ctx := NewContext(map[string]interface{}{ "a": 1, diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 873cb126..5917e781 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -1,6 +1,7 @@ package filters import ( + gocontext "context" "fmt" "os" "testing" @@ -406,7 +407,7 @@ func TestFilters(t *testing.T) { ) filterTestBindings["dup_maps"] = []interface{}{m1, m2, m1, m3} - cfg := expressions.NewConfig() + cfg := expressions.NewConfig(gocontext.Background()) AddStandardFilters(&cfg) context := expressions.NewContext(filterTestBindings, cfg) diff --git a/parser/config.go b/parser/config.go index 251b6ca4..5fb7d65c 100644 --- a/parser/config.go +++ b/parser/config.go @@ -1,6 +1,10 @@ package parser -import "github.com/autopilot3/liquid/expressions" +import ( + "context" + + "github.com/autopilot3/liquid/expressions" +) // A Config holds configuration information for parsing and rendering. type Config struct { @@ -10,6 +14,9 @@ type Config struct { } // NewConfig creates a parser Config. -func NewConfig(g Grammar) Config { - return Config{Grammar: g} +func NewConfig(g Grammar, ctx context.Context) Config { + return Config{ + Grammar: g, + Config: expressions.NewConfig(ctx), + } } diff --git a/render/config.go b/render/config.go index 14eed33b..80867b54 100644 --- a/render/config.go +++ b/render/config.go @@ -1,6 +1,8 @@ package render import ( + "context" + "github.com/autopilot3/liquid/parser" ) @@ -17,14 +19,18 @@ type grammar struct { blockDefs map[string]*blockSyntax } -// NewConfig creates a new Settings. func NewConfig() Config { + return NewConfigWitchContext(context.Background()) +} + +// NewConfig creates a new Settings. +func NewConfigWitchContext(ctx context.Context) Config { g := grammar{ tags: map[string]TagCompiler{}, blockDefs: map[string]*blockSyntax{}, } return Config{ - parser.NewConfig(g), + parser.NewConfig(g, ctx), g, nil, false, From 22dc0dafcc88a2a50c3d7a40cf759e6daa4ae91a Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Fri, 5 Sep 2025 13:49:40 +1000 Subject: [PATCH 94/96] Var can be nil if it's assigned value --- expressions/context.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/expressions/context.go b/expressions/context.go index 8ee26b2b..270700aa 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -140,13 +140,13 @@ func (c *varsContext) Get(name string) interface{} { } } } else { - if val, ok := c.variables[loopVar.Source]; !ok { + if val, ok := c.variables[loopVar.Source]; !ok || val == nil { bind = &VariableBind{ Loop: true, Attributes: make(map[string]*VariableBind), } c.variables[loopVar.Source] = bind - } else if val != nil { + } else { bind, ok = val.(*VariableBind) if !ok { logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") @@ -156,12 +156,6 @@ func (c *varsContext) Get(name string) interface{} { if bind.Attributes == nil { bind.Attributes = make(map[string]*VariableBind) } - } else { - bind = &VariableBind{ - Loop: true, - Attributes: make(map[string]*VariableBind), - } - logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") } bind.Attributes[attributeName] = &VariableBind{} } From 31057e43c9bad2251cdc9a33e0d0d03af15663ac Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Thu, 16 Oct 2025 11:32:27 +1000 Subject: [PATCH 95/96] Fix using assigned vars in loops --- expressions/context.go | 20 ++++++++++++++++---- render/context.go | 10 ++++++++++ render/render.go | 6 ++++++ tags/standard_tags.go | 4 +++- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/expressions/context.go b/expressions/context.go index 270700aa..08958d62 100644 --- a/expressions/context.go +++ b/expressions/context.go @@ -71,6 +71,7 @@ func (c *varsContext) Clone() Context { const LatestVarNameKey = "$LATEST$" const LoopVarsKey = "$LOOP_VARS$" +const AssignedVarsKey = "$ASSIGNED_VARS$" type VariableBind struct { Loop bool @@ -127,8 +128,13 @@ func (c *varsContext) Get(name string) interface{} { if val, ok := c.variables[objArrays[0]]; ok { bind, ok = val.(*VariableBind) if !ok { - logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") - bind = &VariableBind{} + if _, ok := val.(string); ok { // assigned variable + bind = &VariableBind{} + c.variables[objArrays[0]] = bind + } else { + logger.Errorw(c.ctx, fmt.Sprintf("Error variable %s is not of VariableBind type %T: variables: %+v, current varibale %+v, config filter %+v,", objArrays[0], val, c.variables, c.currentVars, c.Config.filters), "Get", "context") + continue + } } attr, ok := bind.Attributes[strings.TrimPrefix(objArrays[1], ".")] if ok { @@ -149,8 +155,14 @@ func (c *varsContext) Get(name string) interface{} { } else { bind, ok = val.(*VariableBind) if !ok { - logger.Errorw(c.ctx, fmt.Sprintf("Error variables is not of VariableBind type: variables: %+v, current varibale %+v, config filter %+v,", c.variables, c.currentVars, c.Config.filters), "Get", "context") - bind = &VariableBind{} + if _, ok := val.(string); ok { // assigned variable + bind = &VariableBind{} + c.variables[loopVar.Source] = bind + } else { + // it could be binded in assign before loop (% assign varoffers = activity.custom.comparison-offers.offers | default: '' %}) + logger.Errorw(c.ctx, fmt.Sprintf("Error variables %s is not of VariableBind type %T: variables: %+v, current varibale %+v, config filter %+v,", loopVar.Source, val, c.variables, c.currentVars, c.Config.filters), "Get", "context") + continue + } } bind.Loop = true if bind.Attributes == nil { diff --git a/render/context.go b/render/context.go index 1367441b..a0fc96b2 100644 --- a/render/context.go +++ b/render/context.go @@ -56,6 +56,7 @@ type Context interface { SetLoopVar(name string, sourceName string) int RemoveLoopVar(key int) + SetVar(name string) } type rendererContext struct { @@ -77,6 +78,15 @@ func (c rendererContext) SetLoopVar(name string, sourceName string) int { return loopVars.(*expressions.LoopVarsStack).Set(name, sourceName) } +func (c rendererContext) SetVar(name string) { + assignedVars, ok := c.ctx.bindings[expressions.AssignedVarsKey] + if !ok { + assignedVars = make(map[string]struct{}) + c.ctx.bindings[expressions.AssignedVarsKey] = assignedVars + } + assignedVars.(map[string]struct{})[name] = struct{}{} +} + func (c rendererContext) RemoveLoopVar(key int) { loopVars, ok := c.ctx.bindings[expressions.LoopVarsKey] if ok { diff --git a/render/render.go b/render/render.go index 4de794ac..e3b455e2 100644 --- a/render/render.go +++ b/render/render.go @@ -37,6 +37,12 @@ func FindVariables(node Node, c Config) (map[string]interface{}, Error) { } delete(ctx.bindings, expressions.LatestVarNameKey) delete(ctx.bindings, expressions.LoopVarsKey) + if assignedVars, ok := ctx.bindings[expressions.AssignedVarsKey]; ok { + for name := range assignedVars.(map[string]struct{}) { + delete(ctx.bindings, name) + } + delete(ctx.bindings, expressions.AssignedVarsKey) + } return ctx.bindings, nil } diff --git a/tags/standard_tags.go b/tags/standard_tags.go index 8b04c920..06295621 100644 --- a/tags/standard_tags.go +++ b/tags/standard_tags.go @@ -38,7 +38,9 @@ func assignTag(source string) (func(io.Writer, render.Context) error, error) { if err != nil { return err } - _ = value + if ctx.IsFindVars() { + ctx.SetVar(stmt.Assignment.Variable) + } ctx.Set(stmt.Assignment.Variable, value) return nil }, nil From f29275cca4626f4b613f98ee8e561e8478cfea65 Mon Sep 17 00:00:00 2001 From: Denys Misko Date: Thu, 13 Nov 2025 16:37:49 +1000 Subject: [PATCH 96/96] Add adv currency formatting --- engine.go | 35 +++++++++++++++++++++++++++++------ engine_test.go | 36 ++++++++++++++++++++++++++++++------ go.mod | 2 ++ go.sum | 6 ++++++ 4 files changed, 67 insertions(+), 12 deletions(-) diff --git a/engine.go b/engine.go index 9ebbb854..b281a6c9 100644 --- a/engine.go +++ b/engine.go @@ -17,6 +17,7 @@ import ( "github.com/autopilot3/liquid/render" "github.com/autopilot3/liquid/tags" + "github.com/bojanz/currency" "golang.org/x/text/language" "golang.org/x/text/message" ) @@ -178,7 +179,7 @@ func NewEngineWithContext(ctx context.Context) *Engine { return value }) - engine.RegisterFilter("decimalWithDelimiter", func(s string, format string, currency string, loc string) string { + engine.RegisterFilter("decimalWithDelimiter", func(s string, format string, currencyCode string, loc string) string { if s == "" { return s } @@ -187,6 +188,29 @@ func NewEngineWithContext(ctx context.Context) *Engine { logger.Warnw(engine.cfg.Context(), fmt.Sprintf("failed to parse field value %s to decimal: %s", s, err.Error()), "lqiuid", "filter") return s } + + if len(currencyCode) == 3 { // iso code + amount, err := currency.NewAmount(fmt.Sprintf("%.3f", num/1000), currencyCode) + if err == nil { + locale := currency.NewLocale(loc) + formatter := currency.NewFormatter(locale) + + switch format { + case "whole": + formatter.MaxDigits = 0 + case "one": + formatter.MaxDigits = 1 + case "two": + formatter.MaxDigits = 2 + default: + formatter.MaxDigits = 2 + } + return formatter.Format(amount) + } else { + // log and fallback to the previous logic + logger.Warnw(engine.cfg.Context(), fmt.Sprintf("failed to parse field value %s with currency code %s to decimal: %s", s, currencyCode, err.Error()), "lqiuid", "filter") + } + } var formatTemplate string switch format { case "whole": @@ -204,12 +228,11 @@ func NewEngineWithContext(ctx context.Context) *Engine { tag = language.English } p := message.NewPrinter(tag) - value := p.Sprintf(formatTemplate, float64(num)/1000) - if currency != "" { - return currency + value + val := p.Sprintf(formatTemplate, num/1000) + if currencyCode != "" { + return currencyCode + val } - - return value + return val }) engine.RegisterFilter("numberWithDelimiter", func(s string, loc string, format string) string { diff --git a/engine_test.go b/engine_test.go index a3000c0e..f51d52e3 100644 --- a/engine_test.go +++ b/engine_test.go @@ -144,12 +144,36 @@ func TestDecimalFilter(t *testing.T) { func TestDecimalWithDelimiterFilter(t *testing.T) { engine := NewEngine() - template := `{{ 12345 | decimalWithDelimiter: 'one', '€', 'de' }}` - str, err := engine.ParseAndRenderString(template, nil) - require.NoError(t, err) - t.Log(str) - if str != "€12,3" { - t.Error("decimal with delimiter filter error") + tests := []struct { + name string + liquid string + expectedValue string + }{ + { + name: "currency symbol", + liquid: `{{ 12345 | decimalWithDelimiter: 'one', '€', 'de' }}`, + expectedValue: "€12,3", + }, + { + name: "norwegian Krone", + liquid: `{{ 12345 | decimalWithDelimiter: 'one', 'NOK', 'no-NO' }}`, + expectedValue: "12,3 kr", + }, + { + name: "us dollar in english", + liquid: `{{ 12345 | decimalWithDelimiter: 'one', 'USD', 'en' }}`, + expectedValue: "$12.3", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + str, err := engine.ParseAndRenderString(test.liquid, nil) + require.NoError(t, err) + if str != test.expectedValue { + t.Errorf("For %s, expected %s, got %s", test.name, test.expectedValue, str) + } + }) } } diff --git a/go.mod b/go.mod index 22d8b3ee..257e5e14 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/autopilot3/ap3-crm-api-go v0.0.0-20230721090944-c8612d9147a5 github.com/autopilot3/ap3-helpers-go v0.0.0-20250506013120-83414d6baf31 github.com/autopilot3/ap3-types-go v0.0.0-20250409014854-d8c500a2e4d0 + github.com/bojanz/currency v1.4.0 github.com/osteele/tuesday v1.0.3 github.com/stretchr/testify v1.10.0 golang.org/x/text v0.25.0 @@ -25,6 +26,7 @@ require ( github.com/aws/aws-sdk-go v1.44.278 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cockroachdb/apd/v3 v3.2.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/gocql/gocql v1.4.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect diff --git a/go.sum b/go.sum index edac3ecf..a5ddf229 100644 --- a/go.sum +++ b/go.sum @@ -29,8 +29,12 @@ github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYE github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bojanz/currency v1.4.0 h1:sPLts/Qx3u0+FfYx+31NLYYOiOdPiH8mBWdJCAZHj3g= +github.com/bojanz/currency v1.4.0/go.mod h1:hv7AAJ5jNRvE/SXaJe74uBPg6syV21imy4yKP7fi9GM= 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/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -68,6 +72,8 @@ 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/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=