From 88b983dd10fd890f877b47a408c7c04da5579833 Mon Sep 17 00:00:00 2001 From: vyshakhp Date: Tue, 17 Jul 2018 11:08:32 +0530 Subject: [PATCH] helm-ez first commit 0.1.0 --- .gitignore | 2 + Gopkg.lock | 33 + Gopkg.toml | 38 + Makefile | 75 + helmez-bin | Bin 0 -> 4379520 bytes helmez.go | 172 ++ vendor/github.com/icza/dyno/.travis.yml | 11 + vendor/github.com/icza/dyno/LICENSE | 201 ++ vendor/github.com/icza/dyno/README.md | 64 + vendor/github.com/icza/dyno/dyno.go | 601 ++++ vendor/github.com/icza/dyno/dyno_test.go | 1620 ++++++++++ vendor/github.com/icza/dyno/example_test.go | 234 ++ vendor/github.com/imdario/mergo/.gitignore | 33 + vendor/github.com/imdario/mergo/.travis.yml | 7 + .../imdario/mergo/CODE_OF_CONDUCT.md | 46 + vendor/github.com/imdario/mergo/LICENSE | 28 + vendor/github.com/imdario/mergo/README.md | 222 ++ vendor/github.com/imdario/mergo/doc.go | 44 + .../github.com/imdario/mergo/issue17_test.go | 25 + .../github.com/imdario/mergo/issue23_test.go | 27 + .../github.com/imdario/mergo/issue33_test.go | 33 + .../github.com/imdario/mergo/issue38_test.go | 59 + .../github.com/imdario/mergo/issue50_test.go | 18 + .../github.com/imdario/mergo/issue52_test.go | 99 + .../github.com/imdario/mergo/issue61_test.go | 20 + .../github.com/imdario/mergo/issue64_test.go | 38 + .../github.com/imdario/mergo/issue66_test.go | 48 + vendor/github.com/imdario/mergo/map.go | 174 ++ vendor/github.com/imdario/mergo/merge.go | 245 ++ .../imdario/mergo/merge_appendslice_test.go | 33 + vendor/github.com/imdario/mergo/merge_test.go | 50 + vendor/github.com/imdario/mergo/mergo.go | 97 + vendor/github.com/imdario/mergo/mergo_test.go | 733 +++++ vendor/github.com/imdario/mergo/pr80_test.go | 18 + vendor/github.com/imdario/mergo/pr81_test.go | 42 + .../imdario/mergo/testdata/license.yml | 4 + .../imdario/mergo/testdata/thing.yml | 6 + vendor/github.com/urfave/cli/.flake8 | 2 + vendor/github.com/urfave/cli/.gitignore | 2 + vendor/github.com/urfave/cli/.travis.yml | 27 + vendor/github.com/urfave/cli/CHANGELOG.md | 435 +++ vendor/github.com/urfave/cli/LICENSE | 21 + vendor/github.com/urfave/cli/README.md | 1381 +++++++++ vendor/github.com/urfave/cli/altsrc/altsrc.go | 3 + vendor/github.com/urfave/cli/altsrc/flag.go | 261 ++ .../urfave/cli/altsrc/flag_generated.go | 347 +++ .../github.com/urfave/cli/altsrc/flag_test.go | 336 ++ .../urfave/cli/altsrc/helpers_test.go | 18 + .../urfave/cli/altsrc/input_source_context.go | 21 + .../urfave/cli/altsrc/map_input_source.go | 262 ++ .../urfave/cli/altsrc/toml_command_test.go | 310 ++ .../urfave/cli/altsrc/toml_file_loader.go | 113 + .../urfave/cli/altsrc/yaml_command_test.go | 313 ++ .../urfave/cli/altsrc/yaml_file_loader.go | 92 + vendor/github.com/urfave/cli/app.go | 497 +++ vendor/github.com/urfave/cli/app_test.go | 1742 +++++++++++ vendor/github.com/urfave/cli/appveyor.yml | 26 + .../urfave/cli/autocomplete/bash_autocomplete | 16 + .../urfave/cli/autocomplete/zsh_autocomplete | 5 + vendor/github.com/urfave/cli/category.go | 44 + vendor/github.com/urfave/cli/cli.go | 22 + vendor/github.com/urfave/cli/command.go | 304 ++ vendor/github.com/urfave/cli/command_test.go | 240 ++ vendor/github.com/urfave/cli/context.go | 278 ++ vendor/github.com/urfave/cli/context_test.go | 403 +++ vendor/github.com/urfave/cli/errors.go | 115 + vendor/github.com/urfave/cli/errors_test.go | 122 + vendor/github.com/urfave/cli/flag-types.json | 93 + vendor/github.com/urfave/cli/flag.go | 799 +++++ .../github.com/urfave/cli/flag_generated.go | 627 ++++ vendor/github.com/urfave/cli/flag_test.go | 1215 ++++++++ vendor/github.com/urfave/cli/funcs.go | 28 + .../github.com/urfave/cli/generate-flag-types | 255 ++ vendor/github.com/urfave/cli/help.go | 338 +++ vendor/github.com/urfave/cli/help_test.go | 452 +++ vendor/github.com/urfave/cli/helpers_test.go | 28 + .../urfave/cli/helpers_unix_test.go | 9 + .../urfave/cli/helpers_windows_test.go | 20 + vendor/github.com/urfave/cli/runtests | 122 + vendor/gopkg.in/yaml.v2/.travis.yml | 12 + vendor/gopkg.in/yaml.v2/LICENSE | 201 ++ vendor/gopkg.in/yaml.v2/LICENSE.libyaml | 31 + vendor/gopkg.in/yaml.v2/NOTICE | 13 + vendor/gopkg.in/yaml.v2/README.md | 133 + vendor/gopkg.in/yaml.v2/apic.go | 739 +++++ vendor/gopkg.in/yaml.v2/decode.go | 775 +++++ vendor/gopkg.in/yaml.v2/decode_test.go | 1326 ++++++++ vendor/gopkg.in/yaml.v2/emitterc.go | 1685 +++++++++++ vendor/gopkg.in/yaml.v2/encode.go | 362 +++ vendor/gopkg.in/yaml.v2/encode_test.go | 595 ++++ .../gopkg.in/yaml.v2/example_embedded_test.go | 41 + vendor/gopkg.in/yaml.v2/go.mod | 5 + vendor/gopkg.in/yaml.v2/parserc.go | 1095 +++++++ vendor/gopkg.in/yaml.v2/readerc.go | 412 +++ vendor/gopkg.in/yaml.v2/resolve.go | 258 ++ vendor/gopkg.in/yaml.v2/scannerc.go | 2696 +++++++++++++++++ vendor/gopkg.in/yaml.v2/sorter.go | 113 + vendor/gopkg.in/yaml.v2/suite_test.go | 12 + vendor/gopkg.in/yaml.v2/writerc.go | 26 + vendor/gopkg.in/yaml.v2/yaml.go | 466 +++ vendor/gopkg.in/yaml.v2/yamlh.go | 738 +++++ vendor/gopkg.in/yaml.v2/yamlprivateh.go | 173 ++ 102 files changed, 28851 insertions(+) create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml create mode 100644 Makefile create mode 100755 helmez-bin create mode 100644 helmez.go create mode 100644 vendor/github.com/icza/dyno/.travis.yml create mode 100644 vendor/github.com/icza/dyno/LICENSE create mode 100644 vendor/github.com/icza/dyno/README.md create mode 100644 vendor/github.com/icza/dyno/dyno.go create mode 100644 vendor/github.com/icza/dyno/dyno_test.go create mode 100644 vendor/github.com/icza/dyno/example_test.go create mode 100644 vendor/github.com/imdario/mergo/.gitignore create mode 100644 vendor/github.com/imdario/mergo/.travis.yml create mode 100644 vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/imdario/mergo/LICENSE create mode 100644 vendor/github.com/imdario/mergo/README.md create mode 100644 vendor/github.com/imdario/mergo/doc.go create mode 100644 vendor/github.com/imdario/mergo/issue17_test.go create mode 100644 vendor/github.com/imdario/mergo/issue23_test.go create mode 100644 vendor/github.com/imdario/mergo/issue33_test.go create mode 100644 vendor/github.com/imdario/mergo/issue38_test.go create mode 100644 vendor/github.com/imdario/mergo/issue50_test.go create mode 100644 vendor/github.com/imdario/mergo/issue52_test.go create mode 100644 vendor/github.com/imdario/mergo/issue61_test.go create mode 100644 vendor/github.com/imdario/mergo/issue64_test.go create mode 100644 vendor/github.com/imdario/mergo/issue66_test.go create mode 100644 vendor/github.com/imdario/mergo/map.go create mode 100644 vendor/github.com/imdario/mergo/merge.go create mode 100644 vendor/github.com/imdario/mergo/merge_appendslice_test.go create mode 100644 vendor/github.com/imdario/mergo/merge_test.go create mode 100644 vendor/github.com/imdario/mergo/mergo.go create mode 100644 vendor/github.com/imdario/mergo/mergo_test.go create mode 100644 vendor/github.com/imdario/mergo/pr80_test.go create mode 100644 vendor/github.com/imdario/mergo/pr81_test.go create mode 100644 vendor/github.com/imdario/mergo/testdata/license.yml create mode 100644 vendor/github.com/imdario/mergo/testdata/thing.yml create mode 100644 vendor/github.com/urfave/cli/.flake8 create mode 100644 vendor/github.com/urfave/cli/.gitignore create mode 100644 vendor/github.com/urfave/cli/.travis.yml create mode 100644 vendor/github.com/urfave/cli/CHANGELOG.md create mode 100644 vendor/github.com/urfave/cli/LICENSE create mode 100644 vendor/github.com/urfave/cli/README.md create mode 100644 vendor/github.com/urfave/cli/altsrc/altsrc.go create mode 100644 vendor/github.com/urfave/cli/altsrc/flag.go create mode 100644 vendor/github.com/urfave/cli/altsrc/flag_generated.go create mode 100644 vendor/github.com/urfave/cli/altsrc/flag_test.go create mode 100644 vendor/github.com/urfave/cli/altsrc/helpers_test.go create mode 100644 vendor/github.com/urfave/cli/altsrc/input_source_context.go create mode 100644 vendor/github.com/urfave/cli/altsrc/map_input_source.go create mode 100644 vendor/github.com/urfave/cli/altsrc/toml_command_test.go create mode 100644 vendor/github.com/urfave/cli/altsrc/toml_file_loader.go create mode 100644 vendor/github.com/urfave/cli/altsrc/yaml_command_test.go create mode 100644 vendor/github.com/urfave/cli/altsrc/yaml_file_loader.go create mode 100644 vendor/github.com/urfave/cli/app.go create mode 100644 vendor/github.com/urfave/cli/app_test.go create mode 100644 vendor/github.com/urfave/cli/appveyor.yml create mode 100755 vendor/github.com/urfave/cli/autocomplete/bash_autocomplete create mode 100644 vendor/github.com/urfave/cli/autocomplete/zsh_autocomplete create mode 100644 vendor/github.com/urfave/cli/category.go create mode 100644 vendor/github.com/urfave/cli/cli.go create mode 100644 vendor/github.com/urfave/cli/command.go create mode 100644 vendor/github.com/urfave/cli/command_test.go create mode 100644 vendor/github.com/urfave/cli/context.go create mode 100644 vendor/github.com/urfave/cli/context_test.go create mode 100644 vendor/github.com/urfave/cli/errors.go create mode 100644 vendor/github.com/urfave/cli/errors_test.go create mode 100644 vendor/github.com/urfave/cli/flag-types.json create mode 100644 vendor/github.com/urfave/cli/flag.go create mode 100644 vendor/github.com/urfave/cli/flag_generated.go create mode 100644 vendor/github.com/urfave/cli/flag_test.go create mode 100644 vendor/github.com/urfave/cli/funcs.go create mode 100755 vendor/github.com/urfave/cli/generate-flag-types create mode 100644 vendor/github.com/urfave/cli/help.go create mode 100644 vendor/github.com/urfave/cli/help_test.go create mode 100644 vendor/github.com/urfave/cli/helpers_test.go create mode 100644 vendor/github.com/urfave/cli/helpers_unix_test.go create mode 100644 vendor/github.com/urfave/cli/helpers_windows_test.go create mode 100755 vendor/github.com/urfave/cli/runtests create mode 100644 vendor/gopkg.in/yaml.v2/.travis.yml create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE.libyaml create mode 100644 vendor/gopkg.in/yaml.v2/NOTICE create mode 100644 vendor/gopkg.in/yaml.v2/README.md create mode 100644 vendor/gopkg.in/yaml.v2/apic.go create mode 100644 vendor/gopkg.in/yaml.v2/decode.go create mode 100644 vendor/gopkg.in/yaml.v2/decode_test.go create mode 100644 vendor/gopkg.in/yaml.v2/emitterc.go create mode 100644 vendor/gopkg.in/yaml.v2/encode.go create mode 100644 vendor/gopkg.in/yaml.v2/encode_test.go create mode 100644 vendor/gopkg.in/yaml.v2/example_embedded_test.go create mode 100644 vendor/gopkg.in/yaml.v2/go.mod create mode 100644 vendor/gopkg.in/yaml.v2/parserc.go create mode 100644 vendor/gopkg.in/yaml.v2/readerc.go create mode 100644 vendor/gopkg.in/yaml.v2/resolve.go create mode 100644 vendor/gopkg.in/yaml.v2/scannerc.go create mode 100644 vendor/gopkg.in/yaml.v2/sorter.go create mode 100644 vendor/gopkg.in/yaml.v2/suite_test.go create mode 100644 vendor/gopkg.in/yaml.v2/writerc.go create mode 100644 vendor/gopkg.in/yaml.v2/yaml.go create mode 100644 vendor/gopkg.in/yaml.v2/yamlh.go create mode 100644 vendor/gopkg.in/yaml.v2/yamlprivateh.go diff --git a/.gitignore b/.gitignore index f1c181e..cca2f85 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out + +bin/ diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 0000000..e5141b9 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,33 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + branch = "master" + name = "github.com/icza/dyno" + packages = ["."] + revision = "0c96289f9585a8af1ebfcee94d52b4f6cfaf9f0d" + +[[projects]] + name = "github.com/imdario/mergo" + packages = ["."] + revision = "9316a62528ac99aaecb4e47eadd6dc8aa6533d58" + version = "v0.3.5" + +[[projects]] + name = "github.com/urfave/cli" + packages = ["."] + revision = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1" + version = "v1.20.0" + +[[projects]] + name = "gopkg.in/yaml.v2" + packages = ["."] + revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" + version = "v2.2.1" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "86e54a615eea53911bc5933a63d6859ebaff4476cfd305f1c5eb18871d5ec588" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 0000000..83f66a8 --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,38 @@ + +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" + + +[[constraint]] + branch = "master" + name = "github.com/icza/dyno" + +[[constraint]] + name = "github.com/imdario/mergo" + version = "0.3.5" + +[[constraint]] + name = "github.com/urfave/cli" + version = "1.20.0" + +[[constraint]] + name = "gopkg.in/yaml.v2" + version = "2.2.1" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f8c4112 --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +SHELL := /bin/bash +GO := GO15VENDOREXPERIMENT=1 go +NAME := helmez-bin + +OS := $(shell uname) +MAIN_GO := helmez.go +ROOT_PACKAGE := github.com/ysaakpr/$(NAME) +GO_VERSION := $(shell $(GO) version | sed -e 's/^[^0-9.]*\([0-9.]*\).*/\1/') +PACKAGE_DIRS := $(shell $(GO) list ./... | grep -v /vendor/) +PKGS := $(shell go list ./... | grep -v /vendor | grep -v generated) +BUILDFLAGS := '' +CGO_ENABLED = 0 +VENDOR_DIR=vendor + +all: build + +check: fmt build test + +build: + CGO_ENABLED=$(CGO_ENABLED) $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME) $(MAIN_GO) + +test: + CGO_ENABLED=$(CGO_ENABLED) $(GO) test $(PACKAGE_DIRS) -test.v + +full: $(PKGS) + +install: + GOBIN=${GOPATH}/bin $(GO) install -ldflags $(BUILDFLAGS) $(MAIN_GO) + +fmt: + @FORMATTED=`$(GO) fmt $(PACKAGE_DIRS)` + @([[ ! -z "$(FORMATTED)" ]] && printf "Fixed unformatted files:\n$(FORMATTED)") || true + +clean: + rm -rf build release + +linux-amd64: + CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).linux.amd64 $(MAIN_GO) +linux-386: + CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=386 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).linux.386 $(MAIN_GO) +darwin-amd64: + CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=amd64 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).darwin.amd64 $(MAIN_GO) +darwin-386: + CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=386 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).darwin.386 $(MAIN_GO) +windows-amd64: + CGO_ENABLED=$(CGO_ENABLED) GOOS=windows GOARCH=amd64 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).windows.amd64 $(MAIN_GO) +windows-386: + CGO_ENABLED=$(CGO_ENABLED) GOOS=windows GOARCH=386 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME).windows.386 $(MAIN_GO) + +.PHONY: release clean + +release-all: linux-amd64 linux-386 darwin-amd64 darwin-386 windows-amd64 windows-386 + +FGT := $(GOPATH)/bin/fgt +$(FGT): + go get github.com/GeertJohan/fgt + +GOLINT := $(GOPATH)/bin/golint +$(GOLINT): + go get github.com/golang/lint/golint + +$(PKGS): $(GOLINT) $(FGT) + @echo "LINTING" + @$(FGT) $(GOLINT) $(GOPATH)/src/$@/*.go + @echo "VETTING" + @go vet -v $@ + @echo "TESTING" + @go test -v $@ + +.PHONY: lint +lint: vendor | $(PKGS) $(GOLINT) # ❷ + @cd $(BASE) && ret=0 && for pkg in $(PKGS); do \ + test -z "$$($(GOLINT) $$pkg | tee /dev/stderr)" || ret=1 ; \ + done ; exit $$ret + diff --git a/helmez-bin b/helmez-bin new file mode 100755 index 0000000000000000000000000000000000000000..c33a68965ec4df42885133fad1968769947ded99 GIT binary patch literal 4379520 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%0D!VkTnsz_$~Xpg z37ELHIFhL0pCz%}e40yO8CMb?_~@yMeU4bqe4D`l7?NEE941Qc`N+KnLL3Y-m~;&! z@un=tYH)GhEJwJO0(@ZJ+#>WAVOMu6A7D3+!q~hlnR;~2f-iJA29NHM^RvJ)W zLVgsH2`w{-A3#8>?T^NbHB>ZCNycDRuLvUmFmKWR(P#1}Fp>d2tuxl*U?Q)TnOnkw z>XQu=OBF05{Y5JxW)wM2(ex*8l4hE`D9?h$uY=y~+Up{A-pSsK4?sA8_B;4gg zce!sAEXh&eIV_o#FNngxCCj}lYM%Lyj2<1vWO@~S>I{NV@1&1t(dwLeGxb5@l3k|J z?l)d&dZyD)T))$2MSgU?v%ExM>6 z`g*>%==uVr{Di9Q%^aIz)NEQcLzg#IL=uIki9s47@j8N1x2*JhHVO_!HvoN8B%7QVZL8cx}Yf&eI1TN&@ zoR2Bs$1cIptD!~Z!P2E0%lvpvnV-0}%x05gqsk~!wmY;0Z+{ag#I~|1FL;HYsh8BU z6Za^eU^&k$Q%%5|B)|b6o!6Wwy7yOoXY@OVS(o~ZfQ!ZYz2Viaj^Yvd%x{jO{=94@#}%!I8x+yd9AM)grS!B;p-~|;xT0k1~0J3HD!dT{KUqxy4dp6d= zS&=W$N$`-4kMU*BUGVT3bWG>Yb;0L#W4rc8BO#ZvI3um;MTHIigHW88i0^^$0P{?W zgD-EDm`^tvjHQ{>J(_3YLy7@%i=_g@?Lc(_Z@E@O;rl02Xkukl{&NqcB zOI8Dc+W4e$ZVCEN`XbxQMISn4WabrYlqC&Acj*K}_sn^@=$>+wFiYP!c_&fyb$bVX zF25i|xOi2xR zA8iJ=^B^@BLy^c9&LE>{d)(@fJs<0c3~kp&a&!Ksd?Tn^L;8DpIHaZL(M( z@iwGu7}CqHb|2DNybOnQiijQ|-F-Z(uiMM<@OALg*W6$pr&Hgiwcw9DNZlG?yPdkK z&0h3GI$am9eZLco7PHAxi#MycvE}8A?ZEWd{x+`1*ybFU8QaI}yN~T#yxhaswl;r? zv2Fiqc5L%$ElBbpb*qt;)L5CYQ4s<4rUAnlMp>|U57(DP5_L{3{6tm{x)5*r@TH&U z6tws^%50W!I4>fxuk^y)^F$-Y-1=1$@q#a56whbFHX(&kQ3x_|T0buymk4YG$L+@4|q{#ww; zx1qV)1i7`Ax2T5zY=N%aJHWXRS;$qg2Xoj58l5J4#+6*`4_(f&Mc$l8tu4n4uOAsQ z!|%_{A(%nb6EC`GXog^(jddrODqik^V3tn#6a@41_$F!Y^wzW>jB(Dr6*^5rS8{ulO16VsE zu?@imswXk{iP^a_{5Mw!5~c}F=o(4hQ{G~*MJj5RQ4p2ARhImLbX=n72CD*5f9=>b z9QV44MyimEW~+v;vmZcuaxs-kx0If$OAgY8J>OkymRM(pUEX(>OWnhb?k?i)M!U;< zr=o0rl)FVwH+|Eop>;d+lkk!`68n2?D{SQB8f?+a|8g^<5GwZtBcI)7z4<2F+n&D( z*LXF-tX)m}_&@Tu?no8+Th|PGUYt&09sei359ca|uuUwUdy|ZsD=^BfjI@WKip@QP zP4kJt`|&~e*s`YN(`tX*vYZlQ~Bld-B!L_5RScb+MJ{ElWB!_VJHg?dQL2YVKjf%Cs^JTqi0Wm$OGr zeDFO-!<_Le<(J?@H1;ASzj0++NMfuk&ByF13@z67cijlg>}e1{-Cl%__1vx^!J%Ik z;|y$#ig9Gt;g|&1UFI0aPyG^(m}u|dh%3+0DKZEF z8o;4+^$P1J?xsh<*GV;G?eu$pu**KfLF7n7WHms!Us09dCi8^?v?l=e)JG--ON4 zh*M9F-3j)YlPrr7WZ38<^@uSO?ZF3r$Z%?1%W;in>8bp|_~A=FC&bD%5@LHZZEqE3 zLeth?s@;6kR`=VP#pv+TL?N~T#%aXLGJDp)%w*wjXXeVnpIzc`H{NE~?zDHHbY7jq zG!#x}S+{QBR7-GgwNZl@7P}vhNxw>k;R6G=Y%0X?_-xlAyXjhR;1h=0>F!eGE=QaU zq7TmH*lzePmfGzZ-*w^1Cfo6QB150VbhI2l!JEDZFJ0?!VWWa7l%9^&FpcnEg&#Yo zGCr{OC^X{JVb)q~6oh(CC1*AxVzw7FkB(Qcfceb$q(b%=QG|cEY2{HB@qq*EJ3@!c zMhyX(c}x3{w4ILe+CtJ{?ZL83PH$5f{_TQFm}(o&$2M?;eH0EZ3I9tE#9g1%{b24QGg;156Q zo9D+u`J+%>iD0B3rPe2@jo^}E#b((9NwfywEt;eu2t(#aTNA-d)qWMV2V)*H+Szmx z57wb#dzJ5r+VV9nUU#0no|*65Z-alJe1Wcs@QMx9u6spJTX&h53iqIj-+%zVv`i^- z&YdEZ@qiiR)5%LZ<-oF#U-3&C?eWN7gz;L?ljhk;nlN8UW7Tts%T<@vDC|`oLZmu0 zPX|8sS?Xoma@L!8ZSP<%Mq+LSH`sXGe67)J$=}EAq3R{J0Y^oP#w&A7KGwPMK^Q;; z*3dnN)KqTqTD8kigjuIZd_1ny#M1giQ#tc?@7-KkkHBQoZX(lXCyb)qa}&ciV(~Wj zC8=a%>YlpT4l}l%VvFaX&&9IBHbi2trlMf>jc+;YQZqcoifbY6ar+|({<2^W`#A}Z zAQK%Vb_2JL-H5iod<10leDhd~wv(vwpx}?oD=4QyqyXA&*6*C5$t;^#7yDD4avVbg zxSc}D;flh9Uj&z41hf4Y116#7t0m_qj{lr`Mh4j=<_)J6*TpX_t>b*(`l=7yPFMD0 z2!O7yN_lfWYY=B)aRg{f@751pABnwRw{?A8$Idg^jJ!|%ky}_v_gNE#HgNG0rp~}s z-xNs1Qf%0uHwYj$atpSZ!zPvi8saGvo(=pcjTimtaPgGaHjAb*Su3$|WNiG7H-g$k z7mj==gwt74{nfw@$|ToOGkhTl$2RX36q6lrOfdXH5$5BLw251mbD#Qc8i;8pBpAqJ zixX)mz~m}v@5jqq=&dkc4JE9dn5G0m2w}z!wx57r7R)GA2ov6p5MVIgo|frv2KCgO zi+8IW{ANhn@GdW}S{@#59_UPtMi5lD>^!ikRG!lsI;8OL0$pc5C02(gxpAuu=uKzrc@~PelYjD3CMTaKEmIV7o%U%XM#4C65edmcAWZbl5s= z=@;9Iw6mmGO4P-+E4O?Bz>#9DQad18V4H^|6 zuz-E8>Bg9N(=XVd`u(OS>f7G%ZdKf+uIeA&oVRG%-_SBIK2+ zz$c^PHr1FY`qfowd10EP>y$@*p5%q?4x=CvW2;0};{1g}067|hB&AgcIjEx=|5>4! za1^1b4-GC7s)giOgT!h7`%I{bT~SaMzoN1(e$$Zp zaN2DeFa4_Z-kj59Lg>f11Ni}lCg}}i*Qw#gMleH!!^DF(RGPl1PE3zM| za&>a5VP$#ni?PU(Z|TMqI|qZzIZdtd?MmwgGj&7l0alK+hMpY?jr}Ebp_QD+`X>KK z1_cADNVwrgWGH@+34W#!oU`(ma6?rTbgSDllTlf;$E4%FzBHvQ) zcPS0H*J$nX7dr0N&o{P2YY#%kGX_f@VfqMgt_=PWVX#ay{Wl!F zX1wEQ)vlJa%2q^+vXxCZ<)h7pT*wcbP~EL$eihD6L*4<)29&HevRD(`N-HMi>g373 zYKC8{K_-~Ot4QoG5p0)<_H#w@Me{r!cN=`Me{{NAMy46(gWiY@oLuf>~4?(#j%bP1kdyBqPP!oLnBL?l%^RkSjN^wV$W#jZ53%x4J0vx2oJsoW=KjpOVU?% z$XzO}tjphPE|CW^cD1AOCd2pR<<$oLhs=BN5^+j-(YMILip0y;V1yiBUeoe1*#B<|YoGwrjbnFCtZr`ogucY|7?3lW^6Hq9bNs$TM<-=muP#6-Au_@?@*Ki@nQ z8(;}GK;QkH4bbnL*zhIT9jQf<$FWVppM7y@dn%>1RJW;PiK1U#-o*fbQp21FISi4` z%{>hOHRyzz$W`DHt4xyW(cq=5RJSPCpv23GB32E;rs(TpAEel-k1g2<#`j)@gIl%= z2hR-s8`Q%pMgMcvZq@o3-!iyN*5YtR7+7xxZE|rkl-DEbYmD8=tKReO%nwe~8t9@m zUXE&XpM>URu4?3XWoT`AaEtN;B@pYX{>pyaYDsx3owjs5s|_PV|CZH;prEef%|4MM z|Mm%5aMgP>fE+e0SYkj;%i^36<)xt}972Kk;fGt-r&k-fRL7ftvESWjz0eJ4#= z#?@)UQd>-5no#p&=kX$=37^hX8 zrrifaTPY!B==QCbKDi6q2e> z`qoybNY8ek57yP1z_0ywt_nPLlv9DZRVCLu6?ll1L|*Uzg&Y;wrKFPJC6w|EuCj%% zLW>M*L$bLvNU!xu1Dm52mnP@69c9lhA%;u-cbn#6AK_mf+xwrp8+r1O6Q+_M!hx7v za-^EivXUVb!4Re-Zt{F|Ld*93iOJZ^*(D8Zv)Rl>ip+{>>rJIYeg%Kej~_@tu4PA` z=4<@;d5SCNH(wR@$7|z+X28D(8D}yFz<2G=ZUmKJl^mkJk%GRDHI%xuWk*r^cdTVc zU+<3g)XWy5(*5myQj@VQ+l$h-tL;{$lFNnWkQI~X(^+)L0k{@SJ=PPBVf`9TiM*v- zAFxMX&&$y?nxI6}B)=D4Z|91>b4N|+7$<@rp#a2OnHXU+`uTUFk!DnQ(f(3$@!>k0 z>7W{tAHBA*(pB;6fFMUpwN-QX2Vs?^D9sN`n=atSXJ5RwXZfMJ5;`f*i{7g!u(rvg zHg*=g`3ub4kL`ab3uQ*EW0gYlfpxLr>&zr&sx!7Z`E}zx_;?9o`TFHqUH=nGbFsf<&Y~4k(#{!>qKtR*a9~z&U)T*jMV(94_<|MLy z`2o8dND~8jcvCL}nbgZb(tf${2t7+3hmb^SJ)dI3i?5=DH%DS`u{-Jv-^NkOI519D z8p-Gcf@oiRGJF$H&KOq%?) z28T@F6SZ$Gh#&sMKGIM(l!+3=ldRh;izLQsR&XF*V3{AgsLYPUMFU}11>YgT(2^cj z24CeTIJG4OXU7LHI3~WHc*E&SFJ^V=0n%m}Vp&V})6ND}xoJ|7E`mPkpF*CK6j# zA6uSk&l2C@JI@mr4PurtD+quVwxP^zJQ#v9LB)F+55{y9VP!Y0T8Zm4<+-sX-BA(S zv7hT=e~iGyBk4>e28cEVU$mbAN-Oy>eMYVz0!@k}AI62@9vSHFf8p-?R(p3WP2Oex zjR`Kq7UO1lL}I-VEKe3|@R&%va5+Rv2(Yt&JvGi&OW7iK@4dP>8W16FNNl4dJs~jY7G%iFU|89oIz&b&aWQ zd#4BQqS}pjjdUSts|EvR_os}aL96s;uyI`ODETEj{F57-=cbnZMsy5u7 z)z_}yX#V-%1BPsk+l*^%t86NnkifcX!g*1!?;i%0SCwfnbhAaWi0|nb%p*7Jgx#uF zZ(^2=c@Ocj^C>zu5&$Hc6|82hf^0P?U;CbFa$eiz{?ux0AnD-w<~~c=ivk{^@oYxG z4nj7tl<%|c6dwL~S9Prd4@8h$1aBX+MijcC1P#cPx!##F4b&eWd{7@3TKv4V#)%Xq zEliVN7$5v`f#esdD-h9mKRyNFHOj(fZyLc)Dzo_!tB?gi@jAB3-=06UiZm6QQLiBl z|52)-^PlmT)fDp))TCLn><9>9_{^zKIgJUEjhf(YX0_l&#qm>STHDtXp=}<>})*NN*pL%GcMoh z8pYzq*Tt*L*zU+2yTOLlk!5wU1`w&~N+mv$O%v^8dC^vTD+&UB1}ny{C{tqKiim&+ zsV2?=WY79rU$zsXqpubF`9zBqSl_kWfT}Mlf>(!U0Sc{MfIJrs-)SvqqhluUAcZrb zV-g5q+pspy!)U5x?}DUx-3T>9m6C-ne|b zaw!|=B3SwTm*t9u0wnnLDVuhsmO=49wa55fKRViBp*Zz$aJW9vN|xop0UF?!O%lM% zX7mTo{m966>VCZXsu5~-zR%W!Y!d3C?@W|@9It#V{wu0Xw{%jvC0o=%;1NJ*U5D0i z@Kfm!l@NGdeBi@71-oe^ST$5D5u(kJ#1IirgTU0tvEl>VZaUQ!qhiBv5&2A$-Jeis zT`(u#V)(u@ceYTWm*}sDI2!S4rlNh~&kaNBig50M08BMRjaSzMLgAoK}s()09&EH?K-W64tt z$h--DOvWOIFr*iy!X(8erGgi8m(W5{7f3c+gXdJx49PiBHQL^M5M2OD&Ucm698Wsb zL{u}?i)=@zg;)KUCTom+wa9$VD_eHaJrnm-ZXHW^+rCUb<=h8W;LFQj8GJxS9z>G7 zn&-j90g%HMC%3ZnkZ3KRrh(b~?@gM!nfXq!q45Fd$S2%YE4j*eKH--IdF*SlKLry- zqr?5mf{%_0iPKv&&lQUyi{^zBEI!b_QVz+}>k$mg*bK9(`M<6`-pkvFB|k``Mmq2wk<%O{ktby?iQ8=>Zsv zCwg->VD0m3h&N{&pYyA{`MXR?=S`^D+Fp{!Q5mtqa^{|j`v*JzGt)zF9QO-t~dbZ-Px2MHz!V-1ZKj1c4!4YZU=RAtp+wnJ-yk-CGp zw5}z8VN_C>OIn9%Iy0V|3Iu^kTR^M(lLe6-(?osD23tdbi2j7T3VsXnmAYbW3R+m3 zA|qT`+y(fuI9PKTB15hM)=GtVBWwba9zxb<^XVe>X<~{8Rd0Hvh(x4Gaj@+fVZ`X& z9pISl(+d!F*FL2uH+t_AI2h`+HqyP(iA!IqY1xr~-M4vmB2f!4mc~nQUeo9_3i<|r zqj@=13+P)N(9TH<2HJ8sH`$v3`{Na4yH=&Hg?KCqenBOv-_z9Ry*8x}KS`jOJTqui zW%Q%iG^jaL0uX>hxUwWQwmzNTYAc8ceW00TA5}`|Rci*%4^DknATrA*q8VeIlK>VQ zrJWDwXi)1`hA?2F1vH=hfo7(adQr-U`9;>oTwPVd8uIy4-8~ z23Sd>8TR{vvEK=4_8aBR`36xa7_r7{J=pyk>9syfw1a1(yw(FO?oo}^?3c;QQuw5v z^sv@nB42P6f4ub&k`NkMCxfulZhH|@z-vg0i7o4CBwR7f83_@&V^mbLG_TNGR7oDf zv;ylF>*H?7=dkoiWTZf{{A%!8f5R`1SFdix!Oi7lXX7beOjVY`siP_Kg3FF`xbVe& z)gp~bkp_IoTq0@lO_RjP@+EBwh^tVg{$O5K)Ws0t1DAbx2yL=rlNDuku|||;T5Kz> zCLS$%QUr*LuXpIjD7VG&fm5kZrPYdyrljL*I3rjSilDKs7%n)U zf2cy*6O+lhK)X0z)J;inPe^JEDikjC?(*_7Quo9U6h2w1v26peUy}81;n1pz09@RZkX!-`0Gn?9P?J ze;f}IpUjW|MHkp7>42Lfo}`x6bOm2pG~d&!a8ch^QW566at4Oe3bygR=Q-QhQQ7>@ z%h*Vp1YH}}m~%}8QL)uW2Ro@39>1V`YI44tjUR3GVqA|nM3c}VS#7X^?5W-^^_}VJ z8~n~bP$%`hbFjK-Q~YC!Iedoc#MlZfd-0fG0F za2~Q#qG4wjLxLO&r`pUn%+YLDYISZ{N5A0NCI3tvhf)V3b)46F7d_?ISDVK2{|#Q- zy(TNt*4TIcsoI}V{!rM%eS@L@R2|n_9ia&W0G}=s>ZH?K=PVCI;K05fAI4r^ELWNp^sNsUzGu0`Kt1GVd#CUOR0a_WN)L0R8W&x2MX`~oD| z7s!E&eM}~E8-lN&r%Egen_1a~7%4?8mY|QDZtX%~Xfj7xz3Y8*w{tAPE3^lHw6nmQ zRb{h3A;W03?+`sON?M&>I~C=4CoB$8Bx`dtX<4U|TT!o(p*SncLt{E}WQU*s944zB zWxgf(a!+IR)#1I5N)|>}WA!l|Slq?5`Q#yD9bD1;m9%AmN02c9`vuANf64&l^o9%( z?i2i+O3VPf(Q9o36f`)UWKKa690wPgWAuNunEt3u@;}9>C3D4p7BCim=t_>;*@Cqr zA}WqSHB~uto88QRK{xD1($8{xm+B77VS}!*K_bZLYd^(0xKsLfQ>Ml zEwkz#mj}X4wb)4z&>KJayLFvtn+Dt{<%=!N?2??J&skqHY#iFqCUNmawYYwu zwDzIx0Wg^Nd!bi;{KbDpuiRCh)hox-dN79v$s5zwf0fx(Swk!61j{ldid(UiKbz0s z(&8VDS~bi*YZO_}wx9nk`tO9rH1ZSq8Mw!RIG$gz%YmKn{FFQSqX| z?_}W9Se=27*#`!n4^my>qo9KJ6zGD%MA1#BeoFYLo?zPNvhZ1ZCh++N4;*~7?V@v` z&D{%0q`T)Fjyh?Zz!9(J-YWjARlG7CK}kMg8A9%*@h&vr#wfRY|8oTCkbO<+AKzto zdy@KLtFGeKuwt;72?&`1es{Qluyij57M$2-@yTP|rOaIpc9+H5wh+%`!D&u(y+?fg zLa|7<{W-+1Fern=0S5c#{7ll1(50Tn);cn4fyULad{p~eh`}u?e`7OKr($%ZiABGc zuyooErjBl4$ByL^F2xcLCBbcW)CB<5&IXv}VIX5jD?1C{Ap#=bsr768@D}!O*>=3_ z@(!LgTNq@bDw?$W9(fB-X1UCaW*mIY>8P;JdSz9S+n<$sL#)IFXTyOJ^T`a%Li^9< z2B;Dvh%#x1#RUS%!U6PcM)RTmGE53MEJi4Li_Hfwk1$0Nv1dyDg>nFj6oRZ-#Ait` zzgRE~gGIJ`3sAt>YJI-x2xRn(1N>!+U8U^N_9}uuwLnm+OueVCD%EvHM%wD`!Qje( z$vq*^>iXA}3r1~){BFf*=|XOIko7RT{d)a^-fqfM9#*40c%LMjR6x#E%LxHWYOj?iOWvI=*Bw*Y4d+Y$Ss-pKz zFS1);=Xyx0BY5s`C#e_GyUS=cc!CG1HbJ26BpVQBf!I1Ri{jqG%gax11;>rTpYG zwyvfqQ6$DKj7^9gEK7a?Kht_V6!Q=25louX7y0&Eh0UKaOhlh96DRsEDPkpLOaZU$+t|?Idt^lB{e$-Y zJLzv<`+LqiC5c40O=0}mZ;82NzHQ=tI4C#HaN#4K%OgDpxh5G<-uWdA3w|v*gHplK zA8xnNDbDQ8I~c0-!vq+kA5qSU*n)T&h2E^g^-J5Q4AKvXsnL(NeW3VD zV59Wbp>;!;XvS=`s{D!Zf%7+tZl{e`zieE9v5}o6v~q6iT9-($RwktpbpBf080N~6 zkJK|hOGz&4akrGDF$9H&Lb!i|jN|J^8KBsG|wO!7(4dy=^0pf7L$#MxvrvdP;^Gfwbl?#g@ZgQDqw%~(qp$Ul`y34AIU zv68)*W6YZfg#2&X1^`OsJ-B zY1840!Aj|{=Tn7#bTQEzMf@jKFhFJeE}&q1#P_RK-26JRd(!H*deM1$cKP=Ut6skO z&-AS<+kf3X$T zi=^p`=u>4l58-EYrg&!X^#2grc{wO}cgwESZC%>)X1^=V)*~Nnd>ZI(lV_5q&oO1> zlDPmjIq?`Bvwy*<;lc>_R`z-mDFrzI{PC>y{65+n#|wUSi@yg{8r?6S!lHRG`QSdo$SwBl&Y=tJqX0K#m@y~jTuA{{!wU{dfuzX5` z{$Xph5w=EEnbyeH80f3Dr?nz=)DYXcQ2};8*nbdSwM&KL7H=cir4&K!nh6cFIfnv> z)akOX0P-ywWiDI*Xe3@kvPs<#>uja4AQ;ue*}S*T4z71Va=91+5EK_&eEgmObmux# zGIaU;A<3^j_(Q;U!HEH<*=7fFOq>H!W zZE`wan2CgTH4Ui+n{Q*+& z5>u}k8|dd@5jK79oBSa+!PX{IKAYSn=`OFk%Z?-h`a@<#oV@AA4`#u2^WSa8S}BZ| z5Z_@1!92@>OH5|-WtOz96Wzv}R&Vkao{G4giD4=%B_^}66R#h)*R`v)Q={e)K=XM# zQVvm_f<##7REmknHI`BDJJ0Sgcf1)EBu-7IB#aEPTX6BxGDgCjXY&c#EX?LS<0C_*Ncz*9mo(Pc*(FGtM$?L6_yV(+ zNivUw#4sDIke{g~!N(<_dAdB8*kX35sEe&iUZXqhFF$XGx}FAHvuch5IFg-r)?r;o zFXsu1N>?kZUyuOQPupNEAHlM`kqPoBZ9yPndwZYhhoS>M_N)HlMGp!q3^elKjfXX8 zhuUIL3wq%mOSpcEO5=x5Spy(=1^}jS-b9py!+tHZ;quL!T#6){it>acZH_XR9UdQi zroKr`f4`HohJyuCxPwhPy8}lrf-N2Zc~gZdg17biS1Lx6=|~A9ENtG_VK#Xr49SC{ z%!3m5pl^+L$C6|pyXhne-6$#fTbKY^BMIHz>i`7qm4v>`vh0HwuQd*N&Rv$dOS`-L z-d&EGY(;+U?w)!Jwpo#3o6x%HVZYrea^H;(>v+)789)I6QR>PBU6r-x;MFbSdWK%4 zBd*oIOIOfkcl2w7*!1q`eXXX;wLAK?Fz9n$^j*VyO&KC}PP54qtsq$i2RpgrM`-h#cfgCR|@^+G{3d zz&}Mm{pbAHXEjFWuif(F&>`)rqh-de3Emwj4q2I6X~zbv4E}2On^He@-zz3^Hs7cI zfYUJUxzK4C^3mU+T}8c?jVWeDEuPaKUo?5%h|{q3(2VCaggzp}+1Md=F&pnLpit;J z(7!Py)OmWD+ywOusZP<13E_5r8*ANJk$RD$_fc&vbZ(2mmrxQ6dr${}`z_9gVl9vvgwvLg3(gLLAG!{w z(JcPa_6R|;==KTTd~K~8-Tp;y{u9u96bEHeV&qC~8k?6on*Bi7K*L+OE`Ld4)Jmnc z=Vovds%GvKAZ_nM7?v4cLXJnY?5LPr)UxA?*DZkrr)7@IBzUY?Q#f85U}j*6kt?E| zeZ4trG;FHD*XcW=Vsi0_FM6|OS&14Z$wwOMcC`Jx#rN>p7<|dIAyVG%%t4Avf@po- zka8VJxr8Z^aK~!j(dsvN88Xi4YG9(cr+2ixbJ$*?#cB!u-p^s?Av(A53^22v2dUXJ zx3_5ci3-L8e50NHrk-knRw6!ahw>1t?JcyPjCSJg+SjS}#HIH|ci`@}ryh=O|4P#r z!D;jD8i#~PcknCN;fO1og3RDRU%)4y;*03^$v01qZoj7KOZ;+UP$dIDRVDgD*5BTD zG`hXXYkk^i_ByZiR{Jr{Yr6+^sSsQ13dDi4Uu6fa8b;k7>%M4b(bS^E zS-(uJNSp=I?dIv!;zuBtU8%=3E=5tAi}mSW(7im+8J5t|J>@M1Rd?iJuUse4Qzp%l zu6!8hhfKQ4p2S5fqucv=bC&S|gGb({2mjp)2jSg>_nW_+xMU?~TumLxcsY%82A%Cl zexA;@t(*Q2jsIl~R(hOHMsab^UVEIl1X33eF8O8Zw~0%h3~!!J{roY5$i2M|iG3jG zv_R5*NcTmz7fmfrT=dK2P`*!G^kjJdbn;;CA61=6kNKF#63R2_6X-Jjp-~u5-+9)dD@~y13;GS(msdu z86IL#d?Kop%2g%I9EJy|mlO*}^7G1Dtd8)MPY~nq9-e%Fqzmgz6s>zIR2skAoTD`M z=ks{cxqr$ijh|Wim8T|AKQeGm=H*^0jYS9bt~AmE>-63B2n=ds@Mxc`(l~)ugJ1F> zH9I(J9mx7JqAiOoes#mw6o;?z!WYJ({!^toqho7FbzbvO&A^NH^%pYM0{!HO>Ib>X zLS%O1sqr>LJ1XGeN>K-IhoSk`;N5>n7TXPVZ3|4oBs5{uah?(F9P1?{E zC^v$cz*rij`b+>|i7c>c?{K**6l2Wokxp{W-|FJ^_c;Q&mPfd8DIr%FN2&( zAg3EX-aw_mKakATj0Aj4%*?bA1fDTW=(wM%^cSK-EeIX$;dLcfwKNg5ux~Ll5G{Hm zN9VHUCtU#fv}R@yl|R`f>y4@0n8IBO-XsPO?^G(Qj6Xz%OCWr5r<(<{p!K{w>uWoq zyHH9gP3|x~1fudhR(?@EdoE&4(bA1}gDIgud}4|SQDQxfZN9AuE<1v?C|AZ=G4r%aGi^grI8CC`EM{ zg5w5)N-ID`VxERv^u3v6m15@V-3tKqD4IS&(2xD!TK>(UJz7q+GV1{98UO*D1S=LZ z1jb-qSz2$IUQ62wHbIp(#xN>_A&2#-R)#E8e~wSUmyNY=td0-7{g1E*oa6{%6k{Gy z9=uEXo?rpd8ikx9}g>F?*d+%+!fcDM#S89C&7kF@z>tMOY>WH zOlrc}ZD_ui|5$1bUc>AZ!4IU=AfIz4^a@O)$aL01kl{ynvuU7K+jUU#kx7@f6dqZ$ z^G2_=xk$Zh4VTQ|2ye37grREBlA=rXtEV<#Wk|aQkiT8^wH`?|#HUY0Ut|nO1%Q3TSCfwXQ_<))g4JU+SGDMn2{U)pT*G!dHgk1pLCcQo zy|yoy<{dolX6cI67K6J;{GY)|r5&>CwP|)#6Ck&09#5}V>T1mAR&%I%lam|lg_s|P zDGk^uobn-S4-spZ$$JQ_RG8?C?CsP&#pt}lvTk6NR@>Y&q=MeDzW04uYz(0uz*_W$ zUM0UP4IpSAVXA<=OROh;0~0UR#%WmrVER*ostcJSU6ENbq7yT!O-|(Kh~SW3ilbmn z{&x`wGdr9>SZ>e>1;Q&O4m8~aLIb_N>0&8rhYHDr^qL--6WnaDYHZ_F$=|GG_`UXW zP9r5PZ<&8rK-3J_f3Dhs(jL{O{wtW*iFi0!&?WxEzR7-!*z?xx^bP z-%rub`>3H-St*N^0QhZ2BCU_~4V}tF(Iv;ZVPSTS{UB|2Nnfa7Y4FUPjH#Wc?0~C9 z*K=utijT;AT6Cy=8nV%CdJRuuK8Jd>G?U$bqfug%ANQbRgFXm#?Bn!RE~Ei_4MkxXkvz_;gT7AAFNoBn^pFa_1JBz zWIU&=vL*>YgyB$Z^K23pIhR@K9Ay%5)@YT}Hpe6E16k1sUR1F{gVA;lzA{rT$4%+u z=XVNFcd1#pz`7R93ymKDAXG5ZH#F0hX=<=(Uv$Cvq~w}#^`Yoqf4!(mx$2JQ{~v8{ z0v=_N{EsJ)fpEk(Dri8WQKLph4GNl3Toah+1Sb*{H3(`}U6*xPjgSB;$HbWcFE6j4 zqJp}LySmGIEhvkqs0l#`;K8v99xLGaj^hEkY5jCXQuoo`jQ%JF|7AyPeDR^aJUu`4a%_o&cfPE#J0pnm7 z-*c_|_NgprkB~_ZSk*HbO{Y9le5SIXhU|>PLg3a#_?Uaxci>uv?AqmtQ( z4>$pE^$Q>@a-PTufH&f|GP5KPOxfya*x96qoPnh5K18A*{qDg?mS52+gj^vdT=^?5 zM4d3sR5B4%{(DxAU<|2zZzdozE3mx02T;2+{*`J=ar6!Riij$l!wjqGSv;V>sq^mi zQ2Hvgna

8ELg=sFWfVi1MgJTK8)@mHSs4bJxR~L(=?CIJ~8>tntH6Wh?0U=KtYl z#-U|vv0ICZ0457Ek;tbwou#OR%Q9*4!IVCNbx4h7ym1kT+`;8c%l&>C&-&1a#=wT% z0|Qofg~sGDTrO(4cy&;WD-A}ZA8C-1sF0h&w<#=lxYOhAYxt%Gl@w$ z3mj~-6-N;)B8FSTf`hh^jZro986qnQr7^;hkcD^xYNMH0|0AXd?9UFi4rxJrunWpW zf#RB)x zbZn$fAAF@zzY3LN`y!Bu!RFeQ%LFTk-51-s_DXlE5;S`OPp(6hahPFj#Tu})A({&7Yi7n=*IkPOw1A^UL2hDq?h#CLcz&cAI6_UOR^ zU2itxgK=`=GMfxb#fi1VC71+xOpV5;wJuulej8mhXgPIJ?NsQYndc_-kgAV*s5gGs zdPrjH6?Z1A$rd(@CHFL?b5z=!m5GVxM*dv4ngSOAn9%B5>5v4#tj1Z0KtEcJ&!UFz zXxy2F7ZP-%m9*53B!H?~ttc>`^;VlwRLz69?&eN{IxM+5PS#5hNC8f@J(G57oy=V-*b(hvl{2`VxF2m=?c;0xjXEP2)< z%2FaKHXR?Obajq~KRL_yc9r{-Y7zqMN+X)dM%&*8j?B>vSx{ zRl*>%edC|h>{Rw{8+Q8i*#tWkos(dv1?Z9TWUj&Q2WF>=pLI6l>lm5CoLL^xPcN0zw$J1b63 z_#qdyTj%ly1D+khOe>zHA|PZ=$>#{5{cF%9VMSd*{5UI_+sT#Ac|vEM^KzS$jSph7 zO$X9f5lf3h@3)@K#mgq5ZR=vHH7~`27?5(a8IFUxQ zVt3(o#{hCt>Ac@d$T!+Vh}|nEuInydh2Y5e)5sH4A`t_z`|)G)X%3!H1y6Gugn~4H zkP0LAgXCM-6T(ruNAk7Zd#2${-hInwOme zrc9^)Z|=&71qQ9a|Ke;F#CSK5`yzNZO-@Z@gnCma9$H%kuPcJl5s1hTA#2LQ3<(@$ zSbMD&zn=0{s@Wge|y51fSIwB(fbIB zoB)^qQZ%uqQ~W+0&_3yO>O_nm8YO@eT8}-5tj>X&kRL={r~KfYJxmbPgbm_2F?FT7 z{7YS)R+qIe16`Y8RJB=8d==0FU&X{120H#2&js?YyZ#^PX*HJ-UqLcCZz=?FysPA0 zHg2lO@%Z1*`IKnK8)#^4=m5{yRz|2XMrom zxV1VTy@Wo}4VRee$W3y-Bl}a1Q~ZHmdDpw4s}M;FeKnTmgd%)bQiaMn@^i-Y2|@p^ zDSx1Gc;YVR&Mot|7?I6F=|CMA0Z&}e3RpesN|E0?;NLvGA%I-trT$IRp9}ccPwi~> zstfp=re&C8P+nnW3bCRWY{Jsj#Im)yHXcR}S*%P>fzj;$dHS*V-t(y}tgp;(^_AWG zqT?x*UMEhtg3T{K^h7EafhnBbBlRW zO`Guw0pN}LN%T({h~@z*J?DR`lw^zD1JpR1p9ce%$8+Fm(pRuZn&c>KTV&*2*9|3CF7NA+jG ziUapY<|~mez{caCilCp6`Wbr&h4+A6j9o;K#50Na61xnsycDYbmZ`TUr1VRCHvP0AfT~sf#{I{m=wb;Azf-PMqs!Gz~TLz<@A=KJ$HamKcmiK zX-{eofa-%|HK0x%$|A-Ogw;t{T~9xzU&_8?S7Z&kO=}#H{MspP+hF`@XM2e-Ld$X> zj)!xAvs=-hLKgfynfR(EzN%?9t7ef*89f5ZvXLJOrdt?jppmI2R%%5(4o_N$QkDX5 z3KQQ#)$$!oAS(q5zN)Dz$rd)?x!b7B#m^w5EmcSfZ^W0D=Xf45vMU4S!vN z`!v{PSR_X3j{g^T!k;TLN;pgF8Gz*>A3IF>!ufkMDKL-==;u59*pnwK`d3Z8hSCw73z2K}30P$r0p!sxLB4bLjpgxkaU5aRUR)Cbh3X+<*#Ad8&chGk%uw-aKp6~8?C3;Y5V3BwpbR!Wjra7vg> zfWnGn)Dln}hEk&<=@!HO9wjtcvB(8#9*qB^Iw@Kj&;1s({V~1vav6DVPwP?wPZx6i zVZKO41GiB#)wrXsn9~T1=sdC(_)7u|U2f(Ynk%EhU*MJa(g0>(!FZ1g?EbwK z`FW}TU1RQOjLK5`hW!DYdHoTw4yw0paU97029vV=$`(=lMrDE-G6+i`VD$mN*Ira&kKXV9fH=7#Jr0@F8baaAQ`!Tt6)U37_zNgq z9Pe?yoqq&zTxxz)>fbWGvedp7Son1MXCw$ldFwWaz zOcd^ z)YHW*MhL!z$U-IXErOd`;ecvZisKhrtH_8U1t-<1gYhQSXKaRa)^fPrdGfI z0=#(|UO7l<&4e<-j6M+NfE6I=*Gw3QiF|s%>b0lL-#Fm}$aPH5(Z5_P;~g_&56Ha~ zqqf&O5YZ@a=?*#PCm?Obk0&U8EFeGTkstHe0T>TZvhjYc0w>`Drom`u^gxim+TcK@ zKrahP`=X$kp_ssV8^;l#9uNbX`P`rOr=`_)p*yDr0n9W*{f!g<8hcb&&-duswZQAiMqy_&A_nQkejT6WqH?DZFX9i2w^mFi_d92@UwHB8r@?(IQ@F2UVD(SHYW}CKvHBi<)L0#uz$%1aG2l_F@Bxl`-?fgyawV}0D*N;+PG5f#I9=hvsdqff4s2t2bI|Jj)b)t$uyP;b z#lLAnfw8;+QD+kd;7nz(InBI4XUGA1a)A;svF3b@8`xFuP&ntTltBwJWZJ=3B76E6 zGw(wWnP@sKx~}H;A{L&{!xIqR)4l>bJo-#JS?B$zF(SLtaZX?7$nL^funC$Xd%M^A zBI`QEKd;|B_0!0@?(v;!GnAVOWP^Q$Y(3GLK~_fgUX7i#@ny)~P}^-l!}CX@q4+(B zIpxD~e3*qBHZQJlJNPg_oYY;wlU!4FaARaoH}?%g6(cREvN3iZZj&;n)p&my6#~T= z8gxuyyyK6r@;r66jC0y5*AEILVoWQh1(!jvJDp_ljPJ2DavjVGurD2xl|U|tvSrd$ ziE|-Ne1}Vw`iy|1-$`VVW9A=B$mvwbajsdZoX{Yactga6CssM3iqI2h`+RS7OM4#6 zVrlUYoZW+jW$u3*EOVUONiV;UT>+GcUlIQhjDeut?=Jj*2a_;+An$e?%g?|@`YyHI ztxG67$A1>j!E>jYT~ug!0I(p*Em^9~E^;AOTj6to8t)avr<(r}2n@v_moveUkZYp= ztAK{A7xsu2oJ3^I_(uhS%-v`^X=0SFuhW{tpq zY*Ysjz|9CmM6ZIE^#PI_3nC;ney_%VxT2AIVCFsKCHE*0M1dyvEF8Uyq4fd=j*U_z z$Ix_cdcm{q0J=lg;e-l;P{qJ34=r-}bK=~x(s_ur^=H=QS) zL^c6x%D^^_<9EiHkD+sISL^1?Zr{dZvt)H$iy8dltI5RQE;SqDpJ3;G4rt(tpcSVJ zcuVDy9IA4c!e0~51GstQtsIV3pq^$5h>9zB8f7}C5I1-N)mpHm0o^KTU|2SSOfAlz z{tjvTgr|*^`i&XfTiae6YIG}xj6!{Lzf&P_l2~rI3QLul(<^0-fg9wlfeYb+9;A#< zPY-%B~i%4MwC8N-bFi3!+#4B2EpTijL!Z0=D zXhhb0%}7VRnJ@OGDB zjurVA`f$DlXL!KhFs*CQ9(j6t{87&5JaEX#N#DfncHqI;Oi;W2^)*+5QDpU@1mE^D zafD&_(aK>P?+L;t_!%y^bcq{sTpy&&&I1W4l9ug^#hfWO6m~`{t^jfk~0hQ39t{q%RDuAD`r~{tj z5v-pN?j+^*F*;owXp4@7~%*(!Gq3o7k9sY2QZ+WOlgu=%mi zq&}kSikivQg_^5XE%pfPmc*`ODG>jUJ%al|-N!c~d#DEEYqZMLdz1gB^`(BiPn2at zeD2^pqy7P4{MSRGWYhmWB!B=2ZU<>lgZK906btIu_MQBWvb!>!-~L7zWA-%RIJ^-Npuk`)+Wxqn-_g<6K_vxof{~rH~SKp`f zZ{qJDy8y1cR;GO8mGQHc`c$JEPFE(=ki)3xJ*9G_N^(j@Yn6%Ai!v+2L6px zR&p2=V;BURoD%>-yuOuu23zh>@rk|Yq^kR35l6TAr1ECk`fBN@Hy#xSc!C2q$2d<9 z+H?flgI?NBYL3g_#j&}|`S49x%M2d`fRpK<4YMrjpqD~1fGkzew1B9{M#E6S&@Q}j zc7O>|3WJ!H%6R*Pa=`K(zZK0{S%>oiXvPv7)hVCY^46^%U#a?e)gBaRK$Ypc1$T;BdW}-dQcP1yfUO`;6~#u1-qO^rTfGP%H#u*g zB&_@O!(iR@DNdnO{v87TEg=2#NdG(;Z5-z4h)P6t%3?RT2hC;^o+5S?P`L9gXEqv% zFLqUYvVI#|SJ1R#(K|9h$ht2UlT*Q>i+BZ#$`$BXfoC@-TP? z3TBwlb-!^0`qm>aZ@(B$*FS6q6G6%6z6a0A8Q|GKJl@zNXn7qyoFo z&o5*#JU|xB&oANwR-Y>58qKeiAHfy!Oko&R^#T?(91tX`*p)ZVCRz2;ovd5UzBlQ9 zOw^nVjQ&zTh9`=-{a6H?pdZJl_QPo1k0mVT_JfLz{n#j1P(^-B?T6IcK|i<=Aa({& z8s5_h$1>q-mU!;(wctb0)R14-c zStbkm;arz1+}-kHYImgG4!UzTwlc)76U_SlwprxSeY^leB2VCJTtPZ={7Vyx(&{&t z(m;YoFnxyAsMx`%Qsd)3y*_vVd{ifjCGbJg*n?)qQ}9uUD0LOot=Y6%DCpvY4*-6i zT!9byF%|eK`OO7Bl}%3~@FPK*@Sd*5%>5Z!flTMYS5gEDhbF7E2R*wjrO%b?Tun5m)!8WC zp3PBTv*vd6QH3miDd_^r$PU}uDV(6fQ2thSw8(^=UjvXd1<0^eK;CRl0+P)V;Ex=^ zf)^0ItuDcGK%Pf2uEkPSY`2I5-=Q0Y8aBq97bboXEhBiGcS0k%ms&A6A z1KM@*n^N^cUdRx->IJ-}aI^bc`&IYxR&9{06~-E6&DD#sVui77Z?nOK5%K4>NsLu! zj8(RSG5NX!jNOB!t=KCb7U^z@Ns`hnH~!J(^HhutVU^=hWq1!}0X*+C zyr-Kw3?{s%yHP&^Kk1%s6~^)Qw1JJ9cE+J>96m+Qw@uu;l9wdin%btYU8g zwYu%mx^37Z)VScw9jwtFwE3+RET5HV+dXncor~4FZTY%`wohZ*qlB!%UmDWT`54ma zPo;QI@QT_i(^>bTJEZX_N*Qu5MJbE)zg^ghv`KV~Okodt=aZC<4S7`~)m6&7gm<*G zYvBXNOSXvSIbwOX>9Uk@xgb^A4aVwO?0VqX*?cdIqjCV{nl7#EYl(-uij$C3e`jQ~$OI(>tB#WKI{<`pzK!L5ir&S+LX@6+vy7SN02cd-pK#LUq-!BGfga@BWqw%; z*~*bM_B{9)Iy1o%91Qu^;3blwaVNgU^4ijXe{Ic2iL{AD;*?AzTTDKJ-&~hv7=GXr zjOU6w9Y<-#9IACYd3Qa00k5{I3Gme}1x&CeN5PTuZjI5Z0Dc<_Azu}=ZpQT%OiRA0 zeLrY&5`%yMWtWb7_FGAFm;-Ng18smHe2i$7j&$ zt}R^1;|K(eoAR{&a9A6XIMcr38~6&187HE6c<;eR^kEE!$f~cxa8%CRElQki4|AgQIjRK6d$jad$nhc-LJRm`gh7#*=eD`UGb zco1ug4wJZQ@M@EpEZe04)B8p~%;UO#JbQ zAb)|HJY0<&QkXnA>^de7BGE8;kSio@3*O7*A=8*y0%t9g56_&6VNZK?#!QY<8%ro+ zw6YE!EUdF_NH#-e!FDyVg?(=@{VBx3K10a}ldX*V6XD$udX#xULC-X&fpCGZFp*|* zSU2omD{h3Xi!ShQn6iQ+l3u%75K;qPx0sCY+r5v2Wx~ZzITvk>>mhAIGXVZ9?xw zm3iReY;ZJ74X;Qxf!Yhet?TH(tu+AN05yi#H>! z3=3qyuyOZ8^%Al~T268I)*JIXJ4hZyzgh)G{Yc2adM_H-Cpxd4+lH$??PAL&T-zv2 z#Nx~qQk}Rk=BGRVM)Pv$ZtF^}WF=>!63JoP`q!)YYYu*0L0ZPUaa@c=Dh%}ARo5ec zM(6{30`RtL>LPA>j$EAy$OqnzJ(=+3UDO5_mBa;r9uwJfsuv%t0a5H! zGK{AptdeYd)61CI?Ea`Akn<{JEob%7=kZD=lJ&STmLrccg#V`tl?j32L7ukVZF;>h zCVF4p$SUb@0if9!bHWFhdT@4O`}RJixVeBo7s`-1{9$FO6tTKuEyQU}d0=%`T>!BD zBvY^?Do|hU67T4cp>-dN4ryC--CN$GIKn;68ONfG4@HXaNux27s%<^`LjUr9#5FkQ zEPnK%%nwpP@yjT84H@iNO>=s(=yNEF*;<>bJGU+W{`n|Bvu)LzpYcK=RWD`HF;aC; zW5yN{pa&Z>nEE%o=MbdjCg!Q!AuOBa9t&|W#lpBpxF8ZjLs%k~M?@iCl3%1C1H3vD z22gQw(CW8IErA|dJBdEV6;jmO@vIw#rmlE{1W$7g1$18ev2yv64C=fpMr=wQZ$H5v zx^)O&yjhAKUfP;zIdGgPDu|tppTc_%HR`W}qC;2FJy)2+!a!FW013K!S_&ZYeLw)< zZUya|WKqHx=9TWrPMpmE0aZZ2Mo7(RFR=4Vq*xMgj>Rc>=X@mMTos7V4e!Z9LVYP4 z94q$b>Q*0O?EO9kYr?tz2`H?!s87*0OgcddAi;Rh+l@?^_s{5}yI2&1l92oc_s%Gf zViBa!+=9tF;|Z!(OX=QDwMTl9!jDhn$Ni{Sx)M3mo8BVM!LY*P$o!Dn`2v3RX&H2$ zWsmrV`QT?V8@_57i@V6Rq8H}wlcAdgR=C}Hj5FO~qJz2{ zGw0!3O#W-C6s6MAYg!BGMgR1QM-kF@m4IaDO31CJcH396*jp4cH=H-gqKC9Cy8rKO ziVkMc&j4L`Pmeb8e0$sSJz4%al=mVBTI+9Zi|#B&(K#sUtUW}m@CJ2xUR|D1mnYO^ z^-Ngd(=jQfuEbRX#e&;U>e#LrT>Ep@uyaB4G z@6JF^6Y)FA^$MBqJD^|cnjY+@N}4E#p8kVOgm{Q*J=1vc2P{Y%b9v@lq@}A7<$?v0 zSsPKFlx6rQ)2VR@CoYa65xM^HBT>F;x0 z4-4!WtWUM1*BnDT8g;=!QsNw@k@NL$I5ym6LrUC2{t7clx62v}S!2Bjdp#vC!U^SW z2|!kt0-4Cndr@(_kY#De#Bj^;z=Vd_bha~EU`q7c_q#{EV*vO`bBa(T77+1~EEh{D zC-})`xqhw6t!-P*ITz*R?ABzje0R1j*T8bGK`2C8demGMY3W%rAkqRoOF7{|h_9;c zr}g~w&Q|3Hwk>xh%l)BMxtzA;2C-ZT%h|ruWIYi~LTViZ1QGL~Wwx{b_PxS`bhco# zl!vHeh{q)&J@s4tQKoahymgs^bNMmRhT6vXTh7J^M#4VWs-7|5YCK4~u*es10FDDM zVU4hm%@&K!%c{Kz;=EE^7O*BjeHuxKsKCtmFpuMfKQVm+e!dDHxLgolsJ-3M> zn4yUZ1A(vojZ5r5 zFTUo8GBJXWPBda?z51;WMh-lf$XOtUiQxC^QLaeABYMge4M0##zAm8chLI$BCg}pB zWy!DjKF7fk12Vje`L2qMV(3X^JwuIfSIusyh%)E$+tGy~(uG#|eow)VTIkUO{Ae+h zAJi63{Xe7?oabSU8jEu;&`u3H=l{ltFoq=9_+bXOf>e~5W3n@?+p4{5!N7aB$*oEp1`AhQYX)}w?wSZKKG%x7(WS*;HAIw^Si7FcYYQB?!V8Uc9gj1YgD7;-Eq;Y3P^HqJY zoZ#?yP=!xmVqgD0OK~1PS-!=IOV-WE`&*I|vdc0<_GRhih#EUt&aN{{;Qb%`ZNTz1 zSF6*F;PuP+Huf8Q>Ds-#0s&q|LI zAB-S8{h(BV)TudE@6l)ssTWQ_>IDF&`@zIN;;M3c$tLwoN-a=0odHq&4K#lPQbfsk z`|Z872E({?_JS((BLBrC67z_}0*;eHC-hfk;#9c+21zHN5p|6K`uZtIGl4?znRWrnX*w>8 zD3r#&r=5zOC+GnoaGL&xzT>1EL>uaSMjHv3?YkdwvWlEUC3FH<9zWoQqXR$HBhghSR z+*n>Hk*yH6?blvh^ft}`Lubto;88c8o7^e#864}|YuqRZ8FaV zL*i^V4{?y_I!}l&r`^NsP|PnK8eN$vq4e#fUMRo%o}q>$X^){Lo0! z5F}@dyl;*_VSW%hQ+{i|@0igU^+$`R8Iv}&lcncSM)W=SH}Q}}_6br8`5IE6Fnr$GiFvOU42D%&TT$(@Y)O}GaUDZW6+YIJ@mI^R5f2+|56)j}}a%4)uW zC?5O)h~F=0_CofB_F08i7IN3zg0{&1+o<*yuzK5f>2g%Oi|kV=scjhWy!#4aKCY8*H}K7x+EcRi3D3hy&&4~^`^cpcv<@+rpa8%FdH zmbHE7H*4NHcV2?G3=Y7M8h~&AAu#~q>efy)v%LZMq?D8a2;5ADFi-^7qO}3tkNsH$ zmuE~~4j=)1e6!f4nsbK8%jWn48jYu`=hzt#)Lcl#;x4vMV4p$<*k_-Ih4&h@hV;2o zE&gq&c@zD;Y_0BZ`P|h04paU8bZnx(B5=Z_TD$#SDJ4Au=T9O#Je|9BkrFr~U7{%pt|&+yV$U>}ch}s&zAbSl=3VsHm{{;&b)r9i#pvG4){J zpy2*B@x!P|E6bS9OcjPe;o-p`{32iy=2`{K2%9HUQvFtf!ZojIr2Ns=NMZ4LC{C$q zXZ`yb4nRyeASS8d+tcJw>5Nl^|LCG`_FKM9*8@9BorgFZp{ZtHok{ztKU;Q191i1y zDMiSF=A=w)tA>nm4+XghM(}0Wt60yv?8~61ut+Q=rzN#8&Iv@Svo0m!7R2|Zfo*s= zZ2*tiwTEFL8#~l5>Qn-zzP^N(>vm-=M6d!RTK(2J2`8ft{Q19P7<-;Hrl!r34a|Zl|cm z+eQ5D0=x}TUH=e!i49R7{!DnSVUWpJ08`^(pbvp;E@N7f={L#}r8z#^8q{BaAG`sl zCXN6)HsISDh=}>^T1nuOP?JX6P%D8pi23#fy7Tmdkfu;^I=syG*-KnGK8A9flVvcV z)?S67cIEgI_C##^>DP%IKV0NE6AOw>PZY#X5-h18IOi-j+o77d9_r(K7;M?KePNA( zJBq;_JIEc|c>GpVY#Hr5+xOd5x~rA56I~S!IbU(e?rTYR;gH|{qLA;sR!UYXqgsT# z%OQGvYEFrr&6crS$K0;ZoBY!QWRqRkWUCTLhS682QeHN@ZN~2au*(`Xuuqr?VB4{F z&Q&lctesOt1So4q;d!NarrWc2ex<4N?lm2lI{$2C>fCw1^erI=p!r(Rz4%P>#aQ&I zN+;TMiG2m#=)L|Pbrq0-esl%U~y$fmTxFe1`wY3zD-6ShuVxzo;La0@{z``xWYUmeHVQFPtn_q9MYVu@E_wY#CxD8EY7q0 zb}=8^lj`!Ax*YVQynL=2a^sq>>0(OpPlydK{)v~FFnX=@TJ4^iOrGS+c3NtMmR(Y+;RW-&K9n(w(P||6#xLkL&mDcjiBUKSyDW(>V!y z6r4|5zJk!=96p*~!OE?yLkh6>7?g!3=>78vyr)yj%KcpKAIuL541-R7vkQJ=HU!%K z_PKwaOMmMW2nx;^MZGkit&oZNOd38y`gn%?PF;rlchW)NRtZ z0_yi3pf1rs6)K==UT+^$|F+v;s+$L>jxco(*vrM#`a=~^(vkwIiwCH0j#qp|@_iup zT6x*I+h1!Rs8MZ!swp}!rqVn>9jk%j_yot1r*4+U6{fEA09B@e%2Svc)&WpY&uN3H z?Pn!{>IhSRyfTTYu?XQH`J^QQN{>F%_v4+wlI?qa12Lj~^T^^aewb_u7-!XY9I_Z= z9J4uu)yjJLxa639T<+DFy;trZ)PBuDlcd(wR1mTpCr0;Lyy_{4|suMs&;4knFq#i4-Zfu z15*TwGjdJzmHEVw0&20`D?u_}?&s^E{M<`B0P3y0K$P`8wOr7ijsv}H2H!6v#pax1>Qa~-1#ucXK%e}%>SOc{~0hQhXP!;#K z!PLEH92ir_cz}8&OJPb{Qa~N*0c!uzN-S{n#pPZ*itXHSYum@vz!XLoOr?8(>IhSI zWfD_+#XUMFe;d26fO<$8SD2dZ0cxTKYNNu`)-~+|b=o~`Fg5P<17oV?@+44~XrQDe z1ynZ=P~YVxF|||f=c~0CJ9kJ2K=n#tbivft0ZE`b!ql}Mpq>;zs`i~Lpyo^C3R7VZ zP~$XE4GL3Fz1lve4w~NvQ$svJbtI?WxGae&p9V@=Qb6rLir7&=#pPZx`c}EuXCT_S zIUNA?-xTr*rk*N1FsA$-psvDK6bUQXeFfC)+$2yFvFG?>f5ei7-O#LBKVMv0sy~5Pj0?PDYHev)cySrjH%;2 zK)p^6EP#@h6sETJNn)x=?iHr~Dff&CwsR*mw2!7qDO@gS%Je|g5t`=$4ZYj3A!}oIBu|rukm2!FeYqiJe#FUSVgc z+#~xdz`3*oaIQ_^Y{AawCndq@2s;xilGxcr=QqF^tHHU!1I}e0aE54bssPTKm)pnA zl_?WL!Omz8I30fxPDEFLB*|}$R0M76fZWipk zcH)7tQ|SR`8J9DGok|VPI1LWGFj*QYX&cEb-Bx9g*`*Z+K!1974#Cp2mz}Pw41I}c?OzZ?T zI5&F0xxxd^`5K&JfHQk#``CFhg?EHlM|r^M2s=-dC$Ynvg#@QqgR{MN5<45@USa1s zxtH~n+fMGDmv^OyA17 zoU}E*pN92K!zxXxcaYA5BIm^@Jfrrx^HGjIRL;PizvCSeA>;RA=KRHiXY$Q6yVaXre3Q>NJ@lIvzBz<%u7j_ctrpzo9F}d7p1?`bw3dpUGK|Hz4=}JS7<4Rq)+%ma@N8rRXAa9_5>@a!OlN zb~!nB@lBzAQ^Yc1zA@wKt75*nk#9bfW2d6xzIDd%%{h4EY#xQXT$~~1iT?EZyHgUy zj>^NLD&x}`@QC>Bz6e=>&rW6^aCn6nLD*kquXX%ezJiN8Xw&EHKc{v>&^$K2#%(0& zPe;7w#LEz?na5bi9L72#1|k4?Zo<8Wkpo9GH)L$Em0L}m(*;=F%nq7ZMx}S#`Dfxc zJQgtkF$Zy?NIUm^B?ioVwwcnNF@qe5Hqpp9fQ&W)w|vUppb0sUU;^&XK@4C`*?@IO z#d)3z&$tBOjYbh>A6#FPJ)i+OdyCm7V$3AFD}zGmbBA9(+Zj1g?~9IaL$2O`2hG9w zmCL^Hre!;4%C88((5<7{_&rWBppIP#o$Vqk1^#yEaScBgdW zPxQJl)sR0ln_%%80H|!p>sw_*-Ud`N8*I6R5s)d6OavgNlG^44|fXK zFK+aLZPcsyh+|{FQ+Q4CLtFTHG_1xa2m{y=&#ba2nJ}Xnlipp zR&p&@^6oOXmxWO0pfwQ9P2u@@8AWKfD3dXOM~hqv31nP$0?atiYWb?r%L3;M6V&sQ4=EV4of1@#TIV&+sg7_6D zJR%O{S*fiAxM7L_o(zPu9!n(2dPK^O0_T?GAk4c5QkT7ruI$%`FC2o%82olKgxR~} zKZ-GHB70s8LoKGo6vRp{rTD@+C_o}CHh@LZRv`jrK6;gH zYe}!dUh|;QLb`o4Ew}F@rt?Z+7 z@qd&&QkP}wa^=NfsTDBD+(DO=7j__jqsn*iEq$VOU(gO>zJtZQ+UhFlXO%f-;5@&1 z_=#6hYcL*Gu&9M3Bo|L!6JCS|Jh>-Ac19+<%yJ8fMU=C-9Gg-jb!ckV$owJ0?Vfj) zHSX+ufw4Rz6Olhi05u-y2w6ij5eHRn{BxCi%-)4|&vd*FhOE)WW#((a#+WbUZ!{u> zsHqhD@(~&kGIy$zdP}x^QeynI*@#>R`^k8}4%<6Pj6GcGWDp=8$Zx=;y_8$O?nVbn*%RiD2mt34Sp(LEtP6puMqsMB zJUvF_pm)J?goFY?<^G*UBpnc5VC7rH&+d{}P)%CNmd}8n*Ctd5Zt9N(`vbK&?)buj zkbOx3&-%Ti9uu>2yK;Xylas6let4MT7#;Mh&yMP8= zGSY{eR?7t0yGRkwoK;XA%PGCQzeezE#ncqipfPRQ>sjMW>3O!TPuCcDTm4q zSdR*PJZCy`4zM@e9{6ZkJ1v0GZffSrWHWTrP1S8ImKmGtXul>z0;~YH{ zoNw^r{9-N1Cp(A1evPj!?Y6em9Q>?sne59Ws&IfdgvS{`E_n#!;eAMq&geC&oB)aO zrb5~~Mr1ZdSgF)m!xy^v7Wp8&I)%In?d{xp>;dq-?wnTmCaSBF zsCMOpmse>WOjh=U2#McKAimMfSdpN4Q>>g<>Cc7ekMh=I^OX_#1d<;8*%Z4OJpds( z*G?e;n}IUSX7Z?HVAkm@IWT1QBbx;z-VYm(RRqH3$^kAeT*`}BOR8cBHenCpmYB+` zr{r2n!PwXEtN_MrD1@AHgziQex?6^GOr~X&n`1M90#WkNOEu%8n`@3Qum5t|(IG2L z%OPaVS}diZy=Hs|r)oKN|CRe+ogP${K{`G-jsq6&FmXdmYof9Z3>L7qIqFukqNa}C z2UQC}Yl&DY)@|U8p|B@^o`#{}ZY6B|tg}R)IYVI;b$|{?n%M6-G|V63uWINzY7_)P zmdaNE7p1cioq?X=u1hV5nAA%*YIl<+8u+^n(ZEA6nQ6mfW&*G6{QNK~rDY1H&2;{| zD3SN7=4>9VRS|-jSvlP9-@|RFgWiC+imoy3;i6HNO4q{y9)Qj?qCAfmci1y-p%m_r zi0~fq@g_L#7lFqv^P01fwYz2zVXQ2-`*-`b;0@~#yvh2PUxU5>x3=H#IQCLe^P~Rd z*R;)1NDG()ODtf-{m)=Tu62liW9|Qrk)jTvx*osi!8S{clGcNS999ic*MGh%>cB-j z?b=l>+@&}7$ODMF56%=(hxxTOg%et#RcxcUI;Z4UJJA~<;9e{3_G+ow zUu$F=KRT~%lv&8D>hiL>Jf|*8)a4)Q@)vb^Kwajmi>)p*T;^OoS-hnrI;MW;fHl6N3H!4#ti0F#C#hr zfN>nO{6oE~Jan>e(iOW)o5?UE&L`sb(6i$ec%^h%j(Yyf;9& zVdCA0oxf8taa};c?21jCa{8axTVPrW4T0$fiY3nRQ4~oHktt||g3>%x?QtE=GZ+CU zC+2XGDhz-UkY}=|Rh)g8m^%-{Urpsy2&Pp7g$RqRu0-5Fx{VEzXlZhA?JB|-AK;?0 zNH+)Lh;!@epxF;vjxPaG03X;rrKu_oyfFKM(Du2qb)7pWc%X5qjvt~s zfbb8ft8ex{bw^Q4$<5Wl`KV~EV^3iE>Ey2$IdJ7~FvJV+!c}olW?-uRP^kD1HiM*^MVS_~=FO4| z{3ys-(KTpZoh@mC-1&a z52|1{D$vVWl4LR8WVuR~8(W4QbZ&)Egp1grgcO=D&mrrIymDBj^{XLpF`p{utDqs3tlTWdmkLK7P$`9+;~;kL5~qLnFZKDdvrWStEXdbO4ic7cENl z0y)*ebZnV)_mskt6=bpD0@T{y=}HCyUaGk$5q*L6fWpF*)-2&ijM^T?@>y&zx~}$W zpszBrXMb%^oO^=tJ~lR2ob+C}bd`rK5Deku(MLeLzJ4&!Ac+_!MIkmJIM!L}gfvZx9~Nf+VR->Mcs}HUyO7NyV_#h?0vF%ZPJUD;<7IX^U5*Q%Ahyv9~w<=*~8TqmM zB^XA#n3s!uZ;m~!uYbc;qi4J>r=a4TLAbLuF|uQ`C7i}3SOvh>Nm%TGIK;L!OK%3` z7=2)AAVI`lb*v9+fbB_E1<6x+)%j|bNcXNq&??8kUDaki^>T;;sF-T%e|SFm2je0v zb&UYnVwsQ1fu6*v&rQ%U4P0on58`JQ;vgWVqCcQCU2c=htyv3jUvACgs4TY@kWtI+ zMe1?`+=s7EA5d-&OD{J?hXt&xtb)E+d>Oo@6at{jh33F5@dag2ndUBM%hlX--5j4q z7AWRSxrzvZGN#o7|8}9W79_7RB_AfzPy?K2=Q-yat^o$#1#?OkBW9m9?4??kaZ`q8?qNFidTW+|DFy< zd<7iFcd{Tz-59WXAAUR&R&B2BcA=Tk7&{Gm*!lQMAd6WSLr{^6P!uHIajHvVh-k`7 zkQhUkypZQyo7E19b+TZW%Kto0sEm~(p)x&5P;oBWfD~CYYE-I8t3Gl3GD`@7aLNG| z7mw0PkwvUTPQaNB>w&;b#v{%XJb{nETnL%@%VF-`(G@R<=WmquUdVb%qwg8fe~b2B zsL=Wd(OQPY6e^Q)Id~6MJSqaP-2ag==TwwtHC#_zBg9G{u)jD8`{pNnDTe(fW(+9sSCM7l6q13&1Q|x1(g7Jb(%$cJU@{b-K~US@ zAsO6`w?~d*@C3<0V4RmngB-7vSQQz{HNeweCqr?HyMu|X!0AeewhSu|HOg$nm%}2%JDYvgji$6|3k2fLn5tbZoU-umrEYE%67!I!ewOxms zW4=p^&n+{53Yni_oi1c7WHXoodE3;?n#rj0SCfiQR?KiQ!e5UG9Hp+OVKG7>NvFb#Ymr`Xk$U z^|uWBfp~}_B@7K!%>^maLW8Ra7yB)mEH^jAm%5~sNS4IIjes_~Iq`S~N{jrcj|1M2 ziGu{9`8#k6?#p!kHj73$Y?GA6+hajNn18`i|#gd#*7!l z&iGngCacTMa)AJuj3vMzdW_qr5a}T{oikKTctfh}?@oj8*@0z`6#ckM`Lq75^dsp` ze-`5T(C!GIl>6Yw`p=p(1O zjORxPlqj+K^?{Qzx&MX4Zn&g^YdK zh=V9zP~1V|tXQTCdmt=M^7 z<|3lmz(b@%7{6Je^_k!)2po4B%o+b2HG1%akWryr;`ma)(0qns0K@eX!_amS3LlPE ztEae)$9Pa24-TBULl_s9(|X*H-C&i&g+T5TJ`#FyKrbVhz2iqvlOV1NPeC(1h&-lJ z0{v*s4Bchj^>LYQfb%tsPjtS`VKa5ll1u(B-H zzmBI9c-x0A0$2!n9?%fGR0u{dho+-*)+JCrp9IZ!p@Eo9=uPK1yn$~ocBSYji)WJ&BNUKTc9&NHPS1Q# zAEJDd&T%E$ch3<~l^~*Z=L%_A`5NrppYQSkX&m3AsPy{ebfvw)O+r{5pjm|_MTi3A zF!bHhm(JANG7-R-hX6)!0vm^4elnGIHML+R11H5YL(Jxh05lF)mmWOFgXB2eq~_pA z;~vVd89AW594dT3UiXgc4u_P>>LQ9#MplDtGy$i_{sLu%?4@%@K&w<^-s=KK7sC$0 zP^!c^(C^M;&x(S3NL}ue3+VCCLgH66+ecTrn(YrwQg*y5`$u)TPF-GCm&?@UrUJm% z9Z)A{h$;F{pWj@}y`>$W-@I5ll=QzYg_cVAUlYrZBFee^7#FRk{Ib7t`H?jeMIsL@ z<&$k-t2Cmh(}e55X9=Hd|AbGrNPM#ILBV-^vW55%qC<-_`a17K0k2Os<2H{^R`rk} z%vZqZ9)czh5$$~l;3`9s$;OYmzz5iuTS~y0iItih#E`3VQ4_KPsZ!C9*@S2uj2ndF zpia!Bi?I^fV9cG+nf-(W1+y1`*Zb4!QyA|OFh2;GTSGW!tsL3j%B@4nc?c6VKJ_vt z9IAfEvI2-QiGDAFkQBIZJ~*Qc?oa5HO6{&7KD24+TnfMjv5LE;Nm zE+U>^(Y<_}bT5F}WUpf^u1by7Jd}lgF&pF z2D6l^q1IkNCeVjUm zP+^8MWpaWKsnlGplfDVqD?paq+EcMJ1ME^ru~?z}MTI5i7Gk#m$99*QyD6R7<=DTV zNFcRNpfnC9#}mDNT)(pi_MtiicWblFgcn=8{NNd;$MOUYE0!*Z&t(OQtl>qdy#u8E zx>CSfX6;~BJeHk-pZ;y$>9Z`a#(xcmc4fPSEv;^f)7lM>7#>XX*y|{bufZvjI z#o%B$L`KV)oTS0%bzL9jBGaV=nfiF*zBq9Jm#(3JMHH(gebPxmMRW=ed=BKfSi&+E zR<-5J2EI<;M0-PSQJJb3K4#ITUMg(?0CY-w#2#BueBeqtuTxrqB2H=bF`CuuScRUC z^AciG@y1FmZ24gl8R^6WLfncgQskG5B{jUy;S}yyaSf6*{#UC_jZIhr!kVrX?-C_D zHaexCa$yU`ye@3j*(5(J7q+0QDE7GuF5C!=gA%Dy#X0#&(Wd!wfyzBuOd3(S;mcf= z`~8bjX#W#(X;GKm>T-pup!3ntwGUy2nbfsy{IM-+zPXZc)O|6F7tA-qykfp7SDO#B{4jFZLI6C8z?;A=&}5 z-8qddgVn}DTm@|%d=@KuGobK8tEd)UB)-(@%5T;3;tpUO*jo= zS#Irl{1~gV_MoX_6$zo>=zz|8Dv$&1)@;;QQWZmwRg>?=;#aO_PsO?@Am|R+q6nbQ zHjwe?Y~DfcrZp_I2?0xLoMIi6ccKS(pkY4bIEU_3f<2FVU?Qg?@~vKvL>~xt(C&v* z#AI1u$zncZ(#38B{rilW+)d6IHG3&9_5tP)EKCxCY0X&@Gy07JkPIKp>jf0&(&5zp zx+oV#!~6#0ALCaiHG|+05E2#Y_b|5>v9JlV9s(QPg^Sbq@A3TJZ9A$`sNvbILh`)f zS)fOilDQ3IZ62$tTfG1m9G`;m^~auld4yeY@_qv2Z;ol+Ec| zj`(1mH@@4AZplVFC{T@2QFa=i02n<~mB!XmJEOWqY(a=7)T2Y}ICcl=Ik`)k|8(Gw z>P0Hl47z5TSYeGilue>rpabvjkhdaS$8ZcL*`~mGajW8kLhwO-3p8{G5Z!&;{{j)5 zjU}07buA2qnTC!2S+AAkz#8-AW+jg52EH#;8(=$LI#D@;J>Wa1yjEJK29 z-}gK9yzdmr=`|%k)ADTwp)f^*(v*UT`XKgTc2tusimAsj0``y`labyYzg9Za&OZdZt|R)unV4gvVgdGU#9ZyQfpHFug8tr?yv+Dadr*m40mJf9nni#vmie* zP8il}H0FY4k`4?bS98fmJX(Xc_7JJlfCuDNhIXIF+n}v4gFd^qM_TML*2=8h8=aZb z(60D@IJma4s5x&3E>^CsYT`TWUkAtP?w!4f;zA}4Ze1&2P52_~G0T@iAEr=T?)+vJfcw|*g?z>Gy;mVscy zH=ojM_&1$#E0gYrAUUuIj5jcD2+(%VZ^&-&kKnX(dqN8j?=WVTqOzCS5FWeM4#VD3 z*myXZ0|&6w4z_O2y#9wZH~{%{@_n&o;4dnN656+Q4~C?$c47~Hu{9c9*)aaj*a%b_ z-Ur0&K*d-=`MxPr9dxKfBbTVHBdju%h9@|e-GP^t?p1hK`^fs;LVPG2Y%mrE!f|y5 zbZgBmYI&&;t4jcqJNma9Ga3GdC?@bat|zuIwCe}VJ+U+Q=$2smE}|kcc;Y^eS;$1{ zn4|P&RPYtucX)>piPZ&;sWUJWn2df6#0zX7al=SgKsN)(tS7NEE&lp|b+RuVm#ZKu zaJd{890>9}ZR*P#Bo+|F#dXZ6DG9`PP|_LnS7F_k|00*?)Mbgf z{6k&-qAo8U4(>i4a#Gn*Nq>d#_iRGnHfKXrgffs&NV+FwV*p~T9l16D9C8VAJ^LBa+yK!Kd&lwNzVRZPFN=T{g>MM9KBdFQ)Fq$39r*im8# zX|pd0FHolA+p-a5)4}??);k>NR7X454E`AiI(2a6yB2waduXy1d?#aBdmP{{;1S!# z?MMriX1wqb?xMIOk5nsu0PvNpAz|uaoUNU%bS>$d>D=-qm8$4daROrjlOBh8{0K(E z0=a6rjPq+|>2DQ#WIAW-&+{~%<#TawM)SkE4q7bO-F`tj8R-J@Xm-$cEnV8MEAkiy5!ry z7B;{Sw@w}M1wZoI;iy0BF1hrM@B*|6DS@_a>_x&I=o_gDm#V^N>cWl`nxhRKMeBJ^ zB_|i%#Bl&v{+S}3S0rN}RA1CmRk=N?lNFemQI12= z=W@S(nSBd3zN-cA^UaLeL(IVJj9>(8(useokcvYS4$5p60i=cx*~MsUOd1lq zL`W(`)HC4toB+P$*FmsFkEx3P#5YLym>aYK%gcE>&dT8#kqIeVK;^DUq40xuLB%%S zHt5I-#dZ>Y-D+$$AHZ63-lAB?@8BZ@uP6`uvit_YjOHWo%5DhOwtRG-@Yq}UjY0?8 zZ4Xs^lxXD%u?V{au~#za--~1GQ53YD7eW|QnSYNF!E_X@t8fu7ZONyKw(~N|FkP7Y zFT5zTM}W2}ZuA1scBo6+3J+}+O*ukQZ5UsL>XYbrJlZhuLST)pK5A zg-0B+$AsvRJyw3}A1(FA4Erx0u9ybzoC+1?vbT&r{|+Ov5%V>WJyPOtoPLm^d&qn{ zwt@zpJp^mOEk@)ql;MC|BygxvnW)VEeWw!UoGHUr^0_augna?%tAtgl+4IE`bL5LM zcH7cdEyL-tJH(~$koM?%pQ7&=N>w}S^V?ne%IK8|Sc1OgPGae$KDhYEBQYSu)4_AdWWNp$K61{&nrO`lZQfw(dERbGN_TrcS2})-9NRGkUbm} z3PeGnO~%|837CC(VgzC<+=>!2u%eZ8rK(GaR__QD>3Vrv>AFJE=PE^?VRbHjXb-CK zmyoVceME|>9_B3-57*5l7bS3DZP%7!atADiTk!&Z&JLU4j;gf7u`>7%fVUqPCV z+6uss3dJ^Q`cx!U_Sx{CB}ap{J%B4Ad56kXdnKUw!onJ2e9YHpO14(6`(RA8R<84$ zPuh9wWG@gSubaAbQkQ-A$;{wwvWgr|1Ux)YMbn6rGCeqXr#!jJ`xf}|5E{)6^OnwrAs*V&%gUrsv2GiUI z)7%Er*x;Uh(x6el6K%1WG^#D}Fy0xkzR7XCF4ET}xRU1!UHureS1O|gXo8WESa&=2e5I|qY<`Y(rSwg9}e zWp@`)KSLW;wo=k!Tsf7Jk5=367?jG#Kock@{w!P+z~d*U(-pESc97zr5iD8_{F6n;@(LD}s};?k%xBJ9 z?A|@3A1OQeT6QR*mB;QBQEZ^s;;NK2E-D&3_t46&sJdUiGdqu=35hy$s3af<;ZvZa z&K#b{3P6$JnY<~)4URDM?d`)LuKIFOx2&66K&Q}+1*p&%nx$K^M=;V*04oYYcssJ2 z8TLSd9Pm7t9|p35b~TFcOAtRvyc5oH>8?maNs8gdp$1CN;_R2}FArYpqD)?@Q=U0-4>Ahpu{81`j2{iyN7EYcs^IM|Gs z3&6t`J@8zlzmNT-*$!x<1h;)-zHY^K>Pt-EoSiy%tO$DG4^Ba~4zxl9`vsZUecZJS za};h$!!WQ{uu~rPAqYYQ;zg%Fj|0{5(`=3lGSxjR5zwaMwuPzf!MtV^S{8C zrT(Vc0z#iw9R0qgOR3d2U>;Fw9imn~>zN(Q>Q-WQi*3doKiZ`}Dlz6a)gFY%069zy zNi6roUq+@H1jYo-Z{wdKj|w0;fsjNyVVf5^c8nG3kr86lzC4YLOx-43RzAXJ6> z&^bpsS9=gMuy8ebU2F^BKsRf?j1`lP=H6J5Tw$rOlkn+}<+W}#2YZujK*S=F6FC)? zLU8>JZd~W>c_LBXRF`ITX;haN)a6-qdCdng^LJRpTENhFkqJd!le~em2LrA@Vmt94 zzd^iFJouX@;10H_m2o>cuMqCK35Qud@Ao$cZ3q$LK|qQxBHV)*l%`Yz9oL8ISzkZY zhvjx=JUqne`Hb1~cC+6z$+~`=%bvN?FlGHKnlBMcA`gGdSzFx~#l#fkAqO_)pq8T>;sa^pktx~k_KG?)nEnGKuA9IE=`F))LEv# z&r#Sx7Ypb-n+3@DPj|6Bt?un2izm9s!hC?Pcu*#F!GtS8FINKdOIQd#w#m4nw5P9j z){e870GMo4jY4p01=A??FSVv;aOJR z@GO16Gd~a7W9V0VP#?oIM`xIxuTPkAm5RGe9M#IjUDo4-0Z81%zTuyzdqA_x18PEz z`SI;L2UkUEFDa+bg^b>tTMsbkMS-)$=hnQ_+LPQxgG)Xe>{Xmuh2Wsg;ta&t^tPPrLM%PX^|q#^zy zYw&Iwuj^{NmYXBfvf~egu>6#HB8=oa6F3K#RtOEWys2AFG1O$PrAvpX6Pzr?4SYK< zw}ZDtnHea9BKy^6;_Elp;_C_1tidn4wFUfZC!9vl*AA4XhiV(IcsZ)X8vML}EjI|r zzM{`yO!~LQ-o*tQRla}+^(Z;{t9@{tyJm|HvD781E>qQIqPoo8|IPl`t$HO)$>gMc zD(eL&a_-Y={~@`W2VQfj|2;ue1t7Bj0Dw#qGu9Uq7m3ffp2g7p{lSXmjTXbS~=UCdJOdr!gG#|*+->_7e8 zVnAmQhQ!GHev&McNm7T~y^tvLLna99#Zz+;=t5Iq64FHO&8R^zAB2e%?kk0pSvAv3 zm{zi$$wh$q$BqT-f>FYtRnQs-u8m+zA!_PednRi#BpD?AW_cx%9n8p?X++fq8Q&i| z_?BONNmIe{o!@Q|PG6iCvF6Kx4Xuu+mt?}vCoAhcP@+*mW6e}hYlBZx=`?7pHxM)`)u^b^woa1d= zwb$O;T7hYDzKIZ*hqp`Sf;CLlbTQTb#75O?*g{X&?W$o5cDV!Dw-F0j4XN1lH*w0l zXOXj)ab%MRIR2|@th)_~R9L%q`3_>&obC2k(eMQ#%D$hv_uJch)`V>z(fkWwaMnF3 zXy56yZ@j9)(a;}is8#Fq0SLl}^RQ)Qf6-*kE=A#23>~Hz<#K>6I)}68oDXzov#?W5 z%f_z=2T^;^bt4=7lu`ZCzEKY#u-HuDgr>+W<3_h z_KKS_7-GJDX{HQHtO;DbU{qcSRA63_dM}o4q26Yzw_QEv;xsn{7kd!T_%C?k+qp-Hd5Ajcw#GwawyE12JD z$BabsRBI4CJ+(>S)bgQ4AK>PxGg9Tlt+cb7)!qxOq&j3hc^qwHy^h*-ZImSE`<0*el0W zE|?6Nj~SClO@>dF>+dp)yqj~I9s@pe7)rG9nW2Qu$xFukEO>bHu$-lU20&`IN+;9h zV`@{egIvYcRB#~63#v0ULSk{EG@Qh#2=K+VHhD}#x>YI=v$>Xxy`Cq-N0qoo=lG6p z-u|*W2kl$l)9 z^I9Ug#fEPzNrLX-*?g@f7h2#Mfj*pMU-I0O>=dKtn!_XAbAD_!Bi!HaUrCS9d-yy{ zA(#Hi^*1syfp(|v^T_#G9}E*)&>JT+ZY$Jh@%evKsd@XMtA*p4Zx0r8OsusaSbvYIS#OZ6Z0?$9i%L93QUP2LSwcIQD8Y1xIg& z3W|T^XwL%u9-luAr;9wSe@Rb)0|vx&l`0Ay3y4*b>_|jFO>JeUnO#5<2XGFs81&C~E+*V-LSA9fL9@ zm|H3enW}?UcpKq0Peh(K5Jz78-UZE>y$hcEo5hKE-0fY!9w|z5S}%xCm7GB2+VJ|l zsqw$UVIM%XXR}nx>ieLMU9N2~e1?cNZ==(3eql`DujoFbj#`VBTk0`Y8XiN^uKEU- zy}m(t#y9XJBGOEWw@tVvLwbh0#F{jl~ zj~0oPLy82q=_&Sy`euxWAqNEHd$s$X*K*Dvsc@W?3v{*xBfO+1XR+;S^ zQBTt`2^d@I^p;YULok(d&z|p_jUr#Y_1tWCW8-#JFKB^v7cN3Qv!})p|9YjKaQ)O1 z;hrU~cZjIWD?dU}<;Vir1g=7(DY+)=1#O`T>f-ymIdSpq?&GcSNAJ(NB<8tb*BGQ4YUWR@VN z6#$XoPV_RxDV&79r(BB7DL0&bg=wto-i08VD9IrRj$2ved+F=E{@HmqV{-gc*Ei9R z|E35|AA=lJGGe`=j}vBwMFVCs(871)nG4a}@d6cg_i-6bSf zT}DmNhuW%oe*2){(eq38u<5*4A8mht@UhE{0Ii!K!1kX(&I@j2y(vo5n^YyeU;W+Qf;kK+9c_Lo2vn8N#E0NX^SL&y6peFmB%VHePkY zqYdRIP0R{Uqp0r2pLFk_#MpOph38#cUxo0Deb0MBNNKp|ENa!*n-_Y1@kb%7=O;{D zT*3z@N7MNfw$Cy89P}pic|9vf1@yT?z3MGL@nwlJPVTzE)_W|Rct7^-N2f%xzn<^5;%mke-dy$YNS^py+nUEHRqIDi^?HZu0@U)F|=`i{z zmP=lWa*QJP6}k5kzDl0m?w{%PyX#S+68MrqTWififzvyrqH;wZy)HQoS~d3Ri$soq zsL^7!Ts2ofUKhKkEM==!hrfK(vA>q$XNdjIrwH5GxVdLhfxYXmJ{y9H6`49Hn=bfP zRA*W-K0KR+b5s0LW&`)Re#P>;vB4nF!wwu5tWI{4!^6ko~GGwWZU zj`AJAzrIr#O`^H*ukW?bQo%v_Aw!&x>Q0z6-|b&Rr_pTD(mQ%K^3PL=CWSfIzUsS@ zyH9LTe#Duo!u(&;GJal!Z(5Y<*FynqX`idFk*fAWMJq7j4t&_KkCd=^3&qGt`3?-jyr=MI(zDhiFJ*Gb7*poVDQ;!^0%#pG`US><%AJtV9MsK2)_{0 z_foGbq%R8kZws7z#q;RL3{Qdyxg=O>m3R`k;h>}dT)Hu!jS_s)G3v56Jzy<(5F4qY zy0HH${WJD|%cu1}6O{@NcpVbNA`)c#4;UA?@$KCp7Wvy^y}R8_u>}4K2W=vbP+rIJ zdXCPPiBZtnD1dm_%$*t1Gb)wJSgqgL^Z43wy}<09eG$aUQZa6c0Cauq#)H7T!=`Cj zS(kiN+tIT2YI6^Pu;mgvBWlh(ospk;u?0pb_hytWtZG(U2kx%2=g1J(bDG#uJ9Wm^ zcV`WD4R7NMRbUN=QCanNlk2Vd@ASm=v{kD00YCSM7!g3GG`ZBHj0v+a5ES( zDkD)nRt|7N;*Mw|L)2+At<7S4*zqS99zcs2YNTm2q0?$J>CtXJ*?HPE)@0v2wsGlr zmty4UNA#%K9PfHu$TI$JFKy z14F~u?ga5tH%e&Ox7!vul~hd`yIf$PG#VXVaDm8S`p<_*idU=2uFjLlnqL$Dt~RYt z=zK=qd_p7>H!%GH*W5N}{@mK|Dj2a!9;x5_Ts>p+Df^nd2$Pd+MXqLs6&Tss_A18@ z>6xd+7oD8ma2tj|pm9=7MeIzxPSb@+THT#~T0b+(e6KnVi8gS>5|p3fL|5W(R8#Sm z->%&zNuI~hg`4hEUM)k}2DapY0nvsi9>tkXdlbWY)e<3CT~%!nSS3c?c7KymJAH|W zRDk#%LQ{HCv@yg#&lmk5zCQV0V)M(1<)1JvMI>%wSR(6j|lq1 z-#db`V^ynw{^pm)4^TceF-2)CjtjFxyRfQpyOZ7IA zXSfQ6?UOI{;iM7y)V0Uyii6?es#;htVNTd}VJ3HAlZu_UatjxxW+EppgXm*Uju_ze zfYV^`Q=-Fg2dy9OeXs1SX%h`tJwheEB4CCLV5XaU+n-erEwCS*UCrI(Zw7e&~NSd!vAx;-}gYgxKI7Vr9tz153uyXVkNdU%(z{^^!pkt60J-g=c8 z#11~GPokLeHKL$=!y)$+62;zzC`(id*yy&a6YsQQAUWtt|EI*5Q2c+{DM^k<>0faZ zuKAV?Ss!tihur0Ucd2uiU%AWA+~tIqacvIZRe5&qU!H%n+W9w~qUgMh#xkV%PV1|` zMl6*?gVa#JnewJPh9D_%4H~P$5j#Yh9A{{ub_G_qTwe=E7qa**lx5?98F8|p+UzDj zF`Gfmw5h64)<5v!_ZfoM2Al>P2gc_QRKUv?D`KJdpcXsTfgUy5&RZ!`6DD`m zaYGRu3K8D?A`Cl?PZ7Hc{c&q@p+D~3Ge{Ksvysb>NL)X>J8m^2!!4>-^{f5RG8%!1 zzu5suscx3|r^Z`e_ufEMT%~FF*1vhVb7Tt4sUybUh8;5dYy+)zn{vB zDxshKR3gvO)1X;QVxSiLOD-XzzBlLg3PMCW!jDTFz5K}aI%~EZg}mXW13@3XU*Yp! zYNZboZo~=@9HsppKxkRRAV6rdKCN89Wkq=F^AKQ=5rD+9e+BmJ>PMVy*r4QN?XR*Z z{_yh0_TYYk($4TjlFv=FCFc{@z1p_5a*r1#?)zNbkSC8`Fkwfn32EQ5^V|obkWZGL zHlBT6)%J>E*viL_rTUG=HxbVA!2qG14%x__y`Ah7j`g%t3W^x!6(=TwnK)(7T=}|2 z@c?l6<3~$FX53Pf9Yw;-T)h1oH!K^YYH&jpkPj{@)*ZE|f**?9jJBhQL9{}3x(@?M zZ_J^cQNm}NwK@7VJnK0KIm98U4}Eu=(|2|9f#z*ouXoXRCR2>(>AIp~m7=f-3dO^Ywh8iH)^i1G{n7?Ts~z8?084ad+l5k+-DlZ` zr%U-Z{l1yY2dcWc5%ccV6+^ed?!C9IX5&22k?=foRsB$e)~i2^Go5AO2{g`PH=az{ zpv9{nz)hj9a93ISGOIb#Raq@#;+tYaw3~e9!~<1rYD~>5B9FMFJ?T4s&j&fwVq$|i zUC=;|ph(N^pYbkbYu1l_m;Cwq&Ck~}X;Z)NyOV>FbYx^z{n&T>NQP)s_@lG3_V3E0 z1r15JcU9W-k#g_UwPr0_Bd^jEtNqv3T&0J&o}_P7w|u*7;KQqJ_N?zu&GS9?=QMow zH`VA(JVB#pH(A4?(NF!pY$4~YWd7)fWXx5*{`UJtO%|^D-Y?4V?IUFLeW~il)sU72e0jTI`4kv5 z64=j1I$cy%2(RU3iy$OGFW#D`7^v$jz_6dClbAh}`e)OQixps)Z*zYswiRI|$b4I9 zp~=&lhh|@vskLVH>~9y$Uapm-m?kKGM?QPES}=BvTt{OuFf`giV`H`7F-gfjdQ|^B zDI6m59}Ay3+vt6^yUh6uWWU~d30eIf)Kz(V*+Xgl*-L0@4G@w24i6FNOf+?~RPQ5& z&^gP2e(9XATOPm5>6RAh77jk_ZaoB24!Zbck>XAj>~p$}M-in845FUVv-;=B;)K4y zZvOEsBTLIV=GvG=`)z&z@ofnvp1nqPajTpknS%;iYF9 z6$iP?UQa>HWsaEr_+zg_lz#+Yz38|^1pqMUm_=J(bj-)rjNc4^EfYSEn+RKdfkxQU zv-;<$Vz4ZLVEFZEMwMY}A;;znIr8m!>C^{p7a!7AmTIVGjc$dZc)PK>FX=y1mOE* zj6h`5HNM7-tLL`lyaP4?*u(78VS3$Dltk z1;2ugy#rxT3-s2$TF(l<;3jV4?OW{2b*u*{IUzMt$HUCMa!POxn?1Z3Z&#S(gjB<7 z4%lW_W}R4F&n8t}%k*_nb;gvjYmZMhY$#;|*@m&tOiH$HV0pJ`YELQ|%j)o9mM+b&S$N^8Xr=8+35IoCHcsAI)`2a$OIT z?mk+C(g~?n-t8t`ktLIWD)h7DZ)TPCr_drIwRsTT*5+tZ zlN$#D4NmCoYX7SdWsSdS)GrYYn{>0m|6&x1Xx9=>(bo)RdQ-@eG};3*nuIH$(7}&E zp>!^V^62CDPyfwMMxUkDgxj6c0$)q4Zr=kO0&6@xy3@Xo#wjlJ*+VKhYkRlaZjD&$ z=Q##M;$qK61EwfaoN*d`nYg9bZm?ay03_N`llxywYn6xwRI(iiKv8(&CYK7NZ2b7b zJM==-D#ch|(=KJe3Ud1JY%q#ZjBVNML)1F7ctRB` zvpkgzQbAoQ(E{&Y*Q~zkKo#QXJ-4c5RmoAT2!4nOn`fh}srJ7PN)*5A67qxc3nxf} zGtP|OqW2(KB;XUouoy1(H$3)7(gR9N09@5l?c=5PBm0A5SJQhIxGX`!gyBz&ZnE91 zp8(lY^_mr+SvkvFXZo_#W>{?~R$X%N*(I}RZnlqE{L2T}q#BwQePasvN={UFzW8B75r*e?FlG2z*Vs=g} zZ`SkIS-oObUzJDnG}>rOCm~dGMk1bTiwHakj%NvcxcCp9wy04^h)MM z{KC%S<)UjhFHfoIag%W(7B_4s?B}2Lt0v|2!{nf3H|xFY^*4~uy;ug(ACc4FM-}>` z5*K1~ zP=@3j_2V`xKLO~;S7)E+W_eeG>)X4_>bEa9*XlB)h{LTocY!^ipPBWVLN<*J8DCFl zc}WdWYFYU4U*ENq&kF78yuZW`Ff>Nu$d~Z4_xP=i_S+`^bSizU5DYvdr*<~xRJk_VrRpu^J*4U$c5?ch z-T9dh=ES>J>kGjMw_!>!3;;OssZTzo`N$~U_|Zf#jG(0xDfYCQJxjn9QnbNU*VQTo ztJKXGl5_{5kvkN~>3Y^9s9SnWEEe!ps2=ZAR7_3@kw{3-);hWZA$|6UJ|QOW3`qrI zc-G->e;^?xWbC&N%M()1m56kn2}TY<%Za9=S9*kqESfHK{Pi@QZFhd3Y0>mNebFaP zqnw6>@(OZ9)6ML0Mw~?R7NZ9@@vc#nBzlTqN)2&zEh)(nO%zht#sY}`=$ihCiKdoh z!dermAojz<`=gs6?df*ee@HZ0v#zWIl$&pFMl_?HwLcRHso(Ok#Zgb>v^$V0dR^=2 zqF;(6tr?(Ltl6O?{j~jJ&WOiPP*;p}Wlej1#@G^(&KPW&w^b#FR>iO0S;7}w29`dF z=F{6>FP22DhRTzIk*o>ZoSy#yEeOglIZTB5EQY_~#sLjKZAr5Ll`>3 z$w(HBY3>st6?Q=FY=T5iw+q5u zwk4fMmYgUPL4_b0rc#ec;XFn&u=}uTLY3H4C_wp*QgA5G4!31Q#4PSDYKFC0qB8s$ zEp+?9LnF*ZVa{X@O%I2Feqi6E!I*np)6jjq z8#JP@*0T}!1{C0DeJgzSIFpiQcR9^n9&(ra-Q^n(fcAYTG!N|s<9#2m{2TrIwD@hW zU|eRhz$Ht$u@Wj~sS1;UmcF^o-xS88Pir9~-^PgU(UrSrA9 zPfQ8E#Tzfh+q?OZt#6(nO8K~3B%~b^yMC;9#=c5~vWyK-zVOvwSXiUC-383fn z&qpLT@Ubv(8J<;Vg7^9{cG=)ATki!^cY9IG!;_bL+~bykxWrR4^@Bl+ru zpCx+S;U_C?Irzz!t%fE4kZis5QlGMANPvb;#-eP#0@-@!9_XMmNOM)rKZ_pHCQ;8z zb+goy;j>JZH1e$1H4|?5hv@O=7ysw7ClFT z*f&2c0Tei&aKBW&)d!tJP!wJhI3Y(4`o9P}Op6TgbtHvgr8^kUE z`$x0H>Y5kOZax<3cged1TJmncV+W+YdOx>3{UAsUzx+FR)RKeQEMCnYoFI}H>?h?3 zAdZxKjx10eo+F0RAa-)PUyf`^^~n(&K3i-rDhIJ$J?(2n9e%ossQH^0b6pFkKx?WS-y8>u#?f#PH`It ztP?zvi}1^zb40JrM>vw};zDYYC;FXg9YoKpO%mOW6TMV%-b2f6gO2c=-$MF@S<;(Y zE};K-QMVVqt>YrT{BCi>`s?v+KL)Xxf9n_D70Et{pO5eBs~yez!gnsN4djmAivRRQ zW@}MIW{>TWq$NsT`ogxLq<@~wOZk|OZ6_>|jqz$N2mQ+}yCf|74FvvWK7q6J4Kn#R z{{;Ph>?{3J`xjk(Qo8`^O_>g(ULyUzkLLlhpVjKkxmq3QXSF&eLCJ#*OY{8me?-4u z@l2oS|3B03XWsFDrQc`%SHB#onBONy^6|f70Q~=x^n2OU{mXzruYdnr{r=If{_phr zb#L}d;@@@jN#X*~x2T8c_fvCm9%&21xs!Aaqyk0aaZUcW`uzv%`b7BufqtKN`~RhW zzkWl%#2??@C-L*~y~6ihlR`5<@gi(tp0hodO}&wBu%* zQSjp!?Hfaq^|f>DORr>=b^WoT4@rjVInFh+Q8q(~4;{KQGvwA`@)GhQD&^IH;PSKg zl0$@Bk{Jc?NLjdGUN3&Jc37eFaodk&2?0rlt11%PS4`1S4oN2bh!@+sTzsVl;%lVj zD*$i`3r_dW%wu%EcID1fg6UP;8+1C(2|PhMQhfdgw0=tJz_Ru3W zVZ7^4e5>qac`{RKo{o3jtuLr#O7iU~WB=5Ue7k=0OZCe?W|?M~S!-Av*4M1M>TsJ< zOU@li%EN@A1PVs~hqlKhTd5&gGSoJ?U~Z0enc-{X=@9@-@2hYo7OS~|2|@-LbF))@ zniH9!=;<8xnXcMXq*Jho$$NFb%$({5ey$9UGXmPMMa~=~AKzee^V$y^I${o0E=IJC zK50|@MASjew9JTz7WJlq$7#!Il~kJ^LldLNAwhleiSz|H6$*igMB2T#V*?-RwXMoL zd1TP4VeE=}wuayQLSp%cq@b_Y(@S}%p?C$6)vLZ{*#XIhh)}Wjmxxf^vp7s%N6`8q zyq|lQU%8r>HB4HdYi5r%Cezo4OV$`Idsb`WtvRz8BN+X5MV~|yO)JA)+Jw41qPc_y zmkcK=QI@B{6l2p9>2q}rVyApX1rw(Z9@NVBxys6j4S8uOEgZh>MJ~2=W+i>1ONZLo z4iC72A6|4fJ%CD&MyM zT6cNlXK0P5nbqv=Z(njDzBcGO$Zu~C%Hqq0uyG7q;P72Lo7ZEH)n8Us9aowf{;xOK zu7C$69wse7{9$Jz_e+)gWr+W!=Rpqr*z^P)`W+u$=K}??+2xsP%p8as#bk2)(~c?~ ztml@%oV16yzOhp1O5W}!f&za{9S!xVdr}#@|5UL1&v=fp)K}UOTC+m+N=X?)33bVb z>p6<0fs<((QX}eWo{V2Tc6WS?tDoOZe}BwhL2tdf0_4_kZQv@4d^D?@I5IRA?;2jJ zvqL%bWxtp{kahnn^g|-G>%>$;QAu)`DMs5N0W{K#o7`%4gqil;?U%P&j?E$4pV4+r zmC~fDOV6sVRO?P9nv=A_k8&~wSLjE#3jzCG9g^3vH|PO-&rCjg!C`}d=H>f%Xuf-Y zv?&9{TbEKNQq^f=)CyPK16CcoDj&&#QRD?IqNvHis9NTspGVV13tvY*ueB##=R?YI zFPM~H$b%U00emuabwcZn=>%Yb)8jdeCOpZyV$+otLy4Fi8G6+`iUOtNrL#3liN~{Q5)hrVRzZz6kQE+RrZ+ zc^|M{G&G&I4+o(GSJ^u}ek^-E4m-Bvsn)^cy3>!)NIu6q&ZdI8WW$J( z!@YJvQ#E0x^l03X%nGR#sAmpq~a+aeaCA_5^g2btO%AuJc z-z5)T`6}{-5xo8xROH>?bt>{f6YG9dWS0u_D)Raf{iw)ov;F}UnHqi+6`P_&MSi)L zio7OQMMB!ShgN$PxfK<;sm!a$^m-0W2-mCvv3PV@h4>)fNFg49LX?#Jd7>26l{hyvOzh5@%P=lkxVC<0@yNNzSU08j>p;ijdw%;@>@i zcg$%>q|U-2*_qU<;3PU0N#f^?_{xxLFjRk(@9uId@)3aza)3y%RrBiUwN2&ydps=kWI&DJfV= zA2hh(MIK0&T%WAFzC;f6w0>Vy70syEsWqEgPa<<_5F1lpc^8#8(*5tnT=z9}l3LYp zNIj;C%5c1q!g86T;ZP!&!>PlHwkjj+e6z1UEsfU6_^Oq1#U;p9B$-O`bg0~7`CD>O?j@AQZ%Rf97+rS=L~`VFh|JZ8IFSjTyCcWytDsF_dSW#;9DHPZF!mKz5 zA2G(U`17`rh+}cM+j98Jo(gNiVfwVFE_F(^?OFUTQ@qC}M<&s5D4pZ+$WE!Y<6xfR zhoh6juHXLE>hvy3vDGU{}sO;ml}C}UCmk! zqkBl+VCS>w-2-a8u1YQowUiz|W$9 zIntP3jP$+m3OJHor-1MIjyjT6z!D0*k4&^sSA$o;i>unyuN(y&+P%;CMGmCJ~H$1)Lgw_WV7_%$=}G z3iuB+#VcS$adKrnX+iD3;UyICa*a8UE_HnEHRk;J^oXrArc%5aKmnU8m5Tj$XFpna z;4$Z(v?r^D34_af3g`R*nY>S*zQd>Vm!y4DQ^6(xHK$_!X4Yb)1_97%bfo4JMbuW5;&VzQ35A%$x#BGo1_GW#5?{I;cDADG~QWnImkaNs~?qfK>owdUL9QX3&AkO;vRO~1Ao}xzO*V#wKcZs0LnJ5cKuN-)I@U%kv0}c;Thu_$4 zw%}1kP?m#Y4Q^KJ>LMs065}F+GEar2>IlIE!&}Y4>LY^k!nYindCg}x_JQU)MNk@| z2uf^sT7XZ%@Swn_7#PiOpm?1^|NUDI$-ll2BtMutLb!=lBFu)4SV`hJ)Ihv ziY(O^uvA%)p24q$AbkXP1r(+4=PH!G;d=JUn-azxOg8dvUzogdsC(hpyijPTehkXu zS1UdTFfZH51M{6*4Va%x^aaczSztZ{tTUcc1khCMjpOv50rOe=m0Yy5gg#1j95-4;Pfuif&2qgkm4IN#t6({5r?|JqHPq!t2aEU%*7MsYFiR+l=hx`EJj`{y9> zvB^>Q5zfZ9IuYOMG<+)}q0&>wBq!XsePVU`ptKOn(;r&JqwcFqor7=nUo#JGNS#A_ zzlB=;uXy`QR`Im|EUK${1?Oso9aFq16l9-F|CQ^pEC+bQ3er-6V^i6Jj?OFS2fYiL zh4y?heFKG%V4mQ2;&l0;P!;}6IBpM{rZ~V|_H&no?o#e9JG;wZcPVn0trhm(x$dsV z-M!{6FS*Mz?((F&tag{>?sA{I+~qE}yUS1AMIyZzmz(p~m&7hm5_?ykgLKHlB>{(-x^?Jl9ayy`B` zyURLvdE8z8km9gk={#cVQlQ02x?gB>PBw`kLVhC8|L-IhB zjwd&fo7+?%0>*fqMMv`5+y>fw?Giq0Bd}Jbe`=ixZ`|qMXwuES{-#+s-TtN}e5YHg z)P{4~$|s|1oTy8~na7TXTd#KtX57L-=bMy4V16dfMUNp;@FhX(Ds2igJH&DgXAeBvLve&sqMd;`7jh#!lDZMt^KNE}Dz;B*68U?-C`W0Wb%Ze!|pQh2BriCLF&h-c_O- zc5ds^ik*hBobeTH@LRv{riNl7gIFUA_@wC4L)%%Q>DLC3`8BFoKPA*HcwyB3P;}RF zG-CZ-w;J7T*^-u;7q4}twTe3OwC<84L3u`MgDy8l>ZN*rsy_rqm!!JtE|0&zdCNf<0i!L;>twoGHk`sWg0^uN2RP0z9y0ic~r>`KbQf!2~SOj&F-X22DoCD4At zk_IQf^n9t_&&R1pu+to>ynSU0)G{g1Z$WI>wk&98CQslyG^X%;=5JV??5nop_*?59%zsRHl##*C^~n+@`Xlg$za*;=2Of0;I}i$O>VS@N(*mEcuRtQHKrbSq zY#`>!rzxWRjjGCU-)SPD&6Q_%b4Ai9=2WVjNtIMrDY>V^BuG(iee#idO-Gqo*y=3e z0cyaD;d?t9h3C4<->-(yOCfXt-fiV)!Tzu`dUNq1|@207_(Qx=9YgUaIGB;cLT< z9BQYU&Oi}ja{(Lwg zIOwD)V^<%atV@?p8T;7r$!TeJ!i%lD(3YI0>o>npPfF#KeV?0B{Hii0hp^%_o&FBs z!T#Ascq_ExwEb4CI9=b6d^pXC-zYxI1wE9BMKplC+b zqhDTz4s|aB)~{0^Ge|E3SkA{7_Oe7HT3xj|{1-~^*(j1?=d}DDDof9N`BxDRaIC!o zHtEm={nA|8R*SadMNX7~q~qQ1exmT5R6@8`UHu{&&e4?0be}C5bZ(jjELPBhjOI9E+&xqlD=wqGrCna3kz$!+#dexLfaEfUQf>@WRskCzHV_tJR zH9V09L!p7y@JBz*6_b~L6OqTJtu<7Ea3~La(Qw|^a-f$bPpu=*x^EkKMwnm9)@-JM zPZd3GR24np#dGQUaK4DTZr6hT>l7gRKS%nPL6iQZj;;_NTg<&OUdkV(SqRJMU)d4| zrf4IFY;BJlfuZio!Y5C5Ek;g!aMgsxd2ZgJ6@#V88*^4>uXQ^sWLIXlH%S6Gw??Yj zugOMe{F>~;_%XXCdmlZjHQBrALv~H}Z>RUSCVNM%$?oaMTaf*YTQUo>TfBHcftkq0 z4v~1&*Ssqah5g=>Gfh0|lT+8TKV`%EvefW8YQsZWFUx_4vR>lh&nO#0(ehCIkQ@PV zvT@G+j``xYlMSyUB^w={lw(B7Ec06&^Pjn(FWJ!Md{7ph)WBX$lJYS4iOI$(JDO0u z60^&CcRBGg0J1ShHUy9YeEc)zV_zEmsq*pSk8|bY!Cwy`ALpDjkbK;Aet+_DsjBD+ zPrCF|<>QiXBO74#g}B$pJxpY4;U<>u8Jl2tvK9R3e~&bd~bVr z@d;bEhi_iUpYV$xY!7GN&38}S!tK^HpZ;<);m_De-eDS)^4rO!4$oGTF3S^HF|@R! zNa!iGvn|v2t@|WLqr{me7D??*Gx=~Fo+%4>~0JY0gp-#A9P zqEfm7;Z`a}vIKR&5(8&7siTaUt)lR$t#6upZOWiJ(axl35-Y2Ys3B#gdgxb~hxoo$ zLQ@GT#;gdZ&Vfl+Kkm-U#^*!hmZkQrd2ZHzoLyQHUv_%Q_~+#9DpY~P$Oe&%yGiM* zSb-_t%>VcPH|=NMt0>$h(=?O7zT5ximZ*~j?O!~*pZ53H=Dyk+pWi`CK9%O-ad)^@ zV6>zx0<2du3L=WsD8{1j=uA_6e^B$i_%S;3P(goIUIH}F&V#14I1eB3`JH{Xcf6f5 zt9?&WdnWMNi7dgg$6AjV_Xvv#4vH_E#JYl}GB`TQ1&?bhw4I}IGzS#0^)3G6WMY6A zdIKmdW_aoE-Xzsk;U?fnRn*gSTezzld{(apXWN@2*_Pr-J`4L8$x~(1_gxHG(11cC z>74gA_3Xra5|7jzHEUfWxnIu{1D40p;l8}1i~<5H=AE6Fr9ZF(Cnd@HZhzgFEp_jT)%?LVzw>f(=@AtnB}L0CxM?xK2uzY^sO z^?hoA#dQeqT>C4#zs@p=Q%f{s*pO-)uS?BC@y_q+*P6AhCvnP_%GH2X7Ss*1a53*& zKA3Mys_MrwQFz!RiRFJQ!O6`Wd`O@e*GPnBA3@$jea+>V-dmQqq#fTFSNV0SHF2P8 znl=*VFogmSMo1_glh3EcAai4Fib5>9)uTMdnbuE~LKS{FZ zYE{KeRD3Y(DO)TSOxP(k{DZG!yht*cZ4W8bm#yWarBN;Jd<&(HF0?Im^6E>Z?sSc~ zSIuq+N;rmRZViXsJR9$Nly6Q5hIQNSiraK<-q=qxKB*6Wub^gjxSSwv796(E6y+;? z&)O23-0jFM*^3zQjjD<%V;N8vfUFaUYg%D8Yp&!^>jp*j@~H^@kB@Jlf{1+(20?K*{1i zM$MMq0EJsr32iD1e}Da3+qEB7uXmdB-T~jRK`$)e1r;Ieq-QYKRNJB^sAEpbot&wIJADdJ|bN2c0+z*X7JI#O&J7(-aR$p2F@6p@s z8!?5`(dtOCnb1nkF=|N!m$F^eQ?o8jmH%6_vE>|=tgig(5US%>nVCd#kt2*ouE|BB zRjT|;Je&xA-^LAZ?<*Ay_~+?9@$fv6RsYmbGOkxvSiEOU_}UF{^c67lbt(v-(cMkl zeK}gyOupgGN_xY43QLEYSr~UAJv%7VGsowG{tcG+6wJrj*e+3tQ>it*7TUFQ9;Ied zHSFqyd3$2^75s^Jb*rfmwpLoRF%gvPE>){O&9JtJ$z@@e$(@xu2ilpS97oZTisW$| z3;g-BAz=3`_7Akk>0o1Tlp7U=*zCvfh3^|70D&ax3eG}JBn2Nc_o#i7C@G)Hu=%T! zD0!X;#TdQb;^1d}Qqa~ii^Ha^hJ@npK(7}qYL=CW0(yD>r4Kw*fCrM}o|<)Bs{GWm z#NyK`x!apY-diV3Of;~=>WPpb!`vYDAN(4|=v5;5irP3P-10rT_yRAU{j%>J=Y`%B zarXchxj6aTlHUUE=Gohhs!BTJOm13yp10A?@5JOb$!=kC-8FW@AgBDox7ww-G>{Z#C} zX~J5(^EQ(*;f?wei6pyTURs(66tl}3({C?{YVD|+A)?{?9jnQ`Il93Xwdk6ZpKK~! z?i^jO2=7*oGL)p?j;c0$*pqwSN^wCpXG1K;yQFW=zWOaZ)Y#LD;W3>kU9f|-={|bM z18aJ2=HZi1(1!RR-4!Yx1r|taK)`kj#5cN;J{d%WM_vFn-nEf?9)2%rDAZ-dk>bl1 zbkiUl?V&liq$Y-wrNyCbi%Ff8tJ?IKZ87N-Q@G}QaC&oAR`e;azWDs#sRsr6)77a7 z3hMkqBDmK+4o(fPJOj==GOI<553bsj!-fru9UD4|STB9LJ#}E>Vc`)N&neAE%8CBr zoZgUs%;DvZPxLC>aSal|A1N-}@FcJa_>4a`r(W?5#hcsq0_7 z<4m6Lw^{{k+Xnc1Z9O_;{MuQk=g?r3?_F;iym-B%!KyYD4Nx+AF^DaDG`AaLd^cKp z)=`YMvl*{H$aC!5iv&4+vFs_t^Q>>~h9~vBAX{r9A78dyo)u4^%wvCl!DCL+JIaVH zQRi2;agnuy-zxPXT$|WpkVn({kW@<|If>X;;xwtl%Sz!b=7IE=pMd*RSt%_)0S?Nr=HD$D#^2`FGSM+N*=ig}9Ob5Med+;y){v5v)>H5pBidF(7 zY|U851x98BcH0iKcF^KF4I4DeIPMYhj8jecGmQF}y1n*Kd?_HH{^TgZWONsKJsv_W zf)Ggvu}7bcj8cPpwlsY96el;P%FO~pXt@AE?551qR-T0K=e?euV@gu>2eD_maxkYr zi-x^cTwj>`Pu9}QGdDNO@A7bel`H9M#Y0$n2N@;z;ffjVFhJZ6G-e_?H-{5=uTh0c zkr2>gMg@)Q<&@K&qdN7od^CQpHlS~@6_4K3Vfh@%)4w*5aT2gdyqFud!40^Cw|x_S z9_oOW<)`V7o5h}j`2~vu1Jj8tQW1t=2zOscoeR~a6Jl5W+k`=_jT3fgJzzpC-uZ}H zoOx`R#=zW_s?E)UT+Sq~74#)9c)gyWf6bJ|>(NUSc5H2!Fu3*e6Nbz>FI&YUI06G# zF&q0n@Ds)elM46pVOBx46dP#!q;ay*8-7~ zYrzlW^+PS}97YCw0(uHn_GM|f$JBiE%9snM%Re!<@Qts-y<;8sdfB(@9sio8BbuZm z_!A3%>a=nA!^>RBMrx+zi+GxD+Y*yS6<{fmYy^*sq(Avs79PCu&F!gJ#Z>eqPto2> zn-eJ_bvOkriQuk#c}}iNOtmIYq}G(aN+d^_vECs(Yiq8ayUxag7B@{aviCs(d8d6d z&|8* zrjBgLo+mZXZItsZTQhND&!Lq1&f%5deE9E-BX0zop*?&PLa`EF{&Q?o`U zlE;u(VP!tV8uj#vl4hLwMEDmH40~SF8kI-+#8&t$Bnkh>$Mjngxx>%pQzM@Wy*(#~U)AtSc1N6m3w`m6Z=D}_qxpuZ-?SJvEbzg&M_PsDaSpTL zAs&?0<4Qk1Jen1hW7(_(^H?pyj2C-%F!oLYy(Yp-jK`@nXarl8I6Agca4`Jr2V~8K zSDePMc+a;0&kH9y@KnQOs$#Avk=jM2E>&NWCyrr^(z?GZ8aWVWW8vp*{iSRa3~Ui+ z8!=Q(+Py_;zgCYsX@RegtaW@1H#9nOm5D^~)rNBo#{20TB%a=i@2#4VH^Yt7;wA_v z969kt;j_06DoWc%?eKG((ib&RDUQCW8=bxze!ZDb2S;L;nFx$%@o?q@y4H-X@NwZd_`Y-z*t`zbDyxP8kXcgy=T@7k}#;9e>4yx*XP0 z>4G*Z_qqjkS#q5fZ@C3Fl9jYX@Of`Wj=*G!uVmfD308cCieGO$R(drugQIdM1umFW zOGSpv)Dj2RI}NV5W1ka`1c4pH{ro}i27x9)pcV)u@KvsJ_&cdtcxGc}uY&<1QcZx} zq&hq~zkLp-vZIWDe=nE<23qA%6n2gkCr|_(gHy3F^nlSnF?B;AX+yL=eU8aG--O|O zWSyw~>hNVg*?~E_S*sg)fZ=gx@u`pTPJI5ZqG)?wK4lO~EcJNU-kO64>1XpdVBd^> z@!$mgMn^{{?^-AIIpgavqvhc6+4r0po}pfcKZml;a+k(Co-)K)c!Zzc@^S}<@Ee?l zMlDH0Umj`bC$Bmv!T#ilWTG)O{NpKN_Jrr*-HvGJ=X;j;{lQj}MhQ`R7Dxp*i7%8B zd+?|{6>K`mL{%zy;^8@nsuo~#Rq*xHgbL<_X{UlIlhd{=x2-mPf!D*0VFUFtl7eH_ zSz!r(@Lkt`6Zkp8QZra0lQcEYVW}1@)uAXdSc+oB4oib=Jt*2iqBKU20y4Ebh)usI zizTF->cX1+bFlPcLl#R^50>C&`W#TAHr9qWk>S|$Mp!-##H_(S7U+-T9bV{*vRBX_ z{E1cE?D6vC#RYib=_1uYAN$cC4k&r{L3q)qFp+e484}*Ag_ksMj^X7}(BtqjG~VIT zC!?Pp^g@c@nQ2hXloI~Te=i&*z!9n?vhA6KW32LO3Un_3egEnj_^v48fEfsi(q zwtzH-h8d(W6SG|QesTt9uaPj>^J<1j!r9R9LY8dmD;Q0X#dsl(wQEb~fuR;z=kTTr zT+{l1TJi6CLG6jE9H?D1sW;T-q(7g5+Bh}&jqn$z0k!X0FeWcPfs{BU-!_5?@2 zB^+#CpIE--D~a|E7zp*Zc#Ya!p?WLBk8H)A>;?@&RV=Jps>Xu{jq(MK7TqZHt{Yk# z4Ujur1TiVQ)ZrE)8acSJ`8;mQ!atwA*$`Ht;wx3WjWme@mbe*Uhdc9=+=`nx$NqLx zo33m8bpu!2wd=YiBe-h>?wZy7(s1-~PNP`)Wh(zpJxe3+wRd9Ee1>u&hI9$p~x8aJ7SWyVMJ+a z^iIc_rW%2gV#}?P5s8$SjCm_1Fw81;hYw$gr2S3UpVL5N)o9JBG1iHVdUyc6^p%7A z&`Z&_E+&K!%{|k9~$R|BC?7O0&7-!CAEX;w|I5jBWv_i51N_dOY>vJ6KR$W%O_T+VlBs*A>3PEp=~EtvTpY_8ifX#j)O99WgDNd$XcbO zN5b7NM^ZQ-jU zkyLBzF;pGok~F;{lgt34+_%f-FtY7RBAzs*G+eV}P!aQP$wz-rdyDKC4GFogBs_ zc%?{6DPd+Ae?0!L@Sz$nfD^v9mCV{Xwa2^HZ1iLny<+#vkat3h^IZJ?DUspl6@PGcU0+p?%Myl4+YbpU4YcM zr{ed$S~~Mt;bXjb)-3KdE|^+%WFmQ(i$dtPvhe%cw8@Nj;1LX)5%h62(Yh?`I3Ulk z2IY6HleZ=CNph@|?yqWE%#Wz8luFKg+gA)|vmVe4&7qLIq_!}j+vv86qUJdXu{C-! zQ>H4f2p>kDsNhP;E)evl)lkHZu##SuHym>B2p_GmwSb@5G#imB%BT7w{<)J?a(DwIdOG&F7)EB#OoHjuym# zPi66r5&8sGTSR5A?zM}Ocp>x9W_^@m<;HawDu)|A^lFunI8l@zFZ5Q6>SMG;s-uC$ zS5@br){FRC(t0$1*`Vt1-nAlv@W%qHs(=kmZ1!smV0H369d@>B@o|1@3*OsdAOBtt z3n=osRq)`K{v~?wKNm#1koHpr$b%pnz2^ub1c?v;p2GX-kqP;ywfD0W_G^gVPhoH= z{NpKZ4v6+hb~1yH@`pAEL)ZZG&Gs|aMTie?%wO(Ce~=UD4dN?oyl65V*p~=e_}Ed- zpRhWRnMmYj{>==;O_RZ3SJprj_%AoA>h_J}6@S1<)*t#U3m~tlSko}bBtf&`?;VBF zePq`07UNKOA9?S52Ygo<>iAj)(k*5WtHH?l72#Z5 z(w<-ITT^rX+f`3n<6oIX<0s+pW(BCA{ogkE*hr<*X*KPq>8d$}&m_%*AAHS^r09_u zuunszx}M$cv!vt8iX;QS5fuvGJE`}3Z;$Y!r&Y>Ju!xBB@J!z|MYSNJCY16I_yh^O zpmKh#7soM7&|*fUR@v-3YU(RXqo(=+8~$>Ivq?t+*EVaW`q;j*F^ZLsw}y1!K4PnV zmv6XFFadzSuE`(n`7v}YP&#CtAP8DCwAxoCgDG$z=JA#C9NoA|AHts!Do#I#O$aB~ z!;?$+)TckZL2tF^#Xq4FWS}B?JIA#!M_rYLZ+OdGsk*@xaxm_xbcYIpcm{ol1ih6U zb{a5mRe2abkV$!SS*zluU4C1cN~zGBlxI7<#eROVGW5!SVVBXr)P-jtmSxG|35J8~ zoOxmZC%0Mx5a?`jwTGPFg_;|eMQMicEi1xA0ut=tV41~Z&{0*Z=Z>0K7N7re15Fnraof*i}WOn&9sY+L~3m7$LDaJonOK11%5O zbiRBZG>yzc=y%(=;zB)fi-FG+sCQkSgQC=#Z!VG-U|SaH;5 zZM`#t-yyoE*1VM>9!4a$Z5_Tuc^KBVD^MvtrG~(d<8w+ZQvU>BIe1%yUubECCE*zaDDwoM zkh{J20$ao9rbLC<%e-VSlkeT}_O2?$F)x1KhSK=ed)l_m5gT{r?B1Ptq=S$DzG0PjI9d=p8k1@)o44&xJ8s{Vl*gd_-s@2h%4NUTKewJMs<3ss>PlEEg#-^y zF8HC2^L16moX4$BL*^h&rvE3FBYt9~f$T zQQD#*?Hm~0zNIAI^<|UOOuyqD%0{)m9~_LEAMaX2JLYZs@TwmljLug#gV7tmFIudK zcP`RBOcE{LjhC?}xYhyiY50xb8CrB+{NUB`t6wswIO=j=!t!n+e$aY3r%QR+yrgi? zYUh0ITOp~Se9|vH z8O>J`8K2P)(5(5h&}^@R`=Z(PDk391pGLE0)m9M}4WK6-&Fnyue#)>sa$>4p7s0EEyF_zWeohLRuhP)TVV#Gz?&`QAKME^Xg2U?6z#gncsb% ze)5bIqgFD_`dNOH`b9nZqaxgS00kgc6=^&9qI8{snDdzO%P!O@vZ58?HGY(wFOP%N z%{*fD+cLV-;uvyaP5;6eVb8Ttb}ITNeTi;@#;sUt&TDzrLN7T=OE}9>S|tEEQd<8l ztOlcx{C5xXKN)s&mDb0+ETy&aTTW?ReEhr0sA$aZTOnoi#&7)_@%cBa45!E#=7p#A zNwBq+oRf>L{s>0lv9D1$S4J^t(&d-zui^=33)Mrv+&>ZDjZa(c9<@3aW z@0Yt48hPFK@1+||A2=m=veZXVzECULW$WD76zTnvexT;2&mz5N9+;8dcxRE`{LC0> za@{-dQx%;hqIgXuMRz1Lt|u#P!J_a6=eGjH`6n3ID6DZ0)dLJnA9sz8*4wwu)5juT2ulU;n9R(vPjBFiG>5 zXp8v5h5A5wb3O~V?ikxw2kKSCXY7CvAXJ2{185$nYb|BSv&{+lJki^KliovMY43gy z&!jls^%L9LH%G|-oiB2PT-nKyklQwM!RV8&^$dQ^h>|1Z9gFxTGWNDxdy!#$2+^{9thfyq64~3MO1{{hxRXt3QTiYQTwaKi6P7Vd&}RAH+A?;H=U9RmBu^VrZ0Yo(caAvSKeX} zd*SD>iq?nkj>(T*M8nR@PIevfE(IN-H=nH|Ha5!ym4Ad?OB;dPp=oE4B~j%Xv_hE) zzgU}7HMQo3yp66nk$x+8#*uD>?|7#nL8YCnk&|9^`mmIdPPYI-{y_{azUSqCf|5K5mtOk^Mt_kc1M*x;+?m? z4SlH6+R#fc{W23>`ey}Yl6YKFiIoCmk%uzq{fB}wb(umyGw{d+Wpc#yiMJ%C8ZIyN zNAqO(Fl%O3T%T0uv*P-{#p4_M4-5`h6Uu`&yJ5JAsub{rFS%*bF*!Cs?a$)p%;6F3 ztlL5PusdSlEAN>b$)&YPk8CLf(L0V1r6KaYf|{R}i!2iX$?u!|M*@+^2!zuj(cDP* z;;}g?GL;!Kb*H_3hS?$iMkKbbJ~AHGsW#s=W-2QB6WWYs4Ntg~3HbE|67{F=4JCQ3@_gJtYU#g4+NAbf#9 ziDBQMYY@BOm7E!s1NEH}uefGc5}q|%%Zs8}OkV=UZ{Q*4isV+9)zgmf=>ye(oOzx* zmZ}TP^Q_uOtyY8u5g@f@^!@Woi|#8|sheL{qa$A;h<(^3ftEISXD{SaI|HNjk+xwXh@`J6?@Kzs&LcDEUu8zRO zM#pLpH9p%)!`IJ_$Wv2M_rkL#=eQAQZJPy(`e1KP_n9JARYEkYR8=t9az<xacL9bwrxSEL)e{nBLollTnn$fxu}q zfxvW+q$CUa@StMXBg4cPJyMQ(>Ka9 zpjUR=r+486>U?2hWU9bB?_=1Qn_-ud{!CFg`es;?Qm%D?Qs1vH&DaY zyY}9^z2}zfQ|f%QD|H7O}G6F>v-7$SBnF>tHgkw&0SIh9LnKt z_$4Y<0ktk91gspxBIycZTicxRbQAB=+G?f~RHI{u7btlRw5&S({2H5A6Pb9{tA>b7 zL2UPvV|2lTQcWofR~F@&L-7eb@iBlJdTvJt7OMt%TdjT22GSCCT6~sd4%S)S2AiFR zlrJ$iQ#hcRqXxGKJ~N2W#L1vv4?%SeMc82Y@r#^+O$0uJqcnVBcSi&-;z+07kxtrR z@5J`BcW6Z5C%dq3z233%d1sS*XW7#^uEPQLT~w~1t$YkTOqY+L4`KO*awO3I=~t1a z@cX~De3?7;$FBT>z^P>R3>9rC?Q-D{UykoMb?Ytw)lDe3O@Aj!{4_KKEsV>QNbowO+U{_64UZW3; zC`Tk>w?n-t;=|`n(cIa~@s4w2IkZU*2*+TMi&!&<7Vmse>K^@2CWW3lu~9Ue!v=%9 zNgrdBj$v!g=vU!Un>&xQcTQ_0Ydeu(i{|zn#Viorl#q=`aX!H(Av0~Ev24>r`2utnNq`R zCpxH93L?C&0+V@${-#X>*;AT)xh?3%o^Fb_zbMe=NbDM`h%_zi>BFCDPbWT;v8VBl zZ+Rm&BWuKvkKqWXlaKd}hmjBq1JTLp898|8B9iWFGM5Q5K$?ZbOZHPM)EMY(y6R6p>GVO}4Fl z%kJ@xL7*djg+XLM2)z8Jqw*L_%L3yw(togS&xG1UJK8_ly>;-o7t)tm#sMw|i<{?V zM%t~|vzxx6k+#W}$$XA}NZ0WeFMnB=57K+NyDzFJq}4o^NFmy`IU{zl3{RjMWkesX z7)n3B*aObq`DeqsNek>*t5@5MJVIPH?Y1;r%v8Cwc`o9>lhYHOoW%$wAnK;R;oJBv*I;YPwPbIQC!c^9!%vmv0O1j`(I#ZBL zh~9uHg zbCqTIJ3q_r%$D!P(%dgiXLe+Q*P23Ee91rJPbyFAnLiESPtsCXeWJ{kgr<^9jKw4U zA|ukqyzPx8KoyMbZ@sSb#{%`-vbF=3+~jQsLsgX-`Pdps zKC_ET_o5~-iqvho#a6s$dVmdK1yy81!h@NkE<|PYqm3%U32#Ia8nwGp#y@JeInky; zXrA?4sEib)={uTAjW#L+{vn&JyOePz+5b&#&U(Tf88@HadWV-H^L%#eM+mB;-X$d1(a3m*I^$~`d@l=>pJ1Y*HkYpu;#dS`sO%URdeWBW%vOe zWt0c67WAr!9{i6A)*F1(y+d=G-qs#o+q>1ZgqrD!chqpDduo_u2*P2> z-(BfQkA_@SVbEzdw@2eI23>6`Iw*gxU4t&XykM&0I`~WBc|-FDU50w4lVeeu<#pJr z+_dOsft3?$yW{`S_APK$&iVf{)0~=ap2;?v+G21p5++I$#Y{~+!^9vAqOmO54MXQ- zP&(5&r{*}F8Y_$yLToI%S&R^-%XV|CSeLRIA0xy+fG_1k|h z=6jy!`CdNX&;9%P-Vz2?N6I@bE$K#7{=G_tEMi7(+zeL&6IBIj=de1z2wNc$O2CoD z+&Rpfp(?R+_%rNuEb9rqi-VH$-tGbQj)R0SX6TtpF5Y?)83QvZJBO>{8z!N$zr0Hi zxRuJFPp4GebVyguce_MO0j9(_gg_eNw&6=us{_@xVXXEdoInN7FhW#It|g(fQf2jK z`=4ML-@>t^>k1=SC|-(dfjncKR6bpo{!j+iRsA71Z^2!Nk0w*%l}nWT{8Pm%6|tXD zx)JgtoZv7qxkJyuDQC?-Clf4ceNdqEFnEFl1@zz(iEiQ$sgOMqgiHx@=N(f*;5Qk; z9WDx3+!PcaoD@NAA#B>6OtjVKt#igBDh8!GQ9-RI zb70tcuu-<=e;mzJy;}YQ0awf}x>+tipblG!b>PGXpzB~PyYaKmbwZ7~_89(4K{|}A z)&O&QWYtkmf@__g*jowhm~KLXW9#k2 z5xLOKBcSpoj=(+Sc^|p@XN-f^qx9l!sA2?uwN`}IV+**VcIYQ;WVRYca|81>>|wTo z^7H!`_V(I=TzgxlzF84YmM;TjiMYCdtr*4OBGDh*5yNpNPBRBituJ;`N6IJ;b1sCw zxFS-57_vS25_iUFJINekCfHvILP&=hdM~j%EPHz?Q~Bc|)&=GMANqN6#tr=<`aX1G zMQ8{|V}tFJ5_kt&u658!-?fz)P1h)k-%iNeD+M+v+8Q!P;RaZX0ABQFG{L5>m-OrC zSp9sdG`&zF?iD(ITLDz9Q>c2lEFQOA##a2%8hN6- z$+m5iXlc6NmvmFC4fUv1TBsDKY&Um-F_aC|GSgSe(ImY zJp>9Yp-q+s$|`+GT+35casASy1fNNK4;(1OHEbO2Tko{lN4OCdSQysMUj6`ou zm_$Z#2|+Q_kkS$*@>_dtraaIjuIitpE<(00{N?2g?17z56- zIidHx)AY+5{83M%djClIsK#+EU9_`^=Yk_uZCF7$?SQMEm!e>Dm zTHB1^_q|{>hBo8sEL{B#3phUX3GEYUTM=5UV?l^ZkVTv2`3)Ycvd?;HS$yBh14tybr#0izn5URz5O3&UHJEamlq2>n7Ke|G@V}@*lYyUiKf~s zu?Ic&D#uQtWXdm+#dxkB?+4Ua-yzw4b-_z{b|sKoQOUqB&*tK(P~1MOCXzJ5i#38x zomL4(T(hRx8o{=>^h$dDXkQqGDuM60YOgBVDN)7FxzjFYgHBCyQM+PnjcTQmDY~@_ zoXclv9nZ>=Ku4--|MqOc;OuDTjo3{S4hFR0+^88Z{;)pZNgN<5B4h&5!WevYc(Rk( z?qny7&-#Q19sgrK!*Bg7J^lkA*~}9$)lpBx50#Wu?ws~CT&72s3kX&v zfQn(2n?2#Kc%~TzMZMD}trAhTPO)~|TeFPd3{4U75kjgERiCm6#}(SVB|N2U00!Tx zQ;fi2)*nZnBP(i-r*#LzT70guU_xxkbTfhffW*OB|k zX$a|2!i7{Za{8D!{YL?=MqqeoK~;PZx2;xA7P21wTEV-7&1g8H=jvE3ZH}pt-z>ic zT8CoqBYa2I3BIOihir2{Q7e6k;~m>eH%!cOmkZa5m8K@E@Dy5ZD0VkKt^*L20>q9e40E6>WHCy zucRT+vpPV0V3&+wED?yoLe{_jMyZ%Uf`MBIY@u9+LGfHFSkW;ud+kuC%*E*B^|uhB zLTNFeRxP6L1H)<68#XU#rKNbP19LGM4bVQ<>a?B>;{J~sTkkJ$FA|2Ox%m6;gq!_9 zwt(JlFjsc(qu9V&yO<3+&Bf8*rxs&tv^GAb=$36Rq;)*o=AuDC^I4*~C?q(Mxw`4} z=Hi7NN#>$3T{sT{&v+Wbd8Z|Z^D69c-cP$lNq2|2=o$5M+fYc%!x}8$!!R~lBd4FP1FhodNiUo(Kd z=-C)F(*MLb77fEOm2vFu=;MICA~cNS*kAox4WZyjLVZ|g9x3BkN+xL0Kzu_j6n-3Zb1xfh->QmjPZWTYsArn=P}OQF+e zA@K(5`SENBrytrcBC z-ft1SQiWj9^${OJNrtz%r;=kdBSUSNZrV7jR!2*rdT1*^Yw%T4$=UC+L3^4(nS5zY z*+_|I(qVsCRwEub-zmwEI2)fB@66%ADEH^^NiA(G!LrS3^bH(L>^T`%K0{ho#s*uj zM`Q^8l1i4U^YWU;r4azBr9hP68WX`uF8}a3ajUEYDq*99*d2vnLv& zH;V^KaBwDBxV+j7UsjBZ0f03R*^b^+WYC!tU0`0iaOBVY*Oj)%c&&mF7v8&sD~i$4 z)-0|>Ma$6vsMfj(L(AAV#AOL^iL>8%(wVwp6J17&h)v=cczXGA*09X{QYl3Sy??pg zBF)m1ukEKr+;wVWQ~CxOL{I28;#V$zP3A8MlAazaurB@!CPA(th;PAZioI_A6^SR3jZ6kXOl?|*yap~ zq*($0KzZETG4jo+XA5cTdkrw#O2D#mJu2ERN@!ca{PA=RCT6?koc)5>3(S|10OQ9Y z!OeF+ecKkj0?0~$wjI239^C=qH6qFfuU{nH!#QTBr*y#ZufeA^*#mk@2i8gl@FoL& zDS{-X;1P_O<^5$!9aCqbd=Hk7y^aiByfacWTp|r5qAoHOtLNUCI$}-PFEV?W{*ub9 z*epTR`=jHClEvBu(NVw!;Yh^Qv-N_jCsp!@N*X1B@_OV(+xc?6KZHR)aJu!IMk#X7 zk3cW43`#<8GXEK~4_Er?06b_!BDS`IFoQ90_Y`KGOa#aLAITStrVt0uKCElj zKACd;6-syU4h2XknI$E+;d?^KESAiYl7H1Dvtsw681(l_W{sTFMauD9z=U#LSgwnd zTcFEziQPXgw4&7C(o*VcZT9voT?Wi&$aRq8LhDNXpY1C3?P=kAjLY&<$%6}pQvpL`H3TR>oT+>fj?|xcnMvZEM38ww5v;~?$l|5>e2esUI51PG#n;R zg3p-!4uNTR-eI-aHiAMs`M3Z)(QO({y?Xlg^ze=*yyzCx?hObL5ttn4vwnPCZMIQa zB%W#Lz^D#0WVcb67DGk>^w!YrDs~%k#z@DlaL{!ZJ^fWRN2oqTM-uH3 z*WH(P6Yv#5MHl~c=s(-U^}+b201yIlO@zADq|K@WyqEEic#1kdni*_2gOMAiWX071 z$kr|WIqRp88GR9IfFl;fMO}NUG+c3h1XeJQib008@ZGedQiYs*$N=Fy>nj-*^HylV zKBJW~9A&QPkC0bl$g~z62G962Yfqi<>A~NFPp=TA;YjCOZ$TI#`$I4W#s82e$VR;o z(I%_n)5|?$zbo z@PsZo2*P!-r{rZ&i*TOF@Pg9sj4M3+OSLb!h=S)qhm9t+Y%Q?fd$9w~+Drs?G4LwQ z%|{x}tNjwBz-74zmmdlKU3@WzXr(!jm1cYw8InHMtzLvj-gH}sEY{(JzP{oP-d`d*nKrK4&Bii)77x)0PKF57eX##4FSS5NL1eafDe^9ayv-8GX6b zF$%r*(5hjOWSP2-0v5+G1G~cXvNv_fC8KZk(h}2x&FwGsM{-t z_0$`r2H9k_lsXJs{IOedOe`syHxVLfhI-k?hu~cArk)D8ebS`8>&7mMtuf&X3Mg>% zltF+-bQFbkye_*$%GL{`gc}t1G>Vdl+yW2x)0wxZ37AIt6v@6IocEW{K}GNj%s?h6 ziP0)%S`$n_&f!XZc1W;@Yuj5K^bsJf>QJ7lZcblZue%m>f8EId^-b#J5_Zsuj>L)$ zHYtIuB9Z~a8H9A%mC!u|KAhJZKmxcts5a@FGZDiRxTw{ttqlXfR#?KfA=)B-*P7@; zq}IvbLA~7wLvBl^O5^e=`=K{eG*j-k7hvudF#LOSjQMghCGJl(=D$YJaL)eBYF?r@ zoIj1=&8&hH1>K9q#fP5A&9t~qi^eJ+BSOgQ6oi%hs|&G0DKV=x5v9eXrR4JO&GH_X zoR`&RSUCN#6V<-hyQ6AdGcN($+1{g*E4S{!dWCd=B!R1XmY`R`>K^{bNA-3fgr%!+N8Gtp2?{ z)7SkcT$-E?xHNV9JILzadyqiiJADf~59@RbD>}&P-)k5FpTbnG2O*EWeT?9Pe2y#r z!|@o-o4L(V`~x7}?%TBD2ZKZFI~*Qy^}rWvXg>(%=gDlQ$oq#QI|+2AHNAtZ5!V=J zPps?yLH4+)w~Aey@=pkV9}0hpy#I>oHzi(yn3&Pj$G11rbG8|#J&AXldw;`u^*B9R z+dFpq?J-Wb6XPcM@;ts+rye5RhBknGsjTHK9N4o`4%J}dVZ9e;%$L*x3}CEYtc-sJ zj?3NCZCX!rt&cD0jNn@Xli>R47|Snqj|&TAYc(i&SARU-P%r zxziIpj;7;LoOXcdYk!#160(@ zYT60>^Z304{6_-rN-AwxkCojWovYhfghuER6*7fOBq>}Qf+RG7Cpkf8mCr8$B8|YQ zcrcmUd$`xdiO^<-SF%|ZCjYi-Ry{5>ffOX_q>MPh5yG8X^MQ?;s zIS%eArnrLl0N?^eaNE4^AT}7VAnHxugu`giRF&b<2ZmlhHX@B=7R(p{5Tu+WM=!;- zRlUsUnb=FToMFxWA)%M(AR`Y+y>uclz)o^6&p|(wtD(ur8*mD_I7%T_;`C}Xi+Xc% z!QVMKW_TFfFL8h+W-sk&HU~#ovo-2)2Coqi(8JDk{jc6r);-5LFeuGNM$-+*FhsPD zmNq9VXlH#>76&)*Hu*Nf`9ek3Lvj+yD$M)my^5?LChZ8w3bZ9MuONVqmf5}}Up zU_yARwD4@pZb#o+zW>?WG-8aRB8BG+yF1c{<4fc8jZ4d*pJ8rk!o`@xy~Cq`gmB(( z-gmr1MngXHv1bwuNh^)W@;b6uzv#tih&A_fcuH7eWe-zR{M9ch8vZo*>C`XdmvF;U zNgA7(M3%}^}{M&(upXf3s{Y$~eT=J`bC)j8T!Z4WAsHCc$EWTp4^53i5`S0sCI~1b- z-g=6r5aKjIA?xttu6um>6kn{{d)WSawXo1XPIp+y2>eJS0)c2zoMbQ@AP|H?n>>Q) zI{I{!n8E6`vN+oPX7GjoU?yu|dF+!r+ga&q>+6~YVHbMcU9n-Mz; zIqnhY+TOw(d`4VIG;nCc>Y32J;7|%iGBo>twBBj~**K}Csg^>oZ@_h+*JRSGn)IqR zngVVgZ~#vu$lwQiQ7iPr^86(vFJ9D`{yMr-V3E6bA+s5Nz+w`)rOh1qf#JuIK6p3b zy;d`HcfORlTfCp}1CqP#O`b_H=Nje;$t$DjZfSJ02edH)O{mOha$VQGM+RKhGtCfU zGSE)=VLPLw6unZ`o*|Z6$Oboa!{|63Cy~fC7;gz@hZ{uJB9{S3OnH2&dbbHc*3)Z7 zwq{9GwzdrniqCnDxkB;^inAUWgfptalauND^9_m;eS8C`m*xo6XW3BW$AO{ln*cRd z4-jfnzxODIxjmTX=7ASqD7P%7-S&_WkLo%)RAw|a_y8x}P#5XJx}Q7EsT=n`OD`0% zn&r2xx)jc|>be7}>)n}U>cV@a2TN%$aa$=kT;ghtZc3}YfE=y8=Dy}Zc5XlF4P z;l>8SKXQvPpSX?w2Y*1uSXUwAIENT!q{2N;4RCDDoSp+sjaZsHAzE$p*0e-JE3;H9 zWl61IEXZM0`c^VCA@bn!?Wa0?ZUpuS$rSlS#KH|q;2JG{i7ZtKw`EI^fr~hypSdTy zf%&mu6Z>rIMOK6BXB>gwWH3mEylV4N+HKVkwYczKM?EreC8=bJeXJ(TKvvZ38avK5 zN@><|Ui(6aWF^?)ycgdRvi65jBIMlmXUe1*x)?3fq^-1W%m!(8G9+si&8>LM8qiz8h6yiaxx7p@^jWU)gD*g8J}7QEO^iK~!RoxJpEDX1^-27i&JC zO56s=eZMNPD*I=s#FvU4R`G~RtnEN0Udraf6$em>Lj*`$B~o}qB~FF{tf5Ne8&Qes z4Y>T#EGWn^BwDcI9@kS z+>hsUhIyxn81#NW3;n5ZLr&=h$dCO9tR4Tr@<^&es0Aa?A}FG|bga%&d8Pb8+f`Kh z_N)|ri>+>2-zr-jSGmx+R@8~O+e?wBVB(0hp~{7ocU^aeEt}#nCac^HOVi3Gkgrv4 z|MeZH+>5nbR$Cun-JYo26p{#%KR(1Epb_}IJsy@RJP0~$JlrmJ2Y5h?CuG~5_YkD) z5D%HwXL`mYzdjuvXnH1{ZsWmOX#&NoP0z|d9{>-1)(IYvT|3U0)?XthNc>ALedGxe zZ*oQ9=fZKa1gJe%rm;geVcI|H!ym}bbs2FxBofeRJJdYPVK{XPyASw^wju1^9tbqF zudO@1t+4{D&Dmo+V~Q?`H)I5U5b`O`rZPwOc1e_`y=z#XFDV_p%3Q`UL$12GSWm-q?T}?m(fzk8ns}_U~F4^+*5yCpnB{1Z0f^+Xa!7sM?-lGw^kQL2eGSP-&t93_9Q!i>FAn zbrQDuDo;^(#~yr9XK@wI^QYRfnr4uD$TMk)SncSnU#}J-b}+~_t)qSb>7sC~YJpR` z>6AzGSNV(Tz)j5f&u^f=_^9$1SNtI8Ju3;l@clbRuRUVP*TkZ~=!!0)tC$Rk)%86v z$!A;(l)@iAj!rrnzXe9|D=-cBzkV>7fPu=x@eYrrc=Ue@yKVc4N=CJxxJ;Zb%v)3_ zpRgQ@TjpO)UW{BAcNu$qisH&;+-yXS=4Um91tO!}gmL3z@}gd~(ZI?P{J+` zqd79B_23B!l2f82$J!ewt&Gd4g7-^WHRq9OjXp6!a#{!o$$>63%Wu_%aHDi6+16o< zm1OI%ech29m;qaI0HD>{&6b>w##qxv*us;>(0#llt?iZz+pCXrZG!1 zpGYfN=!15p-+3*aS+YYH)z-ZK&@9mj+#T0If`U$KpjQX0F370Ej`I90RORjmRThb0KLsgY^^}oe}w;O%7cgNbfi_s4uyGg-|*$!3H=*y=b z?+{d_a#~*%P&@P(PZ!lfZS$vp0qAX1GquqR@YcHFVo@`@FOp=Eda~40=9^G63lVzJ zp{TC?uSJK|V zYsMeSB<75;m88Co6X|@uzP|2Q{qr~Vb@UAR_P6zQ$FVqjYBc5g_I5Sq{~MI@;nv;2 z2Kmv|2rR-6y&4w_DO}5Uksw%EX*8|GM&oB!=fR$@!>4B%}Dn z{F?3z?xH1X|85b%#iR)r3+r`5p)oigYtb^jW~kZw3o~>!7sjZ08GAZxopr@7(C#ZU z)C((7(4=*R?prPfws5CQ_cT{`)_k2p$M{{}aQIJ7=PxPzdQ@g|T;1t|tkxztm!JV6=pC9KS` ziOqZxH~7}0bPNRuOk6(3M--R>;`p&Q(rP(hw9xe`nY9Kz;3ea6=EJWP{=1%LI%&Kr z>?Aw@qC(g)9I~!MEL4zA^W9Thb|qauoHVQmH&O?u3wUoc z=F5G9%Kq;{E<_qO06#kDtyk|S2fm5-2lT*HoQ=h-9k{PXLDm6dVo8H~ICGW2bs#5- zBl5TtmFTqC!=j!E^=LXatL7xP9u|GdS9)>^3@#p&nk{u?Lr?wuW_*G`27ay<;BxF}KXl=&jdwg5xq` zf51-9saKexkDc8&qXv}t+PZlQxanr(w^L8WZjfIrMONRQ9Am)>4y%3*`Ha1SHF4ji z2y@D#wP3v9Goq3wR|1hMsGa@`{GE@^Ykgz{lJR#+B5L=CKj8WQ2mX5R2Y=nu;jhPk zi@ymKiXT;S?Ft)zV744HGz4B1{)e8(O;2)0KDb@i41JnR-L5n50F7PVL(Q;{>r>3p zKJ>sp3KJU{1C-#sqbii{WZs!+hw z$7p()^ePFo>5ro_y#VlKrB&MQ?2A3%b==M}j)qarp9r>j`|#~w?6)*972!HkbUZG6 z51x%5X0XkecLII{Hp{kXPp;AQssghO1{NPiWqI-L<>&Det*gC(qp%D60|EKv7wq?M z;5iPEF>fKBQ7N373@#yaN*V9;|!IR0a>qSpQySvDCz!+A}A5^K^2ehOdU6d@{_ezAHv zqkEk-Z3k}W3T=$-AX>WxHb*Z5e<7(-Nd=Noa9WR0k7JOiZQR*=N!_n2YCx#Y;o*KAhJRpeAfSIPYd>@lr8*Oa>!rfRf?(V!iey z#}-@ks^dW|qj(QCWq!PbU_;o80l)OhA=rbV{Ch@`}#R#6!)Vq8Kh9OuS z4V_SpPdGxv1@ep-OxKA+Je)(^aU|MaqCHP9G%JLQIgW&4OI2(s+)yb=qqOU6aATzy zPQgpM@RtMw1{54n$&MGJCHN{KHb|Xgt_J8R*fkN+_EF`^Gg;E~%V2Jc_joH!-Ai}wq zRUc$gEAyQMpR0hwAt)=}=OYWr;>|;!CoNUR^sG<<5a7TZc3q=PbxD~8EP7$jgeTCI zT)pql?!}i0jKD$e&d+6#i>3E6Z$ps5TycO=R|m_nPK!f>K`xI`O~Jx}ABABQ2CW}n z2E%+9cllEI7gfg+n3i!Q=L6P zFYQJ3)*VNs?IlE@56+nvG)G*sX)a^{|H%bn+Fi>)cIw|0dOxA`LxRgieI%Q%v2&=r zKsF^Ei%dq-$tAv@4mX0rA@(}ON%#WmS~j4q)YpoSH-J*h@P9_Ei<#NV4Z)G0h-*xL z`G=^y*MBUBlc|KK_%VZpiPZE z;2cuY?G1z$GGg^Z+hPG)N(4xpZQWRv0!#Dg9~?{5ALyEThhu39z--zv#D~l9!J4p* zLoI;%20-n9YYzb{Isuv%?;c5f$K&wO`$=A%r${{?k4x^>Mvue;tc({&kR*cyUIj=8 zC4+S7kPbj9!3S%_r+V~P0D-o_O4vgGiLWHu%%o~7+V|q)c<*l zZ(lQB2v0VJ{^j4X3#D4{MmTb@|MOPgzFl|}e!LggbllCutBT-Jj0Ja{gsr15L!}5X zU{bZOPcB5uc!FfZp1$>7Otg<-e2zYlCbhNV6QCuADz@E@DvD7>?A6HBH_$lvQ^1YV zaf?iSB=OZqyz=b>cd8tN<&n&}M&HgWtCzycJ7L%`6s`iQ!o6=s+Grg{2>)*P_RM92*v&}q4+n#7fckiE5se&lu++~TjO?vMBNKXS z;?jnVSZEltmXQ@v%eyD$WW<(PzdT*IV%YOwhqiX?kUIX(1eL%KRrG%_7s@}7m>P=Y zc>bzR&=PPwAd+`H&Th-$4}*Z~Lyy!fA8`Bd9sO`Z>Je8aK3anbWed3KAodY4-7!E4 z+rU$`8UB3^P-TYylEDNQ8%6r_2Xr&SxUw>%FZNn)&!%lGfqQZYwD0soa8hX5AwW5H zA;>f>r*aDuoELhc*j!M{_qo>O+i^BN=^~>ZY8S)}B5T$^J_i22vOZ@LGDCOO ztJc}MyQKEs)}tiJD=ZJXVPr2p)U5RN$ye)M*0$Zca+EMjx97kt+l5(D?BB;ZfVgfa zVIqsvl0|CG@LaXO5j$n;<;z`*1SoY`h8g<(5vid3R!DT3Qd>Lvvp`?DgyQmBwPBcTk;JJCoaSPmw1Rdh%sFc6}EGn)Dqm+oHaGlHY=g(#>L3@MQUYg7uVb;i9>mdSE6~ zvZL=O5i_PBfSm^h*gQL5#?B)sfV&b_v9=L7QVyj{eS1$e<~$8Gk6(k0IhWzrxX74o zu>M)boMZ7MG*c9#XqFJg!%2mc%}_S5NVx?-7%fZ(_8R(Si9Ri$+`dOm1%OJ(eJVWE z7kk}i8gm-)g(y1?#5oQ}2xa>A6&S%sK?z!>YOzdaCfw#16xZT>y9L-sG2MM^_kB!8 z0Hsh4W!=}x58}VVJ#1X}bzrK}SIAv>lS~Uz0UQ#2A2O3_@)oo+d9$?1>mepDS_2J) zYe0D{nr~lk?A1dHf*1w?0*tp3?kOF^tpFZs13b8_`znE)JX7Hw0?13{=p_aGxX^p0 zp&v>^usfjIxX>D04Z{AApTOYJ+%$ctkN2U6m~ANp66nF!_1f9d9{E3%Cu-shzI^Nq)KAlw7eT|S{__*#HqmAn0 zsor&}oP0S6UzD$NoBCXG>p;|Xx)HciJ)hy(gy#|?a4w!>5&XX5*8cc=xe*wpa$I2q zPQtI~jp!jhR2zXK@d%iM3g$e1JYRi0+>;txL>{!z1_ZisuCjC*{4!$qRu^Y;Y7m)c<}dI_d?PUgvxcku9?MHt$Y}Q59M|#mfPy-?&PEB zp%ykHnTI1Yo*6Etv$6ztDS$vzGD#=#Kk0;5?-6}DbAaf67wxfgX=9{TllH)x*XOQlr(WkBwfMNe{BfYPe zO*}BX|2NRwTwBLS{zJAJ$u?GHo2;`vqO$Q(XRDWN164Nh?kEq9vf2BMcP0PrIfX+Jyzg09H_XpABh!RQz zE~-E%wPlxr8G%f0{+I9-C@UNEQX0|ds>V&Llj)(L51e~LN2L3#FVkv>*JlKa(R@lJ zSoC28R|rm$kUw)uTErXk{td$tN4^JMEZxjx#2@#agLvF9i2^B&IvbUZ;1l>7do@iZ z1V6*t^i6tnOiI@itX#Pm)upgehdmkGiJn}A!{#*$8NofUjUD%7E57chC*3;VlcCL4 z=q+dgnpymwf!~nu=soK3M*Vn&dYq&mkHMq0`Ee9`8x|w3Jn$=J{PZ}f-O>7h$5nrG zzK!7RqGa_UvM-{l+UMdW5UJ0DCPx2CLr=Bo*B;p%)awGeN!-rxz= zU4XVik)B+Hi`5b2B0cKS+IzgHz<;S^r%GJx3?p?Z@UK?z7jp1dz`-A2gs%+Q&WAR^ z@NGuc(Dn4&p~f3Z@hY&{(+k{8U4!k-cY4hbgnMm5Pi18hE08Q0apj|@Gmd6H0G?A| z{o^r(7967FeGjjS1^5E=rEryVS{2_*AJzMmY~BX}O^HC`ZHV56ZdvZf(80s-D~Vd| z=p_qYlI|cNM^R#`;jZljpQEj=tm&x?4naZ1<2xLpzO zMXyCSQ}fFQuCB5MJPJ&>Y)mB4d)iIl)gscmkhCt8>N?TKIZwp$C@6_21V zqZ0Z;R!hRKG5ahU>ZEv^z3G`OCTrF~scNTxSQyE1FP1l&zyuESB|dm;h8ejPXhl}x zCKZU1$-9y7*bB|3gBeGDX!!ri8elm}a5(R27`~4%BbQ*44WnPWe@9u~N1Xl{f!Sz; zoI0Y}${y8Ys@LBPd1Wjx)XR+ldyaKhJhul|BqFE3#X!zs?Q#x^=QM(2fg5;lbTNbn zRDjFhJR-Is{p(Qs*8~JnI~{k6+)e56{{w#|`ln6^A8pJTi8sDILyS2&^26$bFf*Vcl@8V`1T;4EoTJBJ`a8C z#Ixm?;MgYrXRW?Hh-be{2R^nEYolHlo>X1}Jsp6IU>)5Z9I*^wor9 zr%1zSzqE*o+?*84=I}Cdb5bn(WW4h2abnqSc~r6Ne965TJ>ft=eHQETU z!sw^yv~SPlxBfD6^9uF-MEQ=v-_iX3x_rj~kQJgW9K$C+?lb~j`Tb#hj|;ydw#dIC zw#{(`R+onyj#GN8I+{nD-;O^7Ing~dxn~?BrmI*b=P!i3EyVjom7XGRCo2CPNS{KP z;U5T1WrBP?FRnAq4E_yWKXh}fduT&wg=8Z&ig}enH7`YoT#2lPUmSdhU=;>^xKP2@ zieOV7xD2C36_}~P>KacrrZdiEZyCzUAHt#fZJG<&BT^DhQBICuD|mU*|*Ir6-E-Yri#OG_;!J(p6yyEwW^xwUR=-a zpeGb!%xGth$w z7fro1z(WBa1@O>9r@&LVvJ(h;^N~1$4r4be*Z62NaccxBkw8jlU1(GEEHGaC#(Q`d z3Npq$7)OSPTcsi^=@^{`#!V?2*zBFq3E<9M7zYlAd^*4hBgus|DfJ34jl1K(;A}yZ ziUSi1rIY{$5jGR-MPEZ7@r=0Ho8$odJ`JwS0yBd8n0E~#c(Gy}xKEb}sWOO|{VuW0 zzwqFc@p(PY6&qXZ4_T;eNlIm-bYOk$i^);lkKs{PPh0L`_h^(Hs!aLi7sV=(fg3e~5>Y)QTd}!Vt1e^DB)CoA4Kv zBB_iHfl^38qt)d|(H%b=A<2JK@=uj~rIHqv?71I$5wOymPmKQoyN zDhZ-H>JZF^K>HjI{6M0HGwNEyr2^SN1$c^#MQEUWpn(`xhXQD)f$n-B&cnSN4KzGf zmx4j5568Pun6(bVee`!WVhO~Z_f$m2wpEN=IpeMhOz)Lr8qdE`G}44aGJSgsjKEDG zE@812>Nr6r{;QImcLK_r|3z5#Z_jDQUq$mJvRQpIAsAJC5Mc{EmZS7#2{4YMoTF5Opx(<~!vh zTW1_JKGG|{eB}CDTA~pYf<7FELy!++izRFyZRAX}ZvLIa(nbKARWd+|Vg6PeBmX%B z%-@Qu04~7~EQ$`CBrm!dfnNGcU-A3Ba;~-*m8-5$}=i(_ zl2O@ncWd}#&nJ8vA>ZzGzTHn#vt2O8TqQIza?5b!gRY_iahV8*l_44qE&@fS8e$68 zgC}Lfj^tar_hiZlQD$cELOJOqjJ8a2VKvd2@{ZO9Yl~)&!R$2Ksg|R=zcGRZ{EWlK zjoHWGlhJe;=4@Xzf?4WymN7e5y@v1b27Cv)jml*u1l-&3Hge)7)VTq-4;@9*WIjJnv`nPMMb^v)jj@-(6&X=pf0&e`*1E#UfhIDd<5P3| z$~w)?5q&)M<5kw7&d1rQAB(I^=i~MG=x^;Y^9+A$cdy8>!!RCe%X|%FbWCa;H(IYb zACHncdZrYgWH1Qj=QcB9;ONx4Dy=J>>}yg#R#>IZ$EWbI zJ+pw2bdjq7@}}u|zkN zfD+1x4#tE7ycu4m97UP- zsTjHT&PO?yv=B?ja4yTf8TYU;YhF~59}a;LSb@%xJupr;VYRec^1lzsqY{GhD9g+o zRiI9ogBrk^+2`<$D?Zu{VN2wI*`Mburm*N`b2W>i%WzsageGii)YwkLq`}02vD!^@ z60zD1mh5WS)b%4mhlXiXf3f8k#pP(|C>VD=>ssK+QyX=Ye`pK%1P&42V?N-wB;%MEhlHaK0YL!e>$wewTS0!huq(mhnRdPWH-d6;ngaq%a zUA*~TjuzYP@2N83#LT`$Mv|DQkfSCsNc#t*$+s8E6GIX1c?0L0kcD#Csr3d!cD?nAT!ig_Km=8hN~qTUC@w>sq^_GiL70A zIAm>ijU|BZ;q4}E$7bOHVzydjhPTD8F|d#Dq`A-ih%=A>!{I@Me%?=b~93WJX3=mw|< z=n+l_BU#R5ckBuL|0v7|AxuPP^cj5Ti{qn@;g@t?ueKVeo*gx#p~y>sBHn)?bo5|V z#8ET4$W{;_-hZeW-TzhkeRBU*RXnYUsHB?F)$pF%cr{p}rK|BKRHK$?-9^Q+JL*@- zbV;CQc0$0^%D)wdT|eUL2TZ-pPsiASU9Qux6^ad_=BNXGqT|_7~?HWAVBh-G#h!JY8O1d-I8hZ)< zKMxgr3z)@PYly;XR>{jM`HM>asFKAhc}OMqsbs!N>Qz#wlG{~sPXOxcTpeYLtFV;u zqnjb2)Og$KXMb+I?V#-rxs1R=;9}}?73zV-fL)M<<6M`Hp^prB5H90@=LuLMsvQ~d zT$EVQ`bR*05+CL``;!h*uTi%vQ5Q*Ak7GkLniSWw$h-cNrDQy=2krS4@;YjmZZ9@s zpC|0O|A^kQpwmkaI)NT4Xb_c-`N5TH%V3F`Q~DmhLiWpxlIE(?u|lKe`Mr(0x% zz0-`(hru`UKK*m$>Ge+?LK}hSU7eSwi?HaGyIcL4C8`+vcCE{Fpi1}Fg`erV+FlkX=7>VqvZWcua|{ZVaptrake@;mYzyX7=K&G0aKjMqmV-PPNxlNYhR))k@eA<_d`o8`h4Gv& zSU=5-(?_}2m;N@TyJpsiizaw!Af;r_%j za}&$>ytgSSMrAw`PAW^1V!N_~RAt^$r*WQF>NM{27C03hX@6ivPcix%-3X6?QoBy4 z%_^0kZLE=BxSWBgEK+Da#e;|)gJ%1k?;YrKB*v4UKwK~l;=REC;py;CdqKXw0Y*ac zb%FPH`Wj`!Uny@V^ixwUT=!_Nz=~fzFt3`gsq6=AacJ0XUbqcip>^tLUichT^797O zDU4D-0UK`!&D@XU&{Pl~nDDY^skw4hLzA5~s=#|F1q%z1g}->JP3S{CQ6HTStc~gp zx^dIN@W9qsOG<;}aeEqd7t|!4!J0|as3w{Ncch<2U9QT2HIt@MdncAjoJQrrW>OhA zs@*i|O}es#Y1G&3{HfEZi}4|G8uet9g`m7c}gXZspLVGEKo^AB~RWC>vS_l;tA`aA^~>+sHX0NoI&rWZf7+U+y`03 zG-9W&5yf5c8r*X3-CxT9KZhE(8k-(xeBA|KdZ`28d_a|q`uM~8)%o`E2FNRJc|QHS zT5?nY{X6V;95hJ88}uXYHtC@JW4e64Y8tKLRFi<)hr0RCj4YRxR9uf9nYob$eHSNK zc3Bg#meUO10MU_Ksu#MKF*_dM=q_|O>jyZy3*GDV1LAxO-5=?P5|Z-UW{4EkGL4I3TfCi=6amD((FZ8Ms-5Tc_@>c zNzKR$dMBaNi$PE5UPS8Zg)2Cu2c@mw^iV;b>NUPb0Ev}s0rzC)2y1?+TTM3Nktm1N zbOQj;$-Mp0jBr}p9w0kG-NYWSy3~S2uY{6McA(<^Q>4tjR52_4axg3H z8ktp)2xe8tRF~#qD&$cB;mp-Wu%As)YF7fKx?@o)DFu1W&m;>HW1#G^kB|nsg?k?~ z88}<-EunV+o^z1%!(xpb3WYkTUA4Q$$7Uh>8l1Y-gp#{FniQ_}=&z?ni{W}W?8{)+L16&uXH5-XNDZ5U3a=aNC{?uk3 zzTotwD6ub8gB&vFV{lSHus``Q32fICDNMkR5Wvw`?620DgpwQ567&n;oAztKCV0yw zY%&%q2w?Aa)3pN4i6*0`#CUB^dpYWhwW&&uSd>etp>W>1fh+}u1LWmcuP^)>=c`(4 zz1U3~Z0~PRJ0}fp0%)$D1XiO>Qt-n&lo14gvcp_2vn(KJ4l=B(*vccx?3vtOV>S&M z+JvNY$_ss#^Es>GNn&j9WDa5jo9JBDQ=z1LwsEN*BTfOOUWPp?t>SO6D>Dpoo&;@WzTmOW}#@Fc2cHRL&RdcJTveiZPB^*1=F za>$Z8fC=$jSpjF=-~nN|)X?sBoc|&LcZ*{`-X%Wkb}kaMKI3j=3Xzl)%)Lb31JlRD zUXt7Sf`nKux~;ur-t@4R%z$L*V)O~f<-|;jQ5I3%1|(2kBC8atA`0vk*O0MrloK0- zQWMP?=k+qIy%v@t)i*)e*sv%qHP^kA<$(Mg?s8qGAAsGt?q>Y}0h{YyrymOVuu(r0 zTH6H8)3HQdj6$NSdH5mSArK)O(6=CKX4v)Y)quAd0X8gzE7D^SM>6ko1Rw!}zZ9r7 zYU@@L{&3EO-@9|YkgNCo0PW@ww~{~VC*>toEB(go%G`??x)R+74Y-gnIz z8PmTCmxb@kHs*XMP$1x~VnICTpx`zIE4YG-jl+32HS+G~4O|rzQ057I$KT3ykw|zD zyDxHyegYurtgKmpbh7UvwS`vcA?%CBYu)N*APpgRtqRSst2`q zvN~D+pm!7=YsX#5n2=zec6aElff5P@+{uLpg#y`lF3z3!deCxKBo`yuZX7yw4ufzD z^JNrIjZkQv+ZV-o{2T7*-UFU<8M7}W6(eK+#i*Zc*Dq0b_D%pe(_Jlvh2|K@&C;_nh zVXB4bcJxWD2|EFP3W7(2C!^Q>?BXYoK7}mq-*<>HhbkSv`WgXFXX00$5!g$V@@vqC zpi&Bj{^U)jP~P$PDr#In8ll@Hg%%}H%r=15w2>^=8JVM8!fc`AMl(C#=m)<5UN|ApIUqS2N@V+fz*KY-08c^J%;HXWyDtLn(Rr-Gzpoz_ zED;v}zI-F_ouWs7Be;t?GFf5{^(cB2P>oOnK6?-8vEhFt9gnbIdjJ{bkP-o!x-MW7 zA|1JZjML(OBOT`+j0Wr3V5gWRl@9Mxn#)nVZg0k*vSu&5;JolDG)*gwz^^%39?5(4 zYo3Zmy~FN^%`>l3T2{*!9In=?pZH``P$nVnUs+ss1^h3aBNCvebuaaa%>K) z#EoC-BiU;s>7KpVG2as}K=nMPcbx7fDM{zRL0%cbdU z-CjQtEVvacw?ps(#M+4qSPup*K$Q|RG)(Cd>ytkdiTsFO)Ucis32Y`&h;04@SJIoX=@7|Vu$+Suk^>`;+&sxlcL!`=U_Ezh0$qyegVaj~b=(Z- zvhgFEF7_w-AX_d;PnTI)5=Z;vb?{=(#5#X9f{Bk`Wc)0Ak~Cf;WCdu~z67Dr9)5lI zJ}3n;7LZ&Zqj0fi^CDu{heCW^%nVihRbqxn94GjJUz7PBdVuxdSH886md+U(T0dM1 za4(4uxPCsoM||-A1>SR#;jP#|yxqi(@2uu{xXQ$MxGIh*qGqn9v5dGD$hkt~k6i2h z8R!Dj{4Ant~8UO)1Bk z3&Fw9n&3h~R7nbsWGPTkonY$0_SCa;%n&XR)JolIZTlxg$2$DiAnhmn8&B1%@zke8 zTHQ`1OV6k=3&vBsq@92}1D_G!T7*G8;#+|y@wmpvrwrL6SU?31mWyyb3pvxo;xSJ(i z;Dq927#?gkBWk2+ECAqG_E8^j|ARRJ5Id7Fh%e?KzHx#Y#4lnVwf1p}9bBDtcfttX z_$N)*0tsfA;jFfeVb?^KZAQcn18M|KhL1|_%UHX(-E;_ppLJie8jaw()xP z4II^QpmSPjt}**XkP|E*_`{G|Xb2XN6rkq=YY8mC=zR(coRP=^1&J(Bs2_4IpI0f| z6c&J-4*#ok)4_VLh9njca)SjpUf@5nz(z^!(X2hHsryew+mmxy{M6Zrw=&>Y7N=-7)o|NcyT24Z}v-e_xc+d${Ry1{Frb6pE;a<^FTyIOh8M$J5UD(xlzVPtHd7L><_dlV> z3J*8wZVN_>UZH3NfbGBHu zT;W)Eiy3V8%p~@3uwEbE z-s8Mio3_SB&vH+-h6mYaXj|l*!F7ivU>%nB<5UU^0{$A{Ab_ND!e3G^`j%@IdVW&A z5Vm5J#Ebd%9`9-NuiS`hfTlIX{+Lp!b;~4lWOUpTr|l1-B9v2~Fh7rGM3-ubnnm)4 z0I5To6qfNowaJHE>#A!KIIohu2V;=+*bn^3!G0~Ah606&t(8V#7Wo$yG_nGQ)3^nS zrNFBQWXUQ66QQjJX~2%s*w0cgvei%I#g?>8G`W${cg>(jHl1D?u!|-#tlK84<2vD* zd#+f9MGa`hw$r`PA$_z4?1@wgGpsorRz&-1s2p;jPg=wSH^>xQ8yR8&)soJtIt#7n zrJjv)h(C^_Wz1XAQn(XlUbmEQO`p#?#P=e;{H=MObA~o!5OL(t<~TA!;0cWZjge>+ zY|4V#qU#DVJ_4%>j{UnbW3QPZ^f1zU?hC{UF(i~a>kdVS{Mda?z5Z4VhNqAwq{R+m z$=`ag5jh;MhOVb!?!k|ICue{;`Z&^i*mS#gdcic@roZ{0jEsK&k-4Jv3||K)-$s;6m5Pwjr-XnugON;mgHgE}P6(M6Nf{su?9kgL zRFw7>J#9IZ(<-{BJaC)c%0+5B`uWzz$JjmH9QX5BukR4g?YhgM3bGIaX}7-nK30^p zK9W2(SsKER8o>`=)hbSU$Q2)!ou_0g())hOAZ0i%nCwqnsx&1bQhF#+1Z7p6X{o)) zQ=ruRIG_5X=bM<#xJqw5Z zoW9685Ks=PFV?>=1@v4gt<S9&9H zJ>dTN=WPf7Kr{?!-Y7SC2U~H1K2kCaKjM5S=JH(OKpAO6Nno_%dNoE_p(X*}7aU2d zZ5*S5{@^Pa8aW(Dhk(Tn%z-@7G2ZKVqY>BRb#~<7figx8tRt#G(H|jI4lVg3g`PZ0 zA$k6k0x5lSCXTSIj>qsUE5IN2sD!cuNrO?t4+xrsdjP)m$dKJ_-x;~+^mjBU5SpCp zMC`#=!mlNQ5$nTIiu?sc1P*xG)5ZHM-L^|l^1KVDzQ}iTrB;KxH4|*mZ3I| zqABQJJ;ZB=t!h>*@(Nu5mqf{{y4PU})TW=CA^m%@y#vFTyE?A?#%sL?q56kvb@e#N zlwTj<*W>whKE57yJHArLV|B|)kVJo?j@ocB@cN>S*Cc#S8{b|xLCH|(y0Xv{f~G<- zwDLB!IdaBvW>he8w0WGVC!wj>LmkjB5^zr@T4nswSB+nkBl?UQc1CoXFg8_QHGu$? zOGtY_lxux8*&dkS5#*&A5L*YN7m~iFV@=^_n^I2CBvtB%TCi&;vX4(F^j9XrCHv_p0 z!Ghaf&_iPnP3H@0(1b4_$_sk^kB8H@FR0KSz7+GpVg(pu?UHnXn%_>sXg+$`xd zro9)esGloiL?qpT2wb!!i+}Ja&PaS=%kXg=UwLs`vIkv=kFAchVF!~?Tr#a+ZlkCu z43KrK-+#&%nwE8|Nn(yEo`10`U;=B|V+B-8TJH0zu>!}Su_e~P3E)<4EYVz)#IMF| zhH=2NpxG2^E&d5ZU16-tKH_kQVc0ApRkUkdo zbKMBxKKL;r1bw2zDYassHgsVjngn_5yw+u(ip`&TAppG+44uU8sru?^1#bc2%_qEY zfz(n2*XFS@it|9Mut02A0+N3>!)6e)j;{4rUE{E(7z&(~___Kf%*7$zD0X|aUJPNm@gF(?AyA3`>T z=7oQxF$aVm#{7KBHnfv5KPtW7lR2{*fO>}GWu_4sX0LCsGd zg(YXThM=_Fp%Qke0Jy*q4|~2m7vOIfuN+kvuiV<(JAH{H5UekZPUIq>8PZ;bS|UIWxoh0WNF0n*Don zu>RS!^%50eX*ph)?q~|7caL>M1E2(Ma|U^oAhwx8uJGzcI|D zQ()_r9=7ho(pQz#s&(XPorZ1M$>}Tf?>R`|Fw(=Z>Gbr)lHoY+%ud7M>!3pao?jUA z{R%UE1fql6akb~1PB-&FMQ7kX(oA2We@|b}wP2h)kzY)+*AcL!J}ZiUH=z^FC<$8I z`K+Jlex_=Lh->@n_CVHk-3%3U&9R=fL^*#j9(t@4v(pLsIO41i6{mFn>qFT=%f}hm zFcg#w;g^tUp>mnK@?YVrbBFp`))X##%26xlwhyC84cfbjz^9TvhlEN5>yY<#p8c_zxAQ zU9)=8t;%=+(^#__t^{~hxfNJQs4rrnUjh#aZcb$ZKH;X862QR?44immCKHp$qL?dr zSbhtdLd4Z|B>IAG+(wT;%d~t6@EaRw~?!+ z&M+f&v}a~y;8t_R=hkl7-MeiZYi*2w-oAkei-OuvsPu3P9*XymSM72!$az z8?PgzS`U37{Lyp{_~SEr8FBj-L2R0F2o+yvD5`Gf5}LBmGj7hFm=T@A*;y*@!6H|1 z?$%+E3s8zaRWm+wY4HQVT`b3bV}{{v;8OLV53lJmv6eM*%PacsGl`XOgF;)QLfcY> zwhs*dAOaK-SHO()-7Qz{g!}$Np)M1}B`3Ld1E**;NM1iMu@21$dr2?qRFeR0w2P{D^`$I-LyIk5xvNO9-mH1G5RMLWL(( z6emkd3fT}8TcFpDsf$%AFps-L0IUR0R>3PPDKPPFDc`||T_))QceCVK?p_8U$dC7& zN`BPHjM!mJXAre7*?s7cKoX4uUu== zg<1tO9<0snM>3e^h9MY2mqD#f~K^i&W;9LP-g`rlhxS>%T{Ms zLZ@5|HF7T1Sz3MrigJ+MT3%zTGwDhA?xn(94^X@6Yi%ncp+$U(T!@qEHXHMAVGcZ) zp}U!@d~NneO3w->b`hK@T?XDMB3FtmM21%{Ng8)u2Te+@z{? zA0MjNBp9_?(uFw1fX|qKV~P^MJg6lPdWsm~Sf4SZw-ms;oldQWBe04z9jh0ZiMO;Icr0}U~oP2uo|}aZ*R`1z=mPnxSlGUd=Kq6U5>^HgBtN=i*O7iE9;v z3nM;)s1DHFWX#`1vI_e(@H2t}A1n6rk)}`^_`2M^3%}bd!gV(}ijWz)=pLJKVS|Qi zWvyVg4AK#!_#CET6WXxS(T2J54Kvv~Pl4o#vr}-muu}oqi7h3JCTp-vn`|FFovZaC zuE9^HaDd8B4!G&suiK*ikd1WaWWnh-D7x#pjyT;bK=(%n9+>W54->jWk!iZGG(#Vm zp*OjK;18PMldV5Y0l`1-h_D^Kw>G{b#(cd>R;py{SeW*su@p>=%M zbvwnMf^pv{B-AN5qlM4lAItYmqQVTbl$gXW>Of&~uH+4iUNXZED83ofR?f4JZkPNM z-fM;4Qqpf{TgoqO8+d5wobmjv6r1)b!5h%`aPC0N;a4n9QelgsJxNRQI#e#jO}TEg z4tO;ASgEavSWwKuH={rNM{kaW}RD?~+Z&3wo1M4VVGpiDx za0cQm6Y2Qy?~5dPtWc7tsfovr{5yO-{)qgZZt{7NDPL!lulO?iys&#nx&MbO?0xQn z3Yd53Zrlp=5q|I=ev-+6G{ByAU@+>pS{K1>&ZZ6r-6YZpE~2~_Q`wi024+dU9h6M) z|A)po2IA~ET796bwXa7SrgPhuJ(|KXC{K>b_!T+EMvoai$U2{dM% zLSvzd-Y#c-utA9X%^4sruP%wl;1c8=6LlQGi9df#zL3~LjEVky3saC-QjmC;ya$OR zvO>Zp@%3E(E&1mk1u3PP2oYy4Vz{YrWtSJL}OCB4rp>D^)Y7h%~d%{X5$I4_JF zS}tn10`D^j0>Ek|V*?E8+46{A2E}-+!sl}$y)eT2EW12h(VHN0bX?x%XN?tDFl2pY zB^suAvS62qXch#UzxI`*kTZNuaM&I($H;l!qaw@{r=;vhVCqWU= z;Qp)r&er{%t@`^q`&%BK&Hk2$=Ls+)_Za@C`m!G~d$C;h;1TD{TM=3;on)ukNp_mz zTtNXuN*z>F0isYjs=z~}*LwEb3}>S|tr#~dd`S0atL_hTTNX}yqbH@}GNrj#*ofx9 z{(6Pr|tjy;I{hXtp8}Up6E|PSidx@kA+)J6F|3n?Xx9I0) zfdkrAKPw&uFXEY^(JCoiQh-kKn=n>FTz$1#&Kd3PNvt%{v;@dy;xSQ%|b`A z{OE%zvaG70Ebq7+mSMFDnB*D3%VE}_+`y-dS7EFNA_RGq6HahwtVdsPUm#`{`s2;e z^Z(F({9G|EyYuL+gsyD?lk7y zhg`_O8p=aIkZK#@`j>|O1FDT(m_)T6y1!%~MKuHkk(tkmYM8Ur&x&f8w&OE|Vi!^> zr&dXUb)gD$JK7at($9)&SZk=C71fXr&td~4UF@!u6jOVWPgDRHzoe3NRr4L%;t4z~ zQ-idu{uy^IQc(CdB)E}`IIR!3Z^u(2y$?H98G|~q4`@zoB+$Go)_RlXDXOwO?58l6 zhr@-E+#~(M78n1C5M5jKMfz@5L9JeWk~JQjfQ~q5(gP_RqyQoZEyivPn+c-7Wzfan zmgzkRx8dZ2Sq_I(!zaW^b4(z*|Bt#afsd*>+fN`PVTlujXhe{pQ9;Fmih`mf66{1L z3KbQq)wEcPTaA(^D&WMKK*r%JC@QF})LKPrD^x{nwGNAjJ7U$i$Nf%2Yg`Gat)#pC))XZ0VFxz>;3eIm z$m}KE5$0Ku0D@d#2ojYPtJRW1cr*2oZpb_<62R+Vo*mL%fM-tVVo4#$CB*?1q?p(Z zNW4=y85$AXxk9=ek7pXkowHNY{rHwNz-tu*{6SNMbi>>F>=dLpN92ICuDb)$3sOP) z7i@%12kA^?_JTBIo*j@jm;`Yg+)=T1!;%!NJ=t{5i?#IOc|p9sc znr8>ZBk)YD9W5zXnWXc}14sel=}5d-``hv)h&dh)h@(H>DTqhhlm=q0f*@`k>yYZ(7woWdS?{0!&5=~B{n;!V=rAeUeK1AX9u)HWn569 zBn5+z6byo?2eftO*}>kK=Gg&l2+ss9FGUIhnP|9 zfD^xhgY{y{>+X(-Y+F?;ZvYO4QI;DQJ`UqtcQMfyLm@Qbb)#qw#>Bf;WBn8Y`elE( z2&&Qvu`}sCSxf=#IOk#uD4=0V1(9oBt3(VCw_PCGK>=OMuhytvE>1!53$a(5^FY5O zrL#ytsnywrf4lMR-mYc=B;-td4?=GbNs9P4lHRW#UDP8|4Ef@$2aUzg9_aobXn+e;sTBSVqRgt$r#W{0(Sb9f%d}kIq$FS5#oT$yL?SNfoq% z2}gW|aRFASzo+mw@fh!GtDmYY-Ul_ritI8eU5L_L1wAL;0~sm{tD{qgR!1)xQ4_7? zvH^uWdSZ<7q{%l5+3hB54#X;GbfbM0w+YUIK!0>k9YD)1*giF3SMo}p(;>MT&1O-%+M!B~`2>6mZHbX2YyD5Wa0m9xSRACMV zOI22XtPvT*8jVXC`dEJW z45n`kCi9Oxb14#14Itwg1lU5%$b@swaV!e9=htHxH_=!@0SjckKhm-x6HSYY|C$F13pLsw^x zM!MqAnZzM37oA_gWrKS7udzpRH0}7A1fC*;&R#;UE{5G1;7lMsiBm5YP75(sXDcdD z6If}Nni^3V9h&Hr3KmlysKCk-zo*6@=M{np#?3}pzL63^au_f?7!vbk(17=;(+7q61?Il(;OB4<)%bp-yj zKeID>S8_m|jdf)hByf`cG@YJGv-6=^cRtkUw#^#dwpkNf%yw$XI*ul|fD0R>yGDxu z@ydunyc|{lJls316RiU5E@?&A3%X@El4Pqy5bF;19j|zY(8>mYiP8{AFfPxgAxwkP zJ(l|Lo}*yHmEw5{((@DqI%5j&Qr}nXLOPr3>3&kL7(GE0jhq(DvQj%AF!jm?_<*?= zA(nl(Rnez|(M`eVn>En{n?q4lRvrB+82vaHJEwd~b#z-Wx}_%is(h%4uBnN_!||Ft zB}QQRA{S;Vp3`q8;G~bojFO{GlzDY9pI8YoN5EwW7WiQ6ta-WQ(gkr<-~-n3rFVD!dra5XTnd`6|LjM>nU3bHOv6=l;zswXmi$T6BP@v%bE zMI!6W%B=z|A_3+AHG8A^Oj$IUHU-!^>~C7c+Q1@PBz4xa2}*=&)@5&XqU>x9?2k0; z%^Fy2;RdO0Nt_9npHkMbA{|e%#w_@s(gAOh^7>hrWh8CY;>%nW-ycB z4hj5{9(hhqGv7gkERfWw`yLn{*tRgI}OL3PIHV=wR!Rr4LY<7Ct#yZH$ z?Z8Hw)+;nOH+|9i0}PYuYZ-u36&rL=Kh<9+G`-nye$X0J{>L7WVN)xD(Ms%_s-6Nx zR+Q9zkv&%O-ENYbN-9mg&mT5QDoniqOub-q5|vSoHxt7w-&$n1Z#_XwJC9ohG=+d{yn*zkXfQBJ6dJZS#U4@(P;auY{G-U(8JfJM$t#+irOD}< zOw{DOGRVt+m>oAM@^Y0cFOQ(Fv~jac2UJjnut_n88;Px)!=mS$IiyngGMRuVm5`5r zPRd8Hcx)1dd}O(<%E$YKqwGXJI*P7WK3?&xw@-fQhLMlFl@yY)*dOVpzxrmAnKHT` zATxEfP-SL|K*%FA`@O5@(kU}r`4J3Tz}mQuP!^dv1tfUYk9Qz5-}yQ#HtBR2nR%dp z=Q4AO{o(PB%#^|^Gi3mfnZ@j%HEQDA6q)%NHeow5vx027RE7c5g<`Qx9*oQ!$_L~a zA*o}b!(EJLBQuxs6T{9RCavs(n(Nv0s2_G4EN)`F4CjwGa0 zpd9gzJ}?kS!yv8f0A6#GFLz-(Vb>NJX=uC%9;l5h5~#@@v09H591NCh)QnspTR%Gm zWadPd=C5?1ak*hxh?p2FK%oU|BWueEUytB)Lqx z;A@&%Xf*SZ@jKu$Ge6JDWu(K7X1=c1&bdsjJ?A)w%Sd76GBSXqW`5r_DO~0fLmevh zz(dMp7>3ITWBD&>=J_0gSyC-!BS|i^8QgIvn)!`arjU$RGjBQS|1Zsa6K2WL%n{c7 zzp0u3rchvQ*lvkM z7#t!%OZMl-;;Czz`H^cJF8lw1W-gbMX4lL={pk)g^BexPBQ8gsELQT4Pq^Io)y(G| z15j_WTkjCL__`*?EtRLEHCd-GAJ=51CNK7f=zPZA3!foBllu85RF1o#pI;PrW|I2( z4X%EU0NL5(CAFWf%FCbqQ2qS%C%k>?vb7QJ*sGN`vl852(pVuhalrO{2P_N_Qt2-I{uMjIiR5tbEx$5-; zhwf0lUV58wj7N*X6}~hIb&9>7^lwk zH~Y5BJfLh>39T3>mQGAD;gwYD`lZgttze0Sl2I=T;rN5SbGvAFT=5sV?|56y)=}{q z;M-_HHfIG%J+EFD>*zerOmfeAnld-oG~HE)P=Zj{nM25UxU%_duYe`tnQgCT_;;-7 zxSkw2S{mL8Q2(dSdTe;s7GWw07jvEU2uE@23rQB&F4LCXBM z!;0;DbirAF!4b;hTnFef=~L=itg~gS-p)+zLz!zwPU&8nA)px;Brpa{GcZ2{U z?Et<%d@SkiKS0NSUX+54uIhW}As$>5r*wF$-`^CGp{mK9e%L)VQjaY82Ds$=ByC>j zu)7;4AlqU0w;%EFo2Ea3spWPRyBH$#m*yfrQJPd2d57yFx05b%EHBi7%fNk-bdeiH zyztvS(A_I492fb4b5#+CYg}C9aFvUTybPd-mAvtd6BSF!B4`F7k6v-hm?C^Zgz17FEPg z-6p){`zqqwM*`HF?9&&CAdPGCs3ym0a5xbc}N$RBgDnV z&3U9>ILl=b7K_We{~%(v2Eke0`j9i5RK|ZKjv_85!wLN@Ax!!+_i<1v*n9_$UMPG) zS7u`imdexOmD8U}NgnM#p)|rzIJBsgZ9Wryfxl6b_QJk1$Rxv8e4p@ydtwqu+@T{%A)rxL1HzmLZB0XsrpSV5 zEOoN%%N7cPU%w0R^{2_hv+4UGW)kYMA7Z1Ttj^T^x`_lRD<}+ zfTKc{L>Q5mpgUA(SRh@$a-29rCC`cqCS2XDVJ!|fNe_+Utg>=%pZ&lJZ|fgPJzT#5 znF!p%9UkRL`uqd@sSHmmAji0c61>XO&z?+@Ntv{7fYi8-uoE%?D*2uq?vP2Aoeo3a z&PpZ*^F z2{NpcYy%|a1JBWGx-CYn`B zNTwrGdeu$ZGJ;yyjVY*=1F@%$`6i?K0UQVikX;UB3uHWk`b~K791m3oKZ5rQcoE?N zkHUebg9D8pwgV1ycS}|dq|;zH(C6(t=Rni#`-dtAny+)HbRYw8ah%aG9@AwTYgF)} z6#jFgAq%n@kqeH=kM+&bGW1Bw1}m<6PQ-h|j+QeE*ijrQ|B*xpF_Ork?7wqDj`@;Q zGRPrDY@Wv#p^_9BB5*nm+j|7BS#}aa={W?1!i`oen+bnG)-)7Y%J$9C7mZTm>S|X( zS9^`R8UrM`5o&PEJ~s-q{C(#rPzw~OIKV*xXVX2I3CNwg+V5Z8ISPFG?=%$fM1M(c zx4U=$6cot5SpJJHS@5G$EO^c;qOxpYV#2KyNrr{;1&p>1c#sx+wFC%h7;POFuV}%S zs&@&&ql1p|4p&pN%pNyuO4Kq~ZYCr@zAYB`JLf`@NcHx=1gXS`uk&Ekvj>`1|05&b z@E%9!F({S|J@-2+1wBn9`eOT{z14_s1#2Vdm8a)pe6e*KGBHJUdAiq5_db`N8tlb>@+CSPhY zTa(K)xmc6wn*3aoE4Q|HCMF>6qv$Xx`pZUFe_2Z>TjOStFVJ6>5m}+XNQ${!#b=`a zpg%ZsNfZ9pqN2=~ZRCtR@dddECRwtpXylDfGr%3^tTP8^xdRz`#x(b&u^5RHqG@*hPbX^x_Ck3>>5irSJCjonPEz+_59 z;XN|y#&rY+W4PQqHHG)+0W{Si|Gg(gqiYTR8YQUSar_xF8pF7Im={U}1Mn1t9jwU`G&(H7IBDTtPhG#jKQ~C}woAb3YMEDRHeq z6~r$mPICPw`wj+Ge4HKI;QJJ8D-J+r($jJLFH=yhsN6v{*{>(@5yjIX`_DwU?AX)c zAlBbM7R1W%bleZ_Xv`AADH~Rua(W6@xt@;O_Aq7%3uZvrplQZ?yFMh`!TJisUMe@c zsL7H-@6%oX#}TwN8aJ165<&09OhNCGV&==_J?MS-?^1A%CI~=U$n#6f&^?}z2}EBW z`E}bqq&L3ejHsqTVB*kEEl=qz_=| z&m8yP9N_+ke4}6=rzX3Bm8ee6GWjdTI30(U^L!QbMB_lYOp-5HCH~d3t1<44` z`^&8u$78}$LY`)C!SZdveI54Gdx@ZTnYKoZPHS(lw)gl4sqJm9=js64ONkhrtG&mO z-JUA#Ar@T$BKzWyX7u$y^b4LTB^o8p1xy_42haY#;7cYI2Zs099u(Q-_(ln`O49j~ z7Z(nM_!ygrJ*89Xxa_*YWRogjW3|Y4$4dbV4s5T2)%jCxMmoe6eTRGG4ateSf}>My-dXAA9Ws_L{H(*1Nxv309?KZ$2^rc?mFSRk zirGOCtfTFgfHmj@DToNZE*Z-u}r$yp+vv_}| z6Mh_M0t{JXFr+^YE4|3MORJ>NRDwX~xQS*RT5yo0X}}HuM7}zdNYvC>?+2=!*t$m^ z(F3>M`T1>x`36~eHqiF;;#kp8WI^nLy#moA4cJ8hrErsIyZzoCpmX5Q2KzPs`b(}U zvP-WN+0s{&13!g``2*Iv()G!z@>X@O$HBcJT$TzD?^kSua1pG;#Hf_eqxV8w)`E>3 z1i)B3^3Arr0z8Hqu+EbC*33eJ_{`N-YY%3QEtfK}RV{oP^Nl||o~^>Uh@u5&NUQ+F z2mp%g0==_p7a*&gyu*oZ(l+qaPyp3cb``3D@N$h}Wm?j2C zZ$-Yy(+volfN(`D;~HnhykIC+a?d+ro6*|h(f2VIkSXfXcboam(f4-!4RUdGN;&$T zhY_Ja24Icrmg13m=;!BySsuJQrfMaoin(N31*}dk)Fh*^iXN=x+4epd44i5FQ*19? z=V)Gd1jd4JIn)5@2woC;#Cb-Aty`mJNcqE2UUWE|>alCx@=}zggfl|~@{XmM#{56x@ImBFGyOP^c3&1&0fB~E_7s8#;8yU@**ZtR>$$5@) za%3Tn{Rs^sSt_L`d4h>(;*5l4OEb$>nX)o}v1Uc41%gbm#jVV5T?z&HovSYmSU=^e zB0t4^&%ec)?f(-A{bh~q3qlm-Z@PzD3?5*lL9R)%d|yAA!i+_S;0*n?h{_-4`V}{W zgNlS5CaE6Gwq>m|kAN1ihs+kkm7zp$Wancg<>)BTj~cWR7fz0@=E~!6AaNkZW25i& z11fzC`H^U)9f85!o$^|%?ra!jss{7PsJiX<9PX^isBOk{|H?l7LR&v=z_m^% zqK}`=I1Sf9_R9}#{TqXto!E`9#`9IT(AFm!%1pHwhEpvzdrObIC#pGxIwF3T3y=tw z#CUwL&##yHo2JQ`nlvOZn-!Seq&=Yb4FV*XKTzg{AXJNgK!)H0I$Mw;djR?}fwASS z>Q*Nea?_NEN0F2Pqyv2+YIf^(du1drD>$odKpaoBY~= z<SVG=nhg0jM?s=ceHfHd@Fg=kDGg;UqtR_e*i#UgHjM<;tDlxBJZ@!#SHBY2ZCqJm%;9f&$&BUaL%!x2$< z&HkI!_{V)?ePwoVMK_wv7yXVeDmWIfBETxqjW`;8Ik69LE)4)_kM^)j1!4EmWG_wD zAw)~!AN zoVn+ZruXp!OQihDenm5kze{EK!*LVx-v>6$zA|VH z++E^`#L@1L{VNBSPKdr$8U7%SFp!~oT&%NDr#oM!8xCIjg9G`W#|Djj)o2}W;`SxW zH+`znI--+GEB!0iLF*_3=mQuW!4zIMf=b14$YsA)1O#}E5hwjkE5XSst-s_A?d)va zj@xwe{BwhR)d)9tai0JBaeN4G!{PeNN%r~MFertoc1&Kdi^z1f|N7h6J1mh%BG3yk z_yewEM;Ook-2&D`tUNZ#3@|>AscJ!NK#s1P`nya0XQ2dYuClIia&|}G z3lh(RDFC;6`6E~BFRVZ}@RxOIYk2!v{<+in(73G$_4^~d4jbrPi)m=we)elb=YYP- z13PTo{v8|{{<)*ft2{yaPCs7lgI5?!8nNwzN@Ihb+T>E&exRWtmnJE#dKz4n*$C}h zuA2P17YMB-vsyXwG^j4M+USqFQ0+O$WbdKXhC9186k+6qm)|-Px*JHkyS(De`mJ(( zRiLk6LHMn{e3fIEtuML5BtzN7Gfb>3InpGJp|o{Wz&ohxvrnfOE9HLu9^e5OnavL|VJHD|5(Y(0+=z|0_(rrgM2ii& zVq*%JH~c&~?YY5xCvw??3kl{4(U)B?7fp!1@dPD9q8o;Y2S|=~NRHNqUQb})d5Jc# zaV?;rmICNHb>|QsZm$j_=Jhi`GB@9$bL0n`*4XcdLOS7v{DY zydAqsoxE^Xy-V+2P(e`bwA!barLUR5KE+mJ6rk0#wAZZ=f4Nxqto)*sz z%sOPWe}w&wZU1ml-yiuJgpt`&natTf$(BgHXHHAbS#GpC0=euBKBeC6ib=z$%4H0P zd&y&i9)I2)4msi7rzab!p7vDsp)?|seGc1b@eJjltV2Kqv{bL|7*{i7bv670U@LRR1)}r`%Cbp4jQpqj(7KVP8{??f zqbbssFAEG?quOY6V`A-BtbcvmV={!R5&6#<0-S$t?|+6|X`M^sJ@&eDMaizwUNuDNKe<@Xeu1T9FA8PWpCa+3@seAiG_Y%x&dT~t- z^I|=;!~JvD;)y*QN^7WYedX{|Ms8~J9k;$9 zzlx#PXHSJ!d`izAjOJg^ud=Ztgh`xT9OztAGc8^{CVuHFi7TZB_{njgA1Xs%Y9_!vS50}bAV)5y2=cz*8jpn;&oOf_|J*Lrztx?aPn6j|i4OGqb z3I9spCEf7FDmwT8PWXJ2zvP%#`om_}$fdxUBrMB!A{crg3V+a=PdB5iSzIK!VV<7m z@~XdS3lwptUxx;~hFRL_5_|uAQ1FT_{OxayvCe-uU*2nNI!s zUzG~U}L3tfyUkvD$@>DXa^H((>us0|185O z|0uJe*>rHQbnxkQo({H~4wj3A8TFgg4)*tSa0)8Jf5HuFo!{snYhYs&wXvf;9fT*2 z5Da8=Q0^H(nK~_VfYZS_|MZ}ijf!Kwz0g}u@y{gdsIjRXoROb|-~y*pq(g8i^PrMh95~8;fgWS70TOk1hImAO#T~TlH}-_<%&-`~+PI;GSrHjurKn zM5ND;3uC^I)+p4zBDvtAY$HHm%u3GS$sTA=UP__YlZ)@76z=}dP7E2&q#Y3pS>DKB&u;2GnRPR z0eAZX*5eE1`JwW-)SyRGsA(d6-hA22!|3m;@G)qWtU06r>)q5up_7O{LhLHFPqI0pew=$|r!DI|Rz`fGc(8iZje8huCd{xrIf$ z!Cu{gK6m3soNtOK)~Fh9`9_rxskmg<_Sxpn#94F}S-v~ca=i!-qUL&%xo)9)YWc26 z%XOZc>kj7HNZ*9zJ0&ewcQ@A+%+*tK6(OVvvDxX@5*{QWWg=LGqALvoJV95z4`KgrLV-(FhWbHR_JLXb59Fj(zGG z|L$ayw^1oYZ-g}PA~I866kSB_WNP%U91w_&I)!g|c>MvaF=26XZ+7w)@ZjcP`2}oG z2lP#eKk`8#Dh+>A>W|#SUsloO2Xgrui$t-a^3TckWaUo68)Hm%N7Qf>EN5~c8c>Vp z(E~BLXTB8G(2l)eY?XiB*HFa99^#K2$F$1dbTmyj2cR5N8*6I9BcZ+c1j#fqrvwnfckxz4`ODJvm?wWN( z%y4`=$G2R%wmPt-B>*2rAlwS)yxB{qMqAwJyW4Hl;~BO!SG$c_=k5|>pe&D~uWnKN z)^^x$LN2w6^XFuYyqRsFm|{T0J*lWzpi&ZyB6PH2O(5kB(owWvU;Eb-<-{tvdI+h; z&>aMO028lA(DbYo0Wk&d7TE9B{u`4B$w16=_F>{{h?QHu;$xES$ty}$`_@ObJwZqi zc*#at(aqML;U19D+TO)k+cVo_a17(nWP1V+n=441scFQmtL)+hLkab znDXpzK57TKac>!@y)N;zC=)4##(&}k6p`ItpIYbw@qKyP2-)+IG=x0%fJ~6!j$eQ>9Udf+Z`{+Iw+OW_wC->FxbGM|(@Py*qxCY)@WEd&AP(JG;y6Z9g;n_&V60qgjGH z3&{YW-!0@!g7t#IXcoeE$wO)5Z8#!xymVw|!go%#_QM@}`I{zCCv(*WP>5Buw^U1l z!?26(Yd#?20Uvm<_${biiM~?CVUuZsQaEh|dSO33BNLN;3q?^dX&L)z`5xXQ32AvH zkbWY4q+gb2jx;+aErNoQ&PvDD_#^wF;jyRqBfU6)3Q9PDT{WUbdYz7oln)s$S)HXS zN(a@fI6Fn}35E-(xKZ%*_dTF`&_GFqhf#?V2Z;YarH(0kacpiK{k(Nt?5Tsq4~5BS zYesQOJV)KtynOT|05x$t-Yl@^|1=X0UeRU~{uqoS+S+wK{&0A5J|v6G#{&8RLM3{XIFes;Q#oxI>?utEw~7sv>k#ph!%^_^%kK zT|+!6@Eo4kwwD41jxf3!OKR>k?an@(XCxs}kk9!!DsJDyTQTK={bO&%DR_0)=cxnV z25rE$PZZ3;m6#kX*z_hq(1vkH@`{s;}1geHAB5Hm?IT|F#JK;2TgJY!{ zvah~;>tizfDkv#Fy@*!PSkX~IF{}LlT)Hd&3q)TEZ24y(A6cH2%-FjW z&;romg4|p!Oco}wz5OOaOOz>DAd>?naD~w^Htz=Z3;}fJUBe%MqzWeYFd2k$NIFf) z=hz#ZP(0{p$g<9m3Gr2ZK!cbzO3bksMY1EWRx1VBH0*1j;H>gm`dENA623(ARv6~? zti!$)8kiZt-HE`I04tr&N~Z*dy~LpbOU`8BcLKv+X6cGR^xeP~T=(@2_MW~>KNK4b z=ELWt=YeqOr6&4J+kpY>cawUe-|$ETFld(E4lnu9OkH&pE5&G&TfM9|QA>?A_4sNW zX1{JN9;&1NsOAcG5K|i*_EK=zYi9FpaL8+c{C8Pso>)}a7BlYvW zu;rb=>h0sIhkSOTbvX7czclB3PV>w_bSxZBa65?YY;XOSvVn;lI;Ir28e+uQUiwY` z9Lz*LAb=Laf9Krbz{*mj>kIbi6|k!E^AmdrS709VDS%aP-8}kC+d>Q>7=0r#3Yn_M zY`gq&*Ze?Fad=%k4ww{s{}+_XjM)j?*vQsEWkOOg;RM+m*O3OW1J|IpHMN@uueY=T zsrv$a_9cgz`(vRuza}#^xkQumHR<;lXmJh{auV*17p_A?t^`weZy-vhQ8@}*=DQ-7x9MLxn1 z{9$UO*zedkv~9S*Nkj9LlwL~DfE-2|RDj<&mN|q-1G+q0P&g2HTN>xf+wK~b~8 zFYCEnBb%I00l^%m8?r@uIIb$Y?+c#`s$;6ets{OZQUkUbFDCMa&@<9yv!oha0w+}# z;}NZLtl@Rj*V30B!YlrRT=1JiBPJtIpg@VdgaTK6q@XB>m|AEF3r$yo_t zo~y@)qa4o_e7!o<&{rx96 zkk_^;{9Z?BYdapHcjvXO#bLWA(7|2}y`-+hSs*(+ukklMj_)ooUd98?RtPYf9AKCt z2WgS_5uwOiWQnIpsNsB6h4T)8YomGJ4RBqSRuvDWp!N3~4i8u}z`$j-!R=o*sa@YX(lydcat zO-5@nQj-HEaZo62zxl%yJ>ku@q+gH~{{X4L@0%5yWSDM1TnqVsUUzxb1k}xrvX~*j|isI7=?7!>Oiu-$~|G z#O7cu#P)+RnR+>$+=8#z-!`^TZrOYWPZiB$cL%b?S((APPC;CQt#GU0)@XhO4KI+? z93=%wP67JXf^)7S2Tg76B&&Zwd%TZ$^dZJ(%gA&lef6o6F`$cJb(j}Elt#u(Hk zTdv6l!O$cIoNw7Mqhh%-OAb@9cV%|$I*N{Z`l;btH?wIbB|z>eS5eK>>-MmX&Z!F; zULm?8zE26VVpm$MNmLe5Uh36VgN~!R#G$}Dmm+%!MJB$2Y;lRQmk?#*J-jn?*-Pj$ z@gm*;t2a;(eODofJ6DrWC4mw-*IhLBo$(R2BT$dECry;RKh?Z59tLwf1a&x=t!Wy5 z-%C|7D}Hm{0|@CP$zsL!<#9eSrXe@h1KAD(9fNmLLpw zJh_->{^I!7ot6l1o?V}~7X)FHA1K$vfr)^`<<1rd45 zN@8g;SCczd(Edx&In(GFo0dt>Fk3DJibGyO|B*$hW*U5;XEgv`YN&AZ5j~vwFv^*o zrVYR}QZa-;=~|6!lh3!J*6G_o6npr7i?t+E3|8O03JBtSxD0QV&A?TAn1V) zhOMQIKVKHNvYl@vl8AJjKMhNyh!RqYHn}o3nk%Lp%u7eQgYieO77h^bNFqP2lpCzF z)WL@PBg0S;WxcZ^^a)_s~m;n>lyyY33z}6 z-?0=qQYsKBa+N>wxeq!^sPkw3$Xfk1+aFn^zYa$1DgA{W_s6dc9XTC@uV7eaDB~I? zV}NCxsiw|317$*=++Sy^uo=fANqy#YB!n161n8$floHn&ydKEHi7mrf$R0BHZL1s< z*zpjL*M3k?9+jmZKRa+|{lKPTOs~o;``91ck4I#31k?xOtSV$QdbGbkGFyKQ@kdVA zU$YvpZ7D=(0loZ@GJSh&>RX09LHPsxk-zJ&ef*IdMZKjG6iw;#wTRzfV22F{oCUDZ zDL7!Ds>PCJ!v9tfj5rb&Mv8~MC zGzK-U!vBo7Dq+QOU{HI%so^k`9p`WAfzQ=eg)_5m@8IaMH)GG1+dDCPOz-lfr%S}T zi>(mycq$*jfC5+<7=pAa=6m3F?v-L-{dmJ=LCZJeD8}TgtYBb$gxCY`xTF@@iw{Ef zSV^PiF2phYqak!wozVlVgHa+HwXKEP))M6@l^|;qZ9nYT58j`Bx7g#sY^w*bPP{zdUboEm`{xX#BCot+hNju_s!@Wrqh z;ea@l4v5GYx{5}bRQS?1ElS@ z4L``zN6Ez4*Y>I$nUc)QMR8hGJ#mqzLGcDe424WfJT7Oy9O<@fP|lv&&ke}=O*&M> z4&8$_K(>&p*F33UU$c`;*annm{|WKvc2pC@d!F5#E0dRJ2dv|v_koq$J^LlcF9(6Z zd}veB2uz$PD|-eKG9oa_Jo_U@lBeSe18_iV9Gxm4l8xOCRoDUc-b#+3D;O2hqF9`4 zmX|E(S7-Xc)^J`lSF@n#ZU8lFP8V6Iz&;mn$?;9bM1POHBCe;2pqey>L&uf0`7T-J_B<7CeE;hBxk!~$trYxZwOirRa#Cf94ytVyFLS86gtlM6NZ zr6y--a{1j*65q#?WJdgepOUMmxCm(q#uid%9T}&x8V|sTwFWU?YzbfEz-Wlcm=>H6 z=MQUOs5*)bQy+APz0qgy36ZDkH=Gm;u16GJVd3{hhz`aE*j|FCzwxR0B=)qraSb;?2V+Ypplaa3 zna{I$4^28^52{^&a<6ojn0F zQI#$6D?H=8_Yh!=edlmNq1!Zh=uTvR0z%xyq;&t4RaL%N*E?V2#58WU36tpk<*fo6 zlfuw$=X0#NjJe>4yuglm~t&6=D>U#9>1wbB6M zl|>gbS9P>cJ5G#BeHQ$OKt;st-bfR?ohEp@ecp2lIxa*NvU*q+@EXk5jfQxDL|SAn z<6zV?ILV~9K-lTbTSwfS={ikOFpsrh{dNu*`GNo+xcEp%Ds2{kW+G)@vHkeL+Zl>) zC~{!V3``o=5mZ=zgrAZT@vuzfJG__rOi2nbHn;|g)=SlAdioV~QW@`u$gQ1zZz)C`R{}7we`S^aq@r|4kE-^4v26a7d$`$ z&NUa_nY`l}Gn3HRaI!|qi@qLPAQKx~EHeYpm2u9X!;A1&KS4$wXc1HkWC}QWR0BZ~ zpc!#IQF;6J!0iB-I|%La0)enK73BNujI#mRXFA{>*Ksr}{_5ZuRsI?O++x((HUhBT zfF27T2#gT&7|&~Sy|+UL3PtwRWS=`QBeTXIy?(;Gx>t$g5 zsMGl_Np_12*{u)FM3wpLL#0eOvw=(+eR4x`W&_Aa%#gWsXHDiAa|P1kYCq-}l$s+C z$aXTxmhtam%}OZq%R{U-b)u`dY(YxxH%us%S!IRJFK~Ze)feq>-F}fSmt&*en(ydg zIGG?7kNTt!g)DV3O65w-yjLp!Q45Gv7SA<;JQRKpsqByZ5mUUrktm8`WaT=;)+ceZ z6u<^Vvic0@=>=AR>zqlGBS)Um%!ARKN!07(0^af+xr>WoLRPL)D;!I%OsDUtay0cmf8=JA+A)Sb zg*lRAc0>qpa>0W_`?m)ea~#^^SXT^rVd-WrwkMT;f27HU0~q5eKH$#q)xd$>MI`#p zM#uzvAYc3=6`A(j5i*^)uOQPoi;0A3$OM%l8$Jz$(X%st=7oX%E11zPKHUeyZYLb; zA!fWxnuAgf zKE)cdU?4YeL{|thcIx-AL|6ijr36!pMacmqp4t-BiTw+Q7gl_|9;=4`0A)zjwqX7X zydMSG5T)sR)mV{QBf0s1SR=OudHQ%KI+b2yOhyf}u@HHKv8VtiJ6As?t~3{fs?70G z*9P4sRYxvHLlYk@;$Ic@9Q^v#G9kUJ>K$Slg+Fe^E}D2lFM8|q5;dTgs_6R4a4SMZ zbs$vK-+?xHi6ihj{BZ|zw&N9DMq;nw#Oy$P$*krfP+^v8s7It#b1hz>nlO^gYWB)r zO+jWg^cJIzlFVN*Piys&EJ-i%Ndz<4FRcUQ7ak z%EA?Q{F*}Dx0bXqom7I2tlVSb<;#>!$WQJ1;Xy(m9jGNkyUs+(A4DLIl77O_9VqEV z=kHuep9)VoENQTUOeMWHsDk!$h20OEAKN|v9dJxS2VRT8o;*-6^`eEq)G5Go$BmLr z-n~iG%cZ}ks@`ykx&BbN#BOEDq)UvF>rhp_r{Rk{s_H$N8Do>*p&)yQs`opYs`t+u zlY*?DR6OcJ&~k3odxRDcL8jX`eS3em3kt}hS{AXCp%{fpL$OAZ0(P~|IVjM%0kQn# z(Q%b6T)>Zb54Z3<34a|GCt6be35CQKYJ0k1Xw~JGe@ZhN`%>kfgukprGsi*x?V3S4 zuKfERvSrJoNz#b}Ka6Y<1A#l%KtElTEmscsAD1mV;N~^o?2>06@CdLN_A$Bn)K0wE zoi9Ei`v$%llLDTuPWxwj3fiyNdfLBmS%8=~9lxgk&&i>*dVBtB6#EZVgi%EQ;@v>dJ_*X>Y#k&g< zFVy6|7_v=pSa=HlE>nNo`_%ez8LdDEx1}aYhs2(kC*$hh5)Kf=IT?YOh5qj;XCL&K(p7Enn4 zDqW!nrVnJoswLK&KT#EIG|l9CAyOA$%>Yokuc_|)5|2=}wg{rrF3HrW-TNMq#|DGJ6 zmM^jpd@h`~uis4=L9-^mn}_1xiq+w0b7}U6;Rm1oZ}Ec%F7EKhgri4@5P!e1ks!Ui^Tx z8?eOr>=6-*!1o+Ddi94Npbh+YnL`;S*<}vJKbSe(gM~#ybpHp;;mUUKg30%Tm`_)2 zU@p1Ec)sACIgf+lr+myI5baBM73Oe(CXq0Tf11V|QvI8ea;~?j$}nABoFPs>mguMp zP-S2$EO{1b#q}E8`zHf-XcNuMYBoruX~TV3X*RcJ6OX@m@GFN3Vn|jAIDN|{CYvhA z*cn+_PU?QkLy$LC(pR%OEN2L|Np@|&CHClJkm#@hOyfGji7Lq3qrq~P+-F$M0{$S& z(T+PRh)@i;4Oou57PAAEbKtukmLn4ZFOWdlYSzaEWrR6Yw?)9#W(CgzrAu9I7P?$6 zy+}LZ6BZ0$anIv+AO5CkeF(V$KO(ig?r8}M))`+rf(e>2eu5jedl-o^zbVySX zwl8vV$3nZL2m&gpbJg!dvJWDN;}0AMqZXEOjH%um;|voA&X@3ffD||}Lb3uGGclR+ zoUY6)3jAQaPIFE6!7C{6J|w34%z1}*DL{b%HJ1x#@a9g*GJYU~!5b$9p!4VQLxkpC6Xbl|H7!c6Nz6@QRfm%qXR%Q?M*Ty5jS>UKKDfQGKIZHeWH$f_AwZDuy?~@E@9kBy0Fo~h zBq{JP_#!(5bK#3~1#H%>0)HeWWs^{mYw*RRuFYV^o%m~3T$ohX4wZ^WJ+_(JS1x}| zNDGL%)=q#}zF$j#u`c^7??frbUy~i#xBtPJOl1{9{e}LOitNqA_4BHAV!MRvvv&FK z;X1}U2eHxYDZj`3_5#Pni)#^*(f%=CY)I98itydO&L@22o-6VFb8&%W!-p+|WiEX1 z@Q=DzJoIs&U}RVL#~-n&RXBSJ|40Gp-M{)CARXrW?}5~we+5AEiOW8+u4i|Ze@y&` z2R>crA2H0H7e0o6+M6&QMlGD^~@>wSobR*)Um-Hzs2?pxF(ql864S znIs6J7QNwxc%maMxhQ6q=r7kXMfXmpq(Ay^n6|% znz#e2?k-~E1=e$}%b2vcg!`u;Ht`(Hz`=7s+Kp6l6LRAj2jZV3P@J$W3sAdr3v7C% zl3!>M99F;1TjVrPkx&CJ|22_Hjy3PIMJmBsf<`JCYa*2(Jdb3r=l!#YRx-#$EAfZh zfeSb%z)M~wV#!+&VxYfQGF7+0<(NhG|7SeBeB>!^rE!#+WNfUbTenXAhI@c)yV`)9qFj4`AUhxbB zM%vqq6sToF#C!t9ABVjeujMWLM9`TJ@c+9Q^Ue7G28??w#_eCZfF>OmBxWI3;@9}& zA`L#|*`LQUkY)movE|~1CgjF6fY@b-CgcXM8BGnjag5H#5t@92QDc(cL6X{qi!-}$ z1~R2}!EX8XUkuvzk|xh+vR0GFGPf z=tGh6nLteS@BFR^2-CQkXi5K09#czG7yy36U?QJky3wSIO}Z2*?FL3^2DcGe7jwJ~ z;(OqI2GJdO8*tc~YCaqXaU|8e{)1oN>OS)C6E z8byiBf2PAUWMn$TdK1GHCM<;bLmKRhrmp=sYUWP7p(NkK>&wTfRgPcB^4Cy%l{xh%HE+kd6t@p5{GH`nb-}2k$#QRF8uwJne)r?B zVVjB=ubse7<@w^y3-aV)kaw_yih}G&5MG&PKET~Te+s=cizQuDz7#1=t(A{!UR1u- z{5}@HxAA-Iv2yM{j`WC?JbX6ys37nMdy5&Ulk%>^aMkTbB{Y}q^77XCw@~+TZdA-T zU;LgNVeG%V9P0i#vaUjva;RI>*BpEQ%>9fRwawSs4#h374Rulz%szPj7siQ2o?cn1 zQovYp)voBgB%>MVOohT!U`ZGz4x^G0DK7&&P@kc&#&smPwb7Sx3nnkY?6HcU+al37 za4Vx+%D4*BGcQqx!r}Kjc=ctkRm4LHbult7ab|chx@kXwciIv8IC9F4_j_>i1jcFs z&bN0!`#2m`IM8bPA<#M+_3>=?&Y>kYCeWGbLhFpVU4Yie|1oIgMyRtvq6E_J3Z!0` z3I|A$i2yHOH`JR~^$3%rcYq>B{;VNfBC=PkaHm*o5@DidikU%RzzMcbZ%V=d2eOoS z+y0shKhSb7;0E!#ErJKAF~ZzHsNqSPwPtF#HoNHvO~Bx5fhy3 zr?}Ze4Hw`o#5yWD#=Pw|c3Da#TmWY!4P)F2cr})`7h-e|Q^8kaxK!=lZ7ejGc%lWe z1sM90CeKKMIBRieFY&|_RO(sY#+h;W-xr=?{3Dwhu0}xFGhZe5odjM~4d%p6?z*&n zkYqkbGds@ux&f}UzF0{?M30_C#iIC7)C6*_9GwfsVD|^34tw(rbk^hP?N{Jvcn433 zs}urICKar0kor0cAD}Bi>s%Z;ddnX!#rT0g=j@I^6W=yf`WLO65c$xVibu2zrhZ(2oz zP!UhNV9Ivm&ygRty~jUq@y~Vq6UCpzh%_LqhQ6ghc-tM&Km6e%Oj8Wzl>r1x%K!*> zdCPnQc0?dZ835rL7YL~E9p_^mB2{0fAT3Iu$(4j&}k6T>YnT7%o( z&2(;oQfL6M89xza^8@_37<2q+1xN;RJK&@ZER zbJaLy;ofYc4?yE-Wm#*~zy6-0@l3=<>=cd1MmAUDX_p71@pP~Ps6nirnvd`kXgXeB)b~Yt$`prSmr5fFC+3&YApaDTzm};-bGqs@+1)Du zX+>GjGV3)r>Sz*Aehrkgd=(F-;gIGh4*hZ-<3(r3p?N5s6NenlG8unBne~UKI?UQJ zkW2o!Q5iP;;8fDF#7gxCKc?^p^jY2SH4uY{mE5J}9sYfC3(I!Fubs1_majMJunz{R z3jZF2-q?HNNn)(!Di+<6cGlrmggcLJ4}XH|$2;AV4o!HOwhnkHUSS>Z0wi|nr((bL z)ufju-8K34-}3D%P5!OPCz`Zs^13FQGJUW6V!r?h(Emy*u{>oSBNIdwIBoea_w2qITCn8Ql)w1%cNL=S2@k|Ga_ebtn z$-6(1@}KZ>rr&w{lXfctn-2H^hmT$cc++S}b)-T~ZU2rH7h)k3+fZjO&KwAEB-Z74e>@4`fT>RaQ}?{Qmtbk)RH``Ev^%`-Dn*t0=IjQOhsS&> zL*EQ%yx~MS9s+=L(tx=Y&Tz^i<7EeU5`U&sC!=e2UYpSVp0()AWMm=LCjBo$uQw{a zVp=Z*b%0($B7)eCI~aEGVCKoW;BW%I!WTY3791F7&Gjq)kkyB;PyuV(>FUD;LalIL zxQ5*|Sdj3*1*1qDPkO}W1tG=}AjZ)@eDxu!t`cCZEXIq7F|Lv+B#Kh(VgROs7Ru}& z%P5RjXT1niqJMe_xj2b~C&D|B1@`P=p=}6D_z2%7IYk*BVVU5uUN!s*?z>c8XVvK}jGyx7|-2od!J=-IXDDj-Lx` zXDqk5xPZbQji*EdCnSg0Lk^E5E#Ei?FlMbk%=724cn2&CHT+6!n?QaG&a=pO;=FPQ zvKair(17&(g|YF(FMdtuuQHqNW==i4X!U+}S(u4Vc-jb}Yr?IqV_jFrbn>e z^146QCn1SYXc#G-eS0I$dimhQ-Z~{yP#fV8UN>}YWwa&yL2Kw6cYb44(Y48QqdLW? zvoribN9Y@OjybuQ<1>(CP~KH1W>DV350aEO+Mzs1w=_j_Uko%>aTIUs!kth=JX8f-NbC;M zV;K*e?A{*=RTXG5XewG*Wn^Ef{DY&tLl++qFN2E@%|uKrK7^QBnu>8rJ_9i`6YpVG zk`v*nmQOS;7f9-nm#4!KlUrUc7B`iVmqYO2%F8!d(f3@fA8%@-yqva!l}#&CUjF2g zBs{@Zbs!jTqJng#OAHu?fk)#yf+s_KE_Bzb%;J40b)o9lq^zeUZdM?wfh{q?^Nnd8 zBtM4}p97b*5!k0>B$TJ%ZuNRncBp-T37{zE_bYIuunL8{hwsgj54n8MyTLQ0GPVrs z&d4e}N!CV0zsV(|UPe~PsD5KnY%FrR#a>}YvvNqdW|iqW-u^hVQs7-}DuckQm5Mw9 z&-LemC0;~Ml%na+%!5Ko*+iYNw7DVVVU?_fp%0a|e`7B?Ef`c0sniXCKSt&(3ssWXE8Xij|B*O^mlo1Mn8Sf!4N4 z91XPZ78xR-;^sh-62!P_jQXZq!@sVQipYg|I_*A*ztR;Uk^?tT$GND(o`ao>;;k4$ z-$fnwF-{ZI^Qtq$fQ=601?nlINCe?g&&4Hjy&nsODV}%&>^K8d{dI(1P+6}za;j^f zDifGLJ3a+ee-L;JsCFW-a)avU1kNc}8Bl$Vbpd+#(B?9sTP2SSv6-{2yW-ntQt>bh`hq!s9p zB-t!(p8~W6w@*Re%CF;a&;Qop-Q+NJW`{bwFDF?A#i*KtMqN}dt6^Bdd`13|@sU_r zh_?+gZXYT5Vs&&QNwf4DgqoS^ zgt{H}h=W$}^?RLAV1Qbq1Rw%7jb^vVx@20+{m{YKy)qFRBRm*;RA#3MH|z11E_#wj zpcp{c&)@U_-mEHRCDt)#JqT(vW@)rCP!;q2ykZZ`XSGBVM=!6aNIzLS3MFGDMkZ0;jS=Ir7ceT*tvgUFj$Y@6}`l9_X9ul(vyj2i5?Cxz3?2?xV z;zbaa(iG#@o29X7aBu+vDu~;6u(#kGda?#$!XR0ALbKS8;&2H;49Vh;=uIK&$O37l z1XP9@Egu$`FVp$3*gT+b&O!ymBp*ZrLK%oqa}zlp z0AOWMtZg(Oh~bI=c-SZpkBQeG`yG5w9t(LFZ#az07$JTG6ijf>=fJwyXM-Rj+q?(@ z_+EaS4<*2Awkr?2yH{y^%e5t zV1Hzp{6MsI-hvg{h9K)V%MS!cx8z5KKN682wf@Le_@NF__1c1b6F-6O4>EiLWVq+$ zy_EzLGa*{=@{W|3)9|t~^xfGFPOhKmi{V&_d@?Zs52>7c%(*Ef=3x*??vc1p8F^L= zoe*6Oo3j=XITsae`YEsjhRxcmk}xX zkA_Xs%%L>l*kH#9Zh$aqu>n_j1tdSJ$#W4H^^V?`k=_#(%eN{D90PEDB z`NPMeYn8CzN7K_V*5C9yu=iYMkDLZetw;7}eSuay`?Ch13UeCF-H?^Tkjho#t*JFe z!0FR#1VK z^a4i8-g19{yiGa+VFQ7iZaylhQtHOglKp<;=t-V+FR&GLM}YIFBM?FJQT~1{?{MSa zukNZnACWtnF$RN8jq8Y9JY;w_>aY*L)Tl?d+>WRH@uarI_cV}vV$T-zTLwXYFI-5g z&_-T%BWZp$zGs+P6yOd-)oSQ(f+=90itRr==;7@Zg5WNqivV(>r)mHxEaVEGwnnY{ zUCKi4yvrQMFURb3S(WSoa5t8auqr%ItKp4x(ladR#^u@J-;Pu;w^Bm;56O44z>9LN z@@&o)g8A1`g_uruIFr@3o6jAln2zExxucwt;BTXol0e3ilmu%UTuBfBC`1wnr%2B2 zMK`5M0?=0`G8XANXRSyI2?#?Y%lk<^^TPxG{)u4W=8IA4eMsw zcUmNw^o7E3s?~rUg?Y{JCL|>%2Zk;}9w-sZZ-+KP zrHrKvgZ)ROQthJYGMECTE|pS|xOG|!lsv6Mr9{GyxyywYu6%ak;tC~hmlj`57a?#y zgeNBrVyYpWtG!(BMN1^vU{2xBJu^u*gWWCyB(=uX0%l43^i5vlk%N%z6J8LVXS^n3 zH5sMJA(|YZNyT^&?>E>zLPf~@OIt7DK_RS{)KUMP9?pR!Rz|0I|!b`1JR_Gvkjh@v9G0iYT9grTA35b6VTZ{1yy7Mi6=@! z7#z;PMB+$SaXR7Ry!{ElJ?SZk4H`Ydr~+^Lo33RZ+27(YL-l{^%&PxWbqv*7WoG{$ zb8jD~_i+9H??x_Jk#%iIVyUoL?Yiwo(WIyiNnOi^Aas$oaoecSU{@l7D|T0Mx$-77 zB}ywr38hs{38FTVCP5K#7dItt%KNg^J&7&(Jzr<$eckL{o5ZKzKYkuIbG_&No-=38 zoO9;PnKLs3KmV>lkTIa1z514{)#`dSG6r1F7DU^2@7Xbw4qJb2J)2q)PT^NZ4)+DR z(F**(o{8&VfAwrCKkj0u#vGXlnnsIcmO2gHrHXLIqo%>8x#TxL1paA!X&S1FetJi` zXWDy7qsjyn6Dn%5&Ct|gDAtL*LBeJ_7LyQN(PBB?PryNsUvRh2nu8K8tKl;5DJ@-* z2#x}O^&rmY>AOEp*v(k~yPO$p(;{eNE+Vrts>09uD|kD)9!^{fIlYq7xRJRUg%@73#1vuZlBEoF$n{dN+a_(1HX;7tuY_e?VT&=&H5P zk6=^7)A5!&ZQ?Ly`(D8bE0Udj`#x_UG_A#rUojqr2aOLWJ7e+bTCv9CwThUTM}u?K zvt-^#X8hijiIztmX^zeX9t?oU5W{NwX@Ws|` zvc&ENaB2a->p**B0ct>{+ti6!pEA2Lt3AM8VA$N(fMwpoG)X=0_pkMR02-BKRw(b| zmbZza{u)>71CX&Kqf0oWJ!}s^=MuYHo6EdzDguF_zB`0N$Sj1QZDK&!O<#AxK^I4L z!{Kf+3nBcD93WgvqR|@jOv7ss`!&w5M5;H-5=0wnF$uY24P2`f-2c8skwdu`dgB-a zbl|dYqe)jXyVh#ALG7$hEw4{4lAzX^&}5#b+2O@MMHjuIn5v0Vrw>7vNS!|aw=U}R zT!5NG2PjQBD9K#_w_VSyx?37Ik8Fo;`e@>2#&iw za|}w|{a%qdl;3E$8_{r+%F%ADF8%cO%wXlZhZUI$`@9HmO(|SUOb;I9+E>^1O?k^^ zkON=Xxqv)--u=Ju)(5N{hNqnvk>^By6_Dq(WJI15q~0g>HKm`~l!46?EPl=6%oi-d zGmbEITgxXd_*>WbkjK<*ZLBVS&9cm`WJuyMt^G_xsw!M?cy7FoOJvP<8lS1=^X@(B zbIew90uuIl$j03gm#kfAPanIa!zFLITEd1ZfQgF{v1)YF( zwItW<9&fu&A!cpU`PYrOMb|BQhIXrm*4M=-e9lzT`W)Q0E*6w<9v}1!?WhP^o+Uy7 zru?<>)@j_STzqWL#ZI`9(?V@W4ddQ}wUC0w_S<|ofr9b2&p7PRqt|bThLlC^j*Q>i zUfNA)2E2u5*93BuyOd$46h)G23c$-6!_F?2=Sw%}s z;r4{3N_J~SH5y~?Y}zWa}b5!SOr9fq*gmii*1 zCv~h>8F+hrtVZwoJ^*KdBb-=fnx<>&GGMO~Y+3Tz&;hk)oU$szZP_j2+DNyIa}A{l zR>m4k4`WmNR?BT1tzN+d?sQxAF7rVbN2K26YVVom)7JcX_SgEcJttR<+TQ4x_0AO;OVdnq-^7RW}r{m2dY=gFAjlXSa;kCERVh zq5jAeQ#PdM7$)ht?L3XrF$1qvm~;*pz{TV7*013UID|pu9sP2?L+~EQ)SR_+FdV5H zwFmPu5%k+%Vm3!`xpZ~iyzLFD9Tgm3I!Yn!UokEr*JI-xc+jb1Cl=E| zO}@+yt_&wG+@4?Nk^C~)BbrVEu$KY+L-djp7dmz9L_WYLHNQxH`9||GSp?3Gz83{VPev1b zAATz@XvA%7?EjQYcoM07&{$DKy0`-0NN%0 z+AM`&-$54_L=z1=T3DWCs%Ngc1EaxB?4w;3H~7%%D4ghq>Pl1AUYElm8hNDk+kN>e z-s?=Q8cSO(s#oVp)Ttc#2}@hu`43nL^LSRgPN$L}Vc1jgmZ?~F?9iOLZQ;3$PT8;h)XJc^XXlq0o?j-}JPBaE3|LL{ zLb`Td7hQX&2i9Ddt^A|1yvmc!Raro*q8C}EojHr*%$rVk$W2lC4>sHWUY22}w5HhRgR`jrONe1M;R>^i%7OcsIDqwj@)4XS54K%=4; z0;IE?@&Wx3KpZ+{gX)d?J>>n4)%xdU{S)Y)8T@1CWaM+`t{-)$!gKK!9o8o*Y*UO1 zpM4l{XpRb$!MB+!Q$Ph?J`lYuMg>mIR#&_cQGxIABIf~sDi`+3=6pGxR=M)#YU1?i-;4bd#NaQ+~{qG`o zA27nZMtYH}rTXwjo=oJ}`;*yOXfxPME+q5e`{l^In+%xA8c*iZ1sb=VWgbQJIzLh7 zkoVR{;k?*?=OS9uAqwZk{yP`Z>tyF*|DB8I3G$%uQj)~7c2paui0HHAnmwC0}!6EMQc zgS}8*Kbxn%JVinY;xjW6OKC`9L5QGQOW+j>PDHk0)@*qf-WP|{2hMx!zw;?kz zY-#+83fCQea1)fzS7?8xw7$@f}k;RTp~TXB9U$^OQdVN_-IAH@HqBM=(}1`t47^jrCYzp zxtQ2PE7GxjHuclW)YhJ&8^=L{itEm%c~O`T%TZ%#Xyy+#6XTTe+aU+o8-|lV1J2T zV0PxY#vHKyJh0{iM+HYw`6Ka`Den6*^34&mFqjtr;>Ah4z%@1^?hniT5=tVgpSa{b z61l)`(m%hIAFRkMD?RX}-fnQw=>{SUp|cNMp&?^~r`H|8*Xe;fy7C%s6x93JD=NEj zJN3KvVGx^1>G03{!w3r3-Wxo^-}B^7uj9Ov4xvq zuf}JdiYG90t}-KLf>7N5ut$!WU|(ZKd6y%FupPy^D}*rlTT{Omxa3@yoavHNUGfu` z9Osf>ZVARy3L@kR*5ehM>DJ@J??Ufs?|le*T8|HvvL0_KBjy@C7uC`0+kZcgw&qk# zJ5QsAJr-|irY>|$?+UlJU9(qY(&0@q^^dp8d2;64t$D0@M;r0|zI!G=^{FpMrJms^ zTjqZwhkQPA2zG8FwXix#EjsPJ28^F`A zmkMx0`to)XTe~`#CQET{ju?FhVWp5{%nqgeHt!Inv747BJ9)ReX<)_q20F^9iRr|! zPvTc<6w+Fp8nCo?pYJ5rU1}s-cd7AS%caYy3l-|CzSJRN7?|q5e@`10dzWcr=9lMEjk%^VC~?^@6{Dv+Au=@^@;}y_thGg?0>l?LrWL>qhkl;Y2B}D za)PpFMCTlReNk2}3>5SjO;a-cfRFg-1_6lVxp>+VF*hfAwYvk`{KmTD87fDlFy&XX z-oA$Qc4xmGtf4jk*ftBzYq!w6t{@Z_T?E9R$u0n4v3cz-HZLgOaF6focIaqlyd6k+__p7sSO;U{ZBO&D+lGymw5@|Zc2oFv zY<&7Z3E4E#XxEy z9aZem zxT#&`O8;x?nRnvhpj88Q8cAd@<20ecn^9)C8KPPn+m{y)^MbfAf^JsU69L@u8}e?< z=Djp3IOg__%Xq6_E8O*0%X(qH5#fHYd0f)vZ~S)N(w%zTAqWe`5+O zbwUlLF#-?PwyB~b3yj{1q1$mEKkb`-8BbgBWGCiiTfey@Nk&m-BZHG^{(ob`6+8C= z8KZ)$N>C>C)4p7X7chR=Crm`@rx5^GQ4+uMZ5}ixG!mP1N&HIb!$fc~ZtZ39D;2{! zVn)B(A)j}Yk1Bn!A?5jKX@UVBpnO_X_x8-D&q5}#sRd6pmkqbY*p8d?y$)nbd2wES zo+oYd;o8PmVrGAK)=s8b{t8%vy)x2g4Jl47=uD)RW!kjWHYmTAYr0L>F!+_p-ex?t z#l@*C4o-Q)EiR&CI0H}eh>p3Sw5xj2s+PD~>%^-`wJg_|c>~gljH2n4)}ayI%mPh4 zR=;TNruEYnwNpY=Oazl4>(WcMu5Wqcpi#l)NtcgB{zc|Dz|v9qRg=XFV7LQ-`8AcBBA(c_HXRVw_bB^u`jS9NHUCi5QpVGf^cEql_5+AjaxK zV#Ke!hKx}dDT}_`RCKAI_DIq`89+}M8;V}9lfTI2L&wzDc44GCQ}p`Vg$48~Y}B09 zMd-D@Mgh~h7kc^rIJOXeVSfxQ27hDvBhv?pf&CX#)`R^^uYE)8^Z8SojTk_BR>zFnk#GZgzm8Q7`tl|9#Y3MAUz{`<{N(yXq322J>X2o+6P}QL&=b z5>hoO>}G;R%EHG6=WOPEwQR1}8`kCyT;|7aD}C{S7$rTIAv1rZ@?op*u{xbUR{5~i z=g7_uRX%KW5qYdhJYXfd#lMa&4ro{rK)X0V+mm1-{PleC4Kp=t5@$~ohZob#5%z=BeF`)l0S#T~*7{-j!AOGmh30dl38X#^BKR8{p7!V>gD~ z|C4SEJL#ft#;~@@q5R{I4N%0e?XcJXYNkyUi%!|iGwkZAJWb%q9coAaJG*qiMyZhUWcu(9Mj8$#eaATXWPa1c0kV-Ps#8zN8}Z`(sksO#jXfS=e{ zo$2L}chRFWwNt@b8DqJx?&T*@_8wi9EZQbRvfIh#h0A9w0CXN zW^I^oo5TC_!1Xv5<|St`L-sO+nbbN%vrzc@e-lJ+iUzco&+TD67>hjr{e>cJKfZ`1 z$l#bc$c&BHy1* zCl)lkkaJ#mu1LdsK(QmsIlnIinX`$-IjzM&Zh&(}8^8^abN6C^d%!j0IOo{r?aU1# z_uj;aSsuh=P?A|o@P+&-ZJ#pkc9YZsy)hPwKBlOTAa>g?H$rb*`s_C#D%$h(`1BIy zpUKXX;?pOhH`p!iLU+5P)g#BxbsWF5(DVjt=h+1vU)W2pK2rq89(u_*{w{;Ifi9X+ z3~EnZpcHS5SzJB_fA#ge#cbR)#hpYlY=m!#u6!8+o zem7wwsBpnIM4~A^T~797=h+(~M_(}czQbg|#$fWnif=}ab2o%QISAbQu94zbXKn;3 z&i;l7G{sx@27Kl?GnJc*>M?Uq4dJU~=lL7LcXROF)ZzQ)FE#?-zd!ZO2sW7*M-0p& z+E(tiOxj{cm`His$C)t*$VB~O!5Uw+epQCg{ZL%UflB6`7d&nfamzr_@1?WV|+lo!1^uuTchzVu* zCjy0CzC6HYEaokmzk+LDr>AK9miF3Q&ol85^Qa-W7ghDyqSy0m4azM(+{J2u#CW_0 zy>VK~l8;P;WEr$UdxBz29xb;pr#gFN@a!8hDUS?G zr8S_f`(sAf(PXFE2uTH_`C*%lfNUF)-sU?6Mzo2FMT6JCTcpbcqNo+}GPj(=VhSq& zgE*%m-nIz<+%~4tkE0_@aBf0Fqvl_htCZb9_Y!ugP_LteF1=pCn+8xGYR|X$<8q=C zM5Duw7FuY({0qjigwPAC?qO>u2nocn~!J^V^nLy2>@7je0ediWaJxs*PiGklt z#&?Dr-x+Rchf@PKYW`zgu$KBAp#VhkFlH_&c|3pB8PbH zlx}l~hhP7|DF@u(#GS}zT&0$c%(X1y)8bs2Iah$Q=f|*Z?`i0uZof?QphmY>0X83( zRVnbMRLaQ*s;H?HAM--=%MH~@6~yN*zLT;^SOnlmZOsttMRHP~`eanBDM#)sS_=O)?aGgOJ*p zi>)RX9cgPwb{p97o97t8As1Ep&BZ#i0s{8b&bWj^OtwL5>4|yk33)5)(~W^6?@mS4 zkd*`(Sopvr(nT8iA#?-88sC7{vTi}fTsQdu2D(ejWeus-1RXS_PgQ_h6w_cmpHnb} zu?Uh<)u66H^-PfJQAKDZRm2wg`*H zVQ)uq@vS5FfK{ay)$+jalmCjTm8^GS6&kGHf9i+f`^WcP`Wu zR13YBp5&8!sST*ZVSu~Ay;4_>I%M3Yj;EV2oP4fK3~i)}R8Tl?d$*}>oNzO60mn^2 zIFOCtwplHCa1-6(x-$oXq0u{U!)(Ife{Vge- zVWA0?85=P=T?xG-I1$OyT}l3ASx;R_aFh(Citu0fbaEV4fKgX_F5+>gJH@5rSiqK| zG!`&<^Sqy#>ejKJ`sqf{>W;--37^OFQ5y>|lZCedb2HNkt&*MWfwKW8b2;vqWG7qT zq>mH9xoFYPx!j#)aMW1S4|Ekl8~bpUViY#{B0shw#AaH|Kvd+G{366=0t?LxtaS9E z7qGMgE+5wB4wm8^ebvWCpR4L*^Y&Rd2e=nwet;gTR?9NG<|&8&ZaageS-NhE^#{(|%D zX4ZcUatLCJXcMaz&=`RVgU?i{K)Fq8>&xT1z{Gvn~;WAk$s z2SZGDYwFphIa6;-S;ib7;Ph(d6TH|x8E#z=zm`wCBHlt?0pjP90pe$p*xIIWz5nJ-SlTfxkG%qB!cf2oaU=dchq3OKplJ(uMJ#MC;uGM69;$Fq?O3l1riU1ta$Wu!8F4BxK%AX4ai?v-?67=WPtKwZwt9 zKCiVzcQM^`XhZ0B@6)xONa%LzoY7q3NvxPRj{Wr^uHad&V6;VO@F^;^aWUJHFvPfv zgaxq|PiEQiGg@FKC>-%MboJowk9BHZy%`%_6S|k)O>)f z8ylZEM3fIuq=W-Ns(RBmgIMq`K08(jC zYqY2&b;j>*6x*3^xc}7wiYV6Wg8!Xjf1eDE7WeZMI~=sazwulc`J%Yo9$yaFLskmOib>gS_34E`ayXWOv!(GSMYxxa4G)oamA zI-0`D9H)O8Gy5=gtWP~&pL(P|^(^j(3Dx*UnsiD=19J{6?M7lD>vcJTLtCX1vZ~4F z3;92oUu&-6XL_<6W?9AVc$5({1d^$pwKjdXrqo;^<)*N9Iu(~!wJTHhdPC}fXyVs| zVhIkYNeYX9$Fy4Ba{ou;9vHUQ9 zmz*fN1dGcTkb4O_SC4SjN=EKfRMa@oh~K*{264RYV&es!?9LZ$R|!GB=W-0UUtyx{ zSI`{}Qk|k9`xUB&w96rtz~HC*MgB(3A0}gQKx$r?+Hvz|mV!0At_)B5j`VAnO=0ks z)&E!1n&}6{fLwrKoR&_@Iwz)=JqNnNKo*@5keO(u5Q1+bhMi^43oV>k9AMy5+vV*= zICo7>_Z^ruAL&j50Z|MD(-()3uYxu^TpY;EQQ(1gOMo;4@e;-TNIY}*Rr&izMKhe) z-VkJJg zO~cRymeojy(=_YescKpiv*!2z=9)HC?7?hTY}KVjngY{I*N_ayuR)6*niroQ1B-$t zZc`!c;oGdHW}65TI!cF?)-+$WwZr=(s8+s!VJ}TOMF=>$;p2FS^%=DU9pZES{RiF2 zwh&XKdy62GZx9>6<~ji9ZKhE)3Sw7ffvu+l zCK#}(Tx=P207|rwr3yRXR^zWRQn;=cw(7=Y7ZmhBinXRLJbmHLSLTisCR z&s)F0oq9$M`yk%(5Dw?`J}j?BDWrC=tUlJmO&qc)N0ibw;NFhp}K{SQKcVdPugYt(}IhmsI9Qo z+X~ygVt(2Yf|J;OwWZF}ARb?3&kOy^+b!makdJ>k`D%YVsb<+aSZkt?FPLqYe4HC` zPF9E8Y&%l8Rws%!sdBL9YG8>8SCC5JRJV{8T+LD1?b+82A56Alv2vjqc5d zFM#SLnb&A|zST`Wy;YJ~Mt;`pCR4M9%su)T!}|`S7XAcOC8`$tNOo9dIAaHihWBn( z$!23QUB_f(6;H&}o?~eBht?X$F%ef}j!^}2`r8PeB@QJKHhFp;fg=Bs^8Jq-7;t$-2M zulvBwRWnENv_DTa^FpueMz3TWr)&MhYi2gWL*uQQ`F=&!HraE_GE0vC23yHZ8>tvd zi%HCL8E9o_RfcP;MD7AR3g3dr?SRQRfZZbnGP61fpa>0&Y-eppos(K6Y8g^=i;zOK z)Y~n}XqU_r8py=e9-eHOGSxoWTQv;*;m^THnyS{U8jU>b>D;9v#$_*$2hW1M87LKm?p_)9Fn* zU#BY5m$xXND$zyuv2J|hSv(@)oB`&ehAn41xiV6?zoVsc#$2+7r~Xl&`n*2%nk0o4 zL8rdekK@#%#;J3Gq3)VRD$8q*rO_m9zF%S=BToe*w1$92tBiS&=2Z!M&}#rP6>_hm zIWl*BBw>PjS*u9IRX4iN{9Mw1&Ia^Ez#XuB!h$`=68?720xx&6#5s}GN$P&} z#$2U5OF8Lzo`0_M&v#qOeXy2tskf!GtCw4PL-i_B&23j(%2=fo{B)2CKJ9_;K7vo% zj!c;EJmGl6K1>8Upz$Mgk(};GRG+2OCR4D~i-Wng%^Tq7E{tL$u`z=kx_GnaSgo2c z-1A9?$)^QVXb|g|7fC>-7rG5`>C2VcW*cN4L~W3Pdv+yM9>qzbqlRVTE%K-`SU3Do zfl+eL+Bs=aq03w${IlwsY#|-|n=O=Vp27=GT?5*a(F^%o<)1BpHq=9F9-f7CO;kYD zn}gOvx+r=fNOpc(W-WrR4VfSLG~?2a8_4XqR&R796m7Kg+UjOZ)nbd&N12Bd<5*w{ ze3r>6H+O+71k8Ma$FXPqw6?t2SuzX;Z4a7ra%1^a>T_h~2XH39>TYau;}*!yJ<29Ok~jWfaJH%Uyxy`~uEfj`tf#I)WwZdhhBjR}`**nYSE3 zT$r?r``!h~Id3_Dc+rm+I6&~>yA`k0ip-ZNa{S|;@z=#$euM)|U`c!CN|w3mgW)WN znunMf2^tYYMKh5l!<@}sg@-uT0l!cnGqNpq&TOw$vgo0|9#V@MQg}CBZb-eI(+J+H zlnOKdfhDNVd8FM)JynBatD8K7MMc<V~)VBCPNl4NjTgvD(=an}=sM znnU(fm;A&f$GPN4mn2*=+$BG7$@g4xgG+wxk}F&?-6a(+*~}%qT+;bttM5~nyzi2? zUGkbsR=MP(e`3kqKs0Oq{bVwIFnh6Z7F%}C|GNK474gg5)u!*kbbD|vJAYV3HR`O& zgjjn%lurcx>NVI@U@|{mfwA;BEYth(hM<8T!2yqprnM$fm+|%C!GNR5d4>46_F9K>a16UYqqd1fRdz(EbE>c=qx0F!EZhI>a>@CBRrx1{4KHR2iS z0i%{BWs4h9UxZhG`T@~}A2g)e!|D9&c*EFzbvVWHpK3_03V+GZL~41*pTmC~XHApyor@H@k?Mnwft1y2fgcL zFKUGq0zD!EJtEq0o4~^AD*KdkYWJ{D`(2VqAHb!#9C#0GsQ4Jxv7608^T!|oNBCRq zFC|*u+@S-9D@VUu22#N9RrcGA*(hvO^7_g(pCV+qveeO)>Zh7S%0LKTg9tLNPG22k zb5i}v{LumRmu`ZNRoK!wAl`O3Hi-!!(N z7&O4yIW{;_$|0fZz>@|b6`}5*cIB;@oDe_6952%-SZ&5!tD|?zn#y?F=H9&HrlYky zzREyeh-Z&Iee#p)Y3pRdB@@AHed1OxkI&X&un~V?GtUP$Q5~Bk)^SwD^YP%{CIC;y zgID;GKH#tMmT%Ga5$WD{j~KSB=|v%Ux1rOd*whAUIG{RwqUjUku`;NCkdPQBRP|kY zyUXe8@XqK1(fJ@9S}QsarwW}Izmrm)w^iMcfzmS#vGjmxEnl)7Qc=+fZfoZjYu(vy zpXmOQWy+^d7R&tF=Wu1K8nIhy2RDP0P>IA1|w0?;IUKDlVyc*{!Bu=jOB zrf&|J=DEI+9Ol)*;jex$3=XC)t}0Ii+g)#SPY_EFxTfV1>RO39KS8vgYsgYi6>~|% zii>uNx14Hpo9PHXU|Nch{Oixjw!Qhcst&wVYS{ATGsU?E2P$i3NoLdbiD8Qp0VV~Y z;x|B4uSKUVSpyo2J;I)H{ibERxA&#%FSkCB4jLXGU2;G&NqRlYHE>NqYEP16E zv>6V&|7WNTdu)9T9=1ID_Ua}5jEz9@Z9)q_RFu~DbDw-(fOX} zMEyex>Y@>(WzDAX>5qtXEo(}fPD-@2f6cGn=T~ws5!!x4bz&*v3YAr`Wl4>(Cr&gC zxg*@Ujb5?NzTRtJl}yBU%PWqsZLs)r90D(5GIll%rnh4Q-tWVx5n+%Aq5!kJeDu{? z-0`vVe?%)jQG4Rk_p?D*p0y$vue|otb=h&vw=^Ff4J=yjuzyD5Ok4ZZ!Rv3X4b-KH zr!$Go7Wpq1eH?FW?^qF@@(BHQ1k#o@y^7hNn@Qocyhn#kP!P5L0WU^htbxu(bSzOKNykHoecvPGMC;A45DM7A^__e9G6*>Cx*DoaW!sVq@~*#1NO z`dARF{h&{Y5hmR9L{kUfZHH%G!V8e&nJ)6KGhe&&OM>HFD_I=l7;)o^#Aq&riMRgC zsMyHci9-{diZ+>VwLJX&JIr$4acr=xZnSFES0=;mt1ge>L5GQqxW%6TZkEU|qi7tFe}B9Y z`LVx4&H!m=mmOa~Hwq98xUEcZD0FWE_UnQvov(6L#q@I{uDPQtFDwu+o zz&W85Anb_U$jkBoTGFOb7V0!n$MLr%rW5 z%aZYn!~XxK!&c_?$EHKE9!)&GRELItadeJBe9G$>Y)l-?9l1-YEQ_THUTcc_l zEu*-$V~*;fgzG5ETSwVos9s7>7nX8>P!3d?P-jl2##!Nzqw~p;;OgOZZz4*)5haaR zJb%D5{)fy%sIXaKX~Fm5(GT)*d4Y06&2{1bebng%U>|06O{3@!o{N< zwVkG$75=r$^UVd%;ivaQT^)g%8#;>F8^)O}?}6Y1&2Q}=>3z5%9L^vlbdeN|3~lXA z-$l!Jj76%3t!Vy!A`L4YU)DTSuPM<#J#dFRvMaP(u<}Yl0c=@PwK#z{>h;%=m-il2 zpW%|};EY6df{4BK7}Lac!udpaD-Y)aemMVU@B*4*0v!jgwc>#qg9n;*A{3o4LPn6< z5X24=uBrv@po!|Yv9~#0;QK9$!fYfrzIpi20&qhXfz#k-DlP{ zzBsjwGcr&S0^FdXB6jeJxyC!G4u5uQ@y1_^WYYNd`=CFYNqeM!{IWM)`^TyMjcR|R z2tFRgN@s&{T}7ViQ5%BTzN;KjDn*nkJP9S?B+ejHxv2F)B`yEX)BCsPs@^V zi^IR&3n|#>ur9}cL2LC;w3YLZK0uHs{?UXvM((VxQyRF`4+wLlxq{esw;>W>7H(4g z5p8a**2Z)VEvxjNiEN`id)H(z@SjB87zxvZhrg^LSt}qxw2CPI+F`?8CsxYiQ#GTZ z`jSN2Ada>g2i|e3YQ$6V(as;)9P1K!fL^f3QD41V0G3C<)jq(RbY((J9EnoQ?Sr1GbL}R`I`^X(8Z|GlVMxHh}8ZkuSaf0x&rOFEe!wu1XpP_UK%S^kdyBroCJL)j(@b0YuyUe#~ zo9}LU#N*gy=H?+C>Yoz=44ih~I=xr7SE$>8r#&?}kqOFQcwW*XeJj4jL0A&*+W851 zdTGHL$LF@Y0v?(2HghOUHMPoiZ}MPl7z-FzDCYt6lY zg^$ui%evmpgGQ#yhEH32`h;IjYVOOL5|f{j(vBy1w`p^gdw0g!6V7NJFfx8$qW9^1 zdiH6}ef|zhlyIG3%eu{)cN>*1tAF5^XPwb>+F28uMh$zqxsr306NG86y`Z@qkP783 z%}k{ZB#gVf8=mKRzF*9f&9jLojL;ihX5yd@_kA4dCw;rdr)6qf zP=3MAQdLkgaEtz;Vp-U7lNVDF4_=(<7XCr$L!p3vwql4Fie-VaOvyELE2i4S%5GUD zl8;um_5#LEgj;RL8(@Fln5PPB)H>h`bHR6=3(Gles2|}=S2=B1t4eH$0pS`UTw{n1 zyx=IOlEPWb)g-?}>IS1j%hIu3Z?a8!wz^?OFrm2~cbuT}A2?0waOU)QWA=sB6P2dD z+MKpTS`@DW!b64O11~ZJ|J{u!C3dLC>!=&OUSrI}@z+*7=`iS5y>5k=v%6Sfj#>Tr!q}fp_hwzGOMXnm+jNuL*HNP7H{T&uIHR-nzfNKXCh< z2p<{tRP$lh|0YQas|%NY@NU+<#d+{fEts2I1VQYjKD0<+>Lm5NX~R!4&s!X8q@hWmay`Ku9Kq}SWRpAW}JGE@RJHr6_-mSAH47~nG-@Es4OIfye z?aP#U_wc#7-nAm#diT1_#`UgBhp)V#-qqdXnZ?pb(8feAy|Jx*>wEdFttxEopZ=cL zTI=G7mxsF6-gSg;?UH}wwbn6%TKkh5bFH-^-CFy{aN}C5(&2xeH(qX8vkf;U$BHmw zN<*wn;Mre@7-seP;nN&AZHHQ^gej0pwE?v>WM!6hSWa1Po$BIFJ8Be&mgKwopsr58 zEA*Q?a8geuQZI-D1%!J~6Wjz6yr9K5xLqIFQj4YY{h9J?yR~NrPy^^33804W>=^p% zm;D&Z+eTA|2#I}_{p8&2C*?=>74^}SNI;{(7S|#M<0v9*1w#8zXfA%JaED*Gkfj<~ zFoR6$K}O&;2+r4!AohbpoTV6kwAg7}AV$~b@{{;Q`;Ie45M(D(>}*mVw*|B3f?sw^ zK>{0N`pX1W=ZuhrF6J@7xE0nm17Gw8@gg#K&i$8~p3}z$l4q*|Rch7p{GqWZ->FKT z%REsh8(QW26Oq^>O|)8NWR+HNG}(NTW85n3hyK$IV%K=v)`A&C-)2ew1*$Z%aI9Lp z#o6z0B%a|)H@jtxjq)SXv7Z4hv1s+CEXr-7t5&Ouz`WVR%v>#F7?O^&_AtCzJ6ZBp z${ne*oU_TD!oe8i+CkrjHC&6RKC%*Ykd+V@04cM-zy^a)wc;#hYr)WJXo6K7YseXa z&{Ty7wMg8x#E;~dfr8K6T~w{+W_HC00F}y~QTgpZJJx0XWv0<=-&6D5e)XXI_gndK z-Sj$Ek;KFXPRS6RCJ)TQON9daHG~3qc+R6$*6*|`V!6q}=vr%CY^mQA5gy1vd2aNI zN~Vlw$BQ{qqs;;_#$rGfL-9WtIA+rC%pC#nRI7 zPzXXWu<2Fzd5vttTDB#CTLVpoFm>U!4>+AWT5^*#Pz{=U&2;PW!N6hlUgwT(cdSbb z{g*bvWUkBU+**hv7hIwJ@clP8PUot0IOS<)KX@B}orkF}GjmulD*%etbJhp}`leXA zSR+B~Qp}P>ikaJW4@YP(JG5+98kmml=TJTn<~qb;*}G!g_QpnF9K<%IaQNs75PsOa z?CaD6kg?LznJ#E1h;1EnsEECs-juaMk5%~|bKff_3Dr~?zH@4x-n>>Mh2S<$0DGv) zctx;6-6civZTl#)M{dX--QWs2dj$pY!#M>CBHp%408l&*fvn=W__=6Uh@IH`o8i7Y z7o)#4rS@1IoP!w z_wmgK=^npn;+u>v3Pd+8x6hnznx(3oYu1LXtZusb;vRLAh?=?P|788#{_kRf+m#Ja zk4|tOd}%#`dy;Kq93kIt6t>_6w@Qr)1|~VMOLNok+J%t>K2WTTKiy&k`@J4GVsb zhp5aGogdIq-ZXHPp*_=W+u)-Lllqx{0`BX82j(pn$<&wGdGMUaqIqyz`$Yp)Lw@1R zc^uZDOsj!v$J3b1Pn8+OeiC{mGUh=on0!4O`GL91G-&TFDrY4+uAffaj$}GA(@hal zM^>iGm#b9p<1($tyryPQnd7@d86f< zd+ueP&gXBU?2eodnz!CSYbOf6#Xp`HqutZqtFQ*#>1;Oqd$KB2oeTg|CiIize6Nse z?1jw3Q>GTI?gRs`u6EL7_P(R(jdQ%77Drdf!2)mljg_fa756B^*LFZC2=TI~BoB%l zxlAX>^K0vP>$|G4rL!{LYBSxIPNo_%HF`$VW~lRTcj%!iU?yWKp}?p;#~x<;HnNTc zMy`!=MPiP*He!&5A6y;*S+|@BG8!>C5e(->#`gHkS4`e)Ro#X1B+_j1GQI+!Rl-uq zI;Jv`wMYX6P0m#((aoD?Z245qkTovHL({9{ik{oZ*qH4KS%{OJ@qESEd7V-tg4bF% zY6|A8dfk=j15@H{yTK3gC_zr>>AQd05^=?1pU>)Z(fn@T7vhS}QXd&PtUqS|A;PS! zU4o}Nb~5b;$amv~&(^I%oqJ9Sj2-C1yBmx;AtJ#ZTF2R0v7BK?G(x)-)y& z9AY6!gtU0k&dFLgqQxg|TyqN~wi}fCdf(8N4@-M$Yj6m`Mr&f{j|V>sHab5Jz60W| zx+XSLwqaDqoEHVD#DDy##hlDu6u-WG$3-)|o!o_uHbC9K5qm7j!AY=Qc0rzJm?*hZ z-oSZK^OOz1uAh=!EpFaV-zEhiU59Rppve~{-YDyVUOfqiXx5bMxFbCFwCv}}Mqz1vO)rDCNwc8+cq@65qA#>+BxpY^$3AdIy?2q^mNjuMLgNFl z?01RixVga{zGXgysO5dO&d(j}@hLZawy<&sevyyQAYbz*ALr*f+Te%omk;e*9@>^h zu?mCP-(bG;ul&-QimEk>isr6+A^%$zA*>g+YC3?H4QQ(3Up&Cix+(Vf*Ym&SU=4%& zco7IeZ1?WpMoYk_CDQ$NnOg=4Exz(O;IRJ7KsJFnZooehgT~hOi!Lw&X9Tn2pnTaQ zvZk0J$L~ct%NJa;RY{_Bxp=LPw*BE1Va7}Z1G7vGP6R5J zh-6^c!TGs0zL)MBke?fI;wDxHYe>*=a*;2B*cN^B%Q>D4Vi$iWKX*r~qh(E*apI;1 zvyZ_%wm=@Y^|)Ni&W~K*?Cx{_^W*&7y*BJd#>r{mp%w zw_HGu&WFIYxQE+#6`Z%4^F4n$sgJ$tc+<`x{g|&3!Nk(UuqWd!rIg_a(q1|TbZ%Yz zS9WZu|9pOM-hpKAcAkH}CE59YyzS2X;tG$+D}J>*b<}FJyU&xI|A~%JJOyD*c7D)| zO~O%6!yZ5HLXHvW#g6Rznoy?e53gg&jja<%9Y+d zDm~1RnBybciFx-YT5|5fy4IJq_jQmc+TQUNf2*PO@A>;J6h1~2F5AH$E-XEPvAI3bZfk7jEG_yV(^5H^Blh*cV6C6&& zYzW=pTYn(|V%`^?x}yuB)78i7w~01_@q?KaBSg5*pPWI;$jHb>pC(in@m3>UoF>&L zs))Trlp5*tCS;1UyRW!Wb#ukS^hNqXiAG^or#cxCC)OauQ})%o8CORCJLG}TPzm_j z#I6i_T8qXNrQAAYqz@Ekrl*!t#$s~Ag9MpW|S85!hPIOoFM zqT#gn?gpX`_nW5_=Ypm9rG*Q2ZXcOC#=GSziM;Tr8e`f_48i03nzaLV=8l8 z=0*Ej6a{)x4}^7qvTJ6V`uv)ptYH@H)-*skrAT%qhNN!#_v> zSPf!{l+xPw6`#2cLZ{iTb;z_O>ZirwCbQ_%y{u33^;yn7q<>et{v9Oe%(VCBia_+Q z`8w!d=kw6sLf^SWu9g3n9Up3P_&p!pM!VgN%S)$mLl7IVsFd#zt-w>B_LqfECJQ^w zwsBa0NJ6zpdYX7GC~qz$P=N+g_X)HZUP>QLM~R=Zq&6zkOI6{ue{p1mqS?To6bz#} z)sGcn+Zhq>@dd$E1Do2xkClYBuheSwCm+)pB|7Tb2qEfHb{sG1WV2xDajI{m+rg(c z%iiHT-Z^F654wIMES=tSx8A&+3#V-~D$%FoRa;qj{r>^hk3Fn$>_Dj!4KVeO!qcM` zv2H%|yPiR;N2e`OM=u`oD8u7*as;Fz2Il;@`_#K4*t1h`^$}khz(vckWFj8Q;~zZ8 zDsKKq3^}pTJoO$dG}n63rJgV3KZ+BKWR4=zI{!S{ibN46(*2Q)9afWb?=?bsc6T-? zn&9(}y>$?XdTCTJoTvf%ram}__C_UhPQexGN+gVZnB2bpsnvy`H&BW7a)9u=%B0wpN!Jxm1Fg7`e3-=FnR&L75{@aZIX%ty+-?D zri<#rt>_vrj^wi{QNAX8_e964b?QGj+I)Uvq*WqG8lhPn=SBjI!MN>ywK0g@^i@vc z3~OJR0B*n}=&(1Va z3%)4ucKhwVV9@I0GG^K;zk*^aMTTJDg-_>3%QB;kM$6MKE>ye{d1;$b=eW_*4ZfK- z4Zmmv?w!}6ZgonefmnWM25GuQr%HizP5AWIZiM`1ZIy?9o~p&I4CwjQbNvILn*_QE z(5HKX)@Eg*PHukHv_2hskjF?PB1_1C*D<PIf@AhzA{-q(O;^k}ms97J?76G$X;c zHSO#K@DYPVV^A1ep^l354x_>tHNs?B+z^!ad)tkdDq}i~^VCM>R=Zo>ajQ{WC$ItL zC_wiJUuu*-uC|IyqHNuR7)fjVOpDv_I(Ch!P7}DVB=I**F4P23R_U45K9hEPIc(Us{^24=GcE4DnBEm^|EKxlu#io5D_4t(5ZW#|wCu7LVXx&y$r{yE^E?uUA+3?2L zk8X{@lT?$Yu|KlHoniw;OT05vMiY6f~tGASN+o)N( zLanIO_w4`hD56wlVew*|UX1sQHw!%D4C-@z>I5zp|02hTNnTmq;Wp=YWkeOvj`cxo z)#p($zsQz_1~Io)K=mw8eL?KK|B4)*;pMeU z1YXz=pS$|}H{uY4$^+v2Dyi`wV(EswBW4?&D{S7z`LF|Vg|{jM4TTA9HSs&nxuI2xX#6!8{L;q&U1Vzwo;ZD-kDVx%?{~ zXtAW94L%RK0JO_`R_ezZ_I@KzrJ@T|NQX#pR5ay|L8-vYX>eAYc@jv&)7v_sw>E{=H9<7RI9z6AsasMirbEZ zrZK52&)hbkBwfDqIbzp%+xIlsrDCs;3EZzX^ATl1tnVLXNQ&tvcZD$BAiO@&L9pnj zRBQ^F;lIj+1XTy+N52?ZK7z52hY=~`*!Kh@_FKU~{aEmEs{Gr+A|2b>k~(BA+C)Id z8uIK+-XQsr?n{oJEgLtC9#kJiKwmt+VV8?|%q-- zRCxoRhp%laV2|1>0c#%2o89!L`R1?JEsfneVNgl0oRlPj1ItwlilzBhRLP5E^!6F2 zD&tRNym^!R;utbAXKFGS9C#o79UiQV16;?f<25gBJ~)xq$^vVX90FzJ4rjk6O(in~#xK)=X;v45 zyUMk&MLC@IIh%Gi4MY=7?>zqe!t zYXu`$Z?O8SKeg%~pF;K5WxM-t>h8O<-Ca0doqtG={q0xq-Aq8y2H`!OQGa*o%Hvhz zZN7>^emb~2eAtK{R|6eqNkJL>kFWKkIK7w8DPLXy_<2za3gI8um3|Tv&#!=&LO=1Z z4s8>Z8r#bmv1xcv_8mCoi_T@LbGGU%s4srm94OJfO|_0osY1&<>GNpb{)u5=~`>two=LzMt)6f>i<_QP~+~;@Pb*zGMpEYCHy=}s1`TSnJwb_BK z=2C6Pufr9S(J+Uj@gias;9sy%>GaCZ>IORrfoYw#hnnHKhg%vBhkq=F5+{N2{>{&b zlb-BCkF|~-6s1(apVL_Jws-XctpRjqoR8a+n$n9J@zr3JNg*sj=rRGN2iRpb4SSx_IWHi zcl0IB9R*CP>9LCR;6}bci|X7_N{!$!&S?2t=Z;% z8<7(qICpeZFEazb{gKJq&n7|ecWsz(M2feSX~0SCYqqu*g0 z*AL^=4|US-BeR^;?c@PIN%$VJ7+;mj{*~7*Mdj&M6hU`+N;a=go&sEK>Uvw>cvN=(wD;ziHFl?qW)EB%KKkHVXY)c7 zy1abYG8xWV8b-9nacFz3Wn|Y5`rjNaFO;9XonKA+cUorYRA~o#G97C>&Dov1tKMMW zP45xNEQAhb-EN4(jt5qP)?A=Ovo*V2xU)@!j z48Vwun1@@+rV0++$`U){Gh6?WQT;5C)IkzpC4x&<&GYO8E+3N5D=m*yxmVS{a-}AdrHxQYQrD(vlVd@Bhvn+Kn{#DV--iN3$u*=n z3{~F_J8x>QWH9TM{Nsv{;?>8#RE>Y7MFm&Noy^~*eJ>FY>XwLNjlSeu0RreeQeWTP zOJ9c7b^b{ZyDztI6hO8NFJ&iJfUqSf}_lpfM!h+e3 zoO0%b_p^ISorb(fAEQ=LK{zCapQ3FT98reJ|0gv|j)@@l(gFd&<_l)}9fTT2n~DKB zjN`RBPc|rayw*=06pYu{>@1W#e|5N5Q7BdE^1nGKHNs^J2c<^nGF_WCi)O=j5O11> zU;RuEZnXmU%K@s(>Yvd2)Kz-Kk@e%zqR>^V^yR=4+?T6)z&X@*wS5x%G$GPYQ?5~r zeInPx&*}2VEg3jpN!Ax8ajgtT|3iW-69ddJ%pYwUs&f_U%lzCD_1xfeG%Mkzt)Zgk zMKlQP8EW+-tPi#Q#w&?wOQbUt+;uV-g@K|LZ5G3EQ%OB&k5+iTe!Yjb2`A{6ZsiS6 z)~^N|d}629W~b#B{!WNXkU;@CrPgrz)ok|qr5tN`X4qt8-D|hu1+mBPQg`dCll0Z2 zOi;q<69K)YO;vK^1K?&kWw%1J>S^zp0HyA99xjxfdAib(|5*%FKJseGnv5E?9$i%u zJ~-`5BVv_gP+coxR?6!t!H~yH0%`V6Fz~rqDlbQm%B$zY3w?QtP6Z4}M$Kh8hpzD}g{da`74EwZ9c9)zvn63ikbuWn|UdcrWDP z7hopF7_Z_J)rPwbAa1i)e&&UYxw@VBCihto``fX8qHYrU!e50Qeib) zb@b6pta#B>b`T4E+sdZn#eYXT{`0zml|J#ksIyvW5L;~u*0Un}!O4rhg{Y!zWyGLW z#-KyrhC!nR3p#YJ${0)Wkn|6b%CA50rZRl%66ap1QWI)a`vUuLW_3HMA54}jD~MIT z<{J+l?km_e-07#T$E**mckOc+V}&cW=Urk3-;N5)YxO(KinpU`)MwFgHm1>$xlqNX zE%}gyGrX3EgRgTY`BETFjr9REWX*E z$8skSS&!0_4cYu}=94U-`D(B)zdslBY8{e3Dj`8d2!=*BLo^13l>i{1(FE%bkPgpJkY zGY%VbA2+{X>oDPIXTmM3;g%eK1lTE3v1Si0EvN0=cPsNOb!T;rnQ1=FldPfkURc9L zb^ZZbw^k?o1A{hj{X-SP^IXa`v_=h;6;cwenc`%xPGXlds++sUuZ{!*58X|}16uKS z)AF?9YWtEM*an?_v8&)g(qOhLWm@d%Mt}#g-yH3w z8=kZ(Ov!?574=1K*qZQrTYh2VKwSa}8LC-gTL%UX0IoCW*f$^gXfPNxGKBo$tbjI2 zHqfZsB#_0$kZ$lz+tbPEeSf9IVg_st_0$Ur*HA%T+!Frxfr3rAk;-LsXCY}jZc6m3 z3p-i3J#>^B=g&N%XI5LqjCuCD{HU4g9AMMjvY6fl7*To$ro~k4MF}mDdpK#>fFlyJ z{J}K~2Hw^!=2s`}f$6`1p&*gPFqrI`RU<0m@jyF@CgCo=S$x}Sfk1lCM+z1~EmY~C zi@Acwhyti+M4=O|E>kXZ8>~-H6b#Q2$~A4Zh9ivI4fvuRW^tY(m^QI=q-ACTV>( zw*gH6261rNe0eu4tqfD9o#iMG!j&zv7w zGwo^zq;jdde?mOto{RF#2d}8+h(dKh_Q5NuXr0L9K_ioEE;x--HCd6%n>UF@v#i;s zS8`X1REA&pme;6-^E@<~i!QZ(9r*kbXNHP&vNinLV-zMR877j+@Q{iMH?5Uko{C(8 zy#cfX32r=Av;1Zo0}L_;67a!lAZCu!A_EV~504`Zla=Fa({(Ix_Z|k>?oH=A$52O8 z<_3R6lH16fr=y~gBXTK<5zy5I(R8nhhs2)#h;BV3#%89ff_{3 zt&l}b@b2WG1e}zg&O~nkU7W@zl-^Oh`QW2#mDs9>pokTxlt4IY%|1g0AZ%! zZLN7qnU9!Z$d!jYF7|Y*QU@y#T7(bEJDwK(X8NOZ1|D#grt7oqTux=XuLkbxvxi!5 z&GyvW*6p%TKx~tEVDJy=O)rG<2f-AoO-$j4#)Bi8euS%E??$vU&^iS~yW11ZrT#Xh zAU5dQB1CiF6en8KK@e?opmUL7Co&mtJb|!UaDw=qiVhduwJ5-%z zt~M9#W%@FlG#6&TiI)JT{)4OL@9SKD%Hr`fD@bi z5VBgh*p5J-2i_H!rLm`YR~jzti&^{5z5H`2bO`^ohRB}rGx&ALzxn6v@-Nnf^*4XH zF1+Ps=A^OfDMLVn2Nr%X7F4vJlk-s&;=^gr`FG{GeNIC=_HaD8Xf*;LgR69vDKwiY zJUCk>w&_#xEy2$%Yc`q6>5Aqgm;jr#XuZCPsynXkvYr*c%!a>~_i8m1;cMU@Rx9n~ zlqyb6;f&lhn_SeW@II^C+zewYP=@fi5A?^>uyYf` zhU>L517;jxJdf)q5~xj8)v}~^u^!Ez;2y&jCqkYRArFkRp8rZqN)P7mNBkXKQd0Ue z{!ZfWWd2U!?^OOybbYcbv(y41XGTRvW=2+Tojmv%iCy= z``S#>CaukMFHiB$A^hpspTi6t=bxwfhlx9AzWX|8yZbtPWrx{1EU$z1xv$GYyDYEE zh#pJnv6LQq;JzN~*FziLx6Y#0S;{(T>nNbKcWIT6(%wdEc~5EYiAA*H-V<#!-rf@( zQchJEK3%!VzqRZ5d#2OD-)C!RYW(f-Z=Jc$HPP<)OUk(xQ+}exT<0z2g$neKy%*}t zb+NY2ziX@bd#S;^m)4kTro!+{tINMexqRpt!k3TWCak@e*O+&*cYYbeaqoPae=AqfK6@*RXotO(1{wl?@%4KvY+C$f`l}Vj zUS&(}y}E`WySG|F)8a2FRSu!O)n)X;-fENK#X55>w$KNA7rUg?I0W|ATFhIsGHW+j zLhS})mpFX9)%Px~F}z$wC+=OYF}BW;xVPS9Y1e8u@wZVUrBOo%qK`;NPvP(CrCI*1 zkiJ^O6xzGGhRL+ISz~OILk@pga_j1+`FDx+X*F24)*9c{wl8gS0_<&Dt=g8W%_+9G z&2h80Z7Dm4rV#EN!ob4c!}j-x{XJ@bpW@#N-_^1DbU4TMcCNB+ovQs^#2nh&S+uZy zX{T;!x<=>V-P^I&=+^j+-P+6cm-Xz{`9!)bHeWJ-Q?fv6}Hm26;m@k+N11Hc+d~}vE6bDXLx-~xPJwvTl1L#zxVUN{C5>K@j zndDTfjTtgqLTJ#VImEj?X;Nk z>{=63W8m425uamz{SccGhD22rVm`ifab%${i0H$|3JLdwg#E0^j3goY8_T^rru`u8MG)K zmlw%R1}@j^wU=vEL#>v@ty#@xs}(luY^}yB&0=ElQU44}nf2GsdSSD@3iE*>O!2X9 zm7hhI0nJtFY|lBb?p&wF>~ozpd)%}tUGd($(yW6?4SapA!lwI%T8E$c4Xq|Syi%=V z91MVYU|tNM1u!}Wz&J31_`skVxQc$~qfSgMlumbG9IfH`yy0@Z&*X%`2%m)yg=v;eHTnsc#It(;xl(c-X1DeMC2b%Q; zU(_^~jEB9b*|P3$cE}e8n#KU}ATJvLzh(=9RZrQ&D&NMeBC0kx2HRC~&w(~32_KC$ zHdY%y-`*!-J))SFBgoE7$n;^-6=yg9pE8 zeT7nW;4_%veAon<_^BZ*nM$SGAN1$;UwW6}>0cSP=fw1&MFP>{3}`&Uh(u3pVIR~s{cn--YI`hz2MJ-VeAu72-f;TN*DGDq>wEVNfB(Yw zjNALR{+d7UZuoQJdp&;U`~10i#PcmY?a!I7@#pQ2`?GXP&*%KPd0z1~|K3vFpA%K# zMX%4@@8ANpRNDSde=dBNKW~4VKkxiE{=9X;+q-?qpLb`~{$DTpygwIe{+zky&*_)_ zIkoQ3yN~;GbNK;p?-hS;FZpx&yL^0XeAw$(`f`76Jm$~sukh#QK|LQ8{ji=#{CW2& zJ&*Zw;TCQt{ULweKJCx;vwA+~&zW=n z-1YKNr5i%b9r5pHnaSv$P=mwf?*-ym85K`=mb?{*sS}t=Ig0n?LE#yMN1{ z<+psi-hRK&y?y^6&XPEB(1YH~!F{QDT6>p%MQ_V4&};b(mwZT^fu zZ@(`5xBb1-;xBFSmplJl@%o-SYR`=idp+)o|CGgF?kfM3_{+5T%Y^vL*0R1!{ofXU z*|_ZOa$9_6M*O8D{<0wcGA;fxA^vhp{AKfb&%Y`D)>i-BR(o%W|J+qQ?}!g=2A>gs z*%luviN8#XzifZE_=)&STl{6?uZypU&rFHG+&b=jDLzv^>A3W)Kes;N&uQ_O zjTIkn8(00gS@rLl7Jr!$f4TcvA3r7Wm$LZF)_L)Vi~igYe<_K--2Dqq-(K|RolpC7 ztL@L**ZtWRe<_Q<+|hGE{N>JPoxj`>-T%*VTi*@G3?TCS!HGDiV zAo%QbD$vdcE4?$9&gwab=T(juJ~6(qys&W!O+6W})k<}R<>IfUtFB%ARemoCYzfd#vYT$BaCK zi#O{{tc(V0zOWwT@5V76qo`v~j$dMqUp{>?GFZEg6vWr-G!6`6iPGWwxWL9z5YIK* z7YCPoIX$?#ZAC+ug2593+qJmJ&VtaxI+7&f~fF!+UGtg!g(o}QhvXSc_C z)w^pw)|p*r447`U@@Z>FF2)^Wz8U=njR}LRH7{q? zO$LKlpL_ax)8p$+u5t%geOW!Y%J~W0bW_M67TxFA{*2~0XsSJ$%VrfEY_96bdCT}V z=7l{wHjbNXtIMoM)7OxL?Fu>o7*A^lEWoY4?W$Rb2ivMA7vIk_ov)?`VeH}N!{Ezn zwua?%jqmB4_xaGF35^)5ZuUE${EiOizdgO(JN4xi!|HP`%wSLRf;Lswhfnf{9{ClY zXh%zr4`qLl{jff3nx_?~u)Ryios!U=}e`{?Ne}U&5nWX9Rln78vr-i7ss<46OB5C>n=O)|QNS51q8hLds3Icn+PaG)+tm!9a|G zizvujup$rCS0RCh&NLNurg?1dAg)EB{85IBdQ>ZFQ*K+o%g zoguT_4xQ_|)fEA^v<{tzX^-*~ft%Q(U;uoX8q3i6R_hu?-_UuCNy@e%>?hgQ)X;?* znvUOvy(RDg2G*Kpy&mH9vH~HHJuw2d)iiWzX~|^l(51He0(5XaWH)KeW`VdiJ%WL5 zjjw>eh-f&gsV7?2iVBPhTrji{cHee|gZ%!WEt z>47DHr4L;NXIR4=9)gY3qpq%1uaUbAVe)x>stt&9mQ!st)>c_gwY3Vns|A|2zO^40dyRrDC}9E#ab2JVgXJE2I|)@a5Ibn(K-NR`U?${JGN>=&jKnJ+xe%H&KRw^TeTLyp_y& zXa!X#*Bx4^HQE$sLtr(=kB90_?)i|?RMS!N8$+u@Qz8#XR1Y1*KPKY8&ZthAkdcbi~zZfQ99QwF(^JSEWjDpuKI4xP`lQtQ$-$vssWB< zfmYQTvn?q$^l~&NwGo^6OxtJ-&>>;!vlMEOXshU63$$xC{GfZ7(u%0-b!t099jU8B zoplW@v<_4~MB&5FQ)6NP?41Fq8diDJIi5EPl#as;)aTK79$51L*DoADwFz-w;AL^~R<~7u-i^-TO!E&I8 zectw3hSrREB5DnLFx)yq0E(9dx;6hUQzcl=^$J-(1FeR?eH|N2me|w?rm-HFionGP zpndG$aI@BXa;<~WD2#q-7=H%TyAEk?%yW$5PJRs6ou| z9i}2RpverM1&chvE&SoLWb0N__`qNuVr4&!q2-(7!&Hx+f8j7_2%Wre?objE?abv1 zP?{K<=9ry5qgaF>^M{{<;)~TgLg!{LeaiN~htGBG&7^gor-qBr`4$u;+D;H6S7nY1 zE~zclh6|3-u;XuQ|6$jXjMiG5!ze>KRs;+iA=7>AduJ+`0vDNX=GwCF;}6fY(9hJz zhM@>yk-_(xCS*Cxiea&rLme5uTv?|Ygmipd=t60+5LVy}aeaFQYTdAFMts|Bt;de_ zkZ;zL=DOlA+Jqw=v8+0nC_|l_m(6>Cp;>4opfS0R4e;cyDci%(w;JkSHs~TfnubkF zqLSvJxfVj){)fL4#$@FxybCzBhoJ>Q7X>#&=sFZ23;F0Ijdl=j1tZk(H7G+6eGtS9 z`8t)MR&^dL$ze1&B(9Zg+7xFBv?yx&2)WY4S>d507Fu-i0$M{gFuRJC;z|`ufzSp^ z=6kQ+ocFEQ;VQbSLoH(%d()@Pm0*}km(NBjTc+j=Bh)q#k5IF_W?zJmTRVoKDqvc& z&TvC;Sv9=K*+b<5A+2r^!bESe{m{$4qC^P&Mprh5;9$hBTx^-0%|bScEHn$r3$Fh~b*gUkkO}^J18S(>A_`Db6sW z5W7VCqLmEBHFbllwPA!f{ya3_rP?+O-E7@!ztn+FcnGY0m~727(&6PQ8rMbye7NZQ zgII)UwDZucc~K10VPcu`YM9Ov-uBB}|5?whR4~2idNhoXJ0A_hJ3&3TQoBK;EMn_R z^Wa?kURUSXruF72*P9TMDuoa=I!o7Va2{E@-aMA@40X@Ajcb_R6+Y@3^{XyLhG9*t z`FNqguPw4x9^%+-IL|?76*|7p3aIuc&BFz>_MBM>8G_w_d12>)I>0uCitDzDVd%KN zYDb6*IMx)pI;XXTIv80T2di)|LKTs|!P)s#8Zr=tgheMsc%ou4@Y8FmwV}Q-`sbbo(Yk=zkk8utT}NJ&e^= z+pLqrQ1UuHk6<;`I7MjD+n{aybQW*pqUof48$*h%H#JJy&TX0Q+Om6k47Z){lGbX2 zt+5TD_|Z)1A?l76s$VzD3u0TCGwdzcpj1;je3;MTFxI(e&5dT50~fwUNJq^F^Hm`q zVWfHeV3}%E>MRc-XpELF^rm5$XT;&UmHE{QU2BFh-<#)5D`4o7%>`(QFsWlPFpSW= zc>sEd)}&$Rho}NeM(C=yBtp_;Fj11&<&+k0gLBD6`accRU(Y-zhiScn_#>@dtJZD& z(Q@UZ-LydKOAFBsHtY%tTh~L-xENZiauqj>h1M*zQV(gS^x$1`f|}Pbbx_Dqgd;BX~H1rc#bjr920V0I9GDs4!USYJ{Mkqb)G=jY`nqgOw0D47y z+l5(7E>loPE}&TM8z2EpaTPKf2C;~&+pgjWcgH9aK!y2Ddwv%5?Y@yqy_H(W3p1?~ zlLBdB1;dD?nREnNq$z3)f+bNBD(J4SMy0$3brv3zH3$p_A&z|~lR-*X_NE1Ge{p1X zWv#bpcFvL6Iu;4_CH6cfdG(rC2VSDIKe1f;hPvbHh;5r;)`M!*f?A6ag~@)#_kS3? z*lIotMmGY{K|TbYG6MbXyl;$*Kwv<6b8ldTPNNr$Wm?dA+{jgUhPuESxr$G44nAVC z-B<>KK4?(_bUJOEjZ~o>xr9fs-dKc|#snDkl{V!df=zhWS#=on{S;8!9WWzSl5ct$ zERsPpGutHdpiQ#HI_!bihGc^Jb=!$#u;ms}3s#{ylJkQK)1&!$j+kY}IIjiCzmULH zJ4)UxFM(7%{ggQqS_0SVN9YBMDFx*5EeSyL;1G#$lDNiz9TARUPV3OgPC%?Q-{oTpPhzv?~phBlX@q zKA*-W1Z%7M3OdVj#(>Ho*&l!((1PnJPr z70gy!x1Dhh+Vr&Gjow-Gl7i>()eN?p+HGb~8@ULA)!W|a2<&z-P2q(bjf$0|ROk_E zH;^gtW*&j|#@WYqFas6XVgya00TuEX(wS7ODP83sX~WMQql7h+=4J^v3!#)5)mfVd zyLC}%acj}&HG=8b?Acm|!4|fqpvH_qZ9C~Zk0aE~IF>8yt)Hv;{Q%OlnSK};MvlaEk?(>Pw#yI9H!?kBbpo*?QG2 zXyzU6HpPY9h{NtmCo~GOl%o(BL>AtEoc^t5eC(g4EiptQ8iN6 zE8Q92yBaYYtJSPDT5mmxiPIwo9+jPwVk^RwTNXB@(!z(#@Cg+a^h0L)RM-_yqaO~1 z6=^KF%CxY`Jn}KwK9S}Kwc4O(%CX{=_h^Rx6w`}tVdZ@)lg4bZN@Ld8Y*^`!XVO2N z`L3rk^q0a8jC#HVfoP+gVKxah@d&GYqkH+#DVk-Z+JiKvjN2h64^yWio&H#pPy`V^ z0k(T{6>N-QB$dz6=m{=&I0Zqcl$L%uN{!n58%WQjfvh*>3d--OF>H!egiRTMv-*1&>I>0PWE+}4cn<=XNZwn;$0aEcC2rc#cY&5K-*^vw5~!c0yD z`bFCmgto-++G^}@GmH~XVDX?|f_=**ZU!31d+JI(Ast01@^D zz$h%aRV)&zXOD7nnuf$MZL_CMIUYreUDED2!^mR0;0(w5V{{gK!m@#n&SEtV1;X0I zB)}=#_8#@bw!|2ngKTaQEkT)VX=-VX7k*zLC_YzJ!6t9Usv7 zek^$CRe&&5sd+o+iZD04FV>*%G2Hv4`)G~UyV~s_9a5Rn3aZ1X)tw(?;cjn^a+6^k zNP|BPZDgZTuxV3@Fg1lybYZ12YpWoJuU%Tl{*lw6(1Xh*VQ>`-cYDVB5OyP^w+}YX zW2b!7?4z!?d)W0mgrULvnqm|ugCQJEBOPs?oSnVQ@rp8===kcIk8LQ~?v`Zq^e!>cvu<{}(dOE!yFD>| z@H&KBG!W=pppz$cK-hU5(zGjZuGIYXFw`=mW2Rm6c5`*z=QvN#v0K@X)RSV~!Rm@3 zw?d_K6gE~cx--TTOeNPGgkndF60Zap#aGR>=2mzgz$jI5lWPjYs=-AG=w>tJnhoJr z2fOhKW9(h8Ekb7n-NT&AI0*>jUYC0mqvqS^s*;DPs0H26v5g{StO*&uBqxJW>de|l zNBA?e;c`!QwA)&O>z&V24in>vq$8Z9p^ALoc@7GxUdx6x##|pZo9(ED@wxCz^zaI)9Tj3*s3v}Pv1n$9j+}$*Xft2_P4N)t1;@jY)5Xg z034bMO_spaQL1wUiQY+&D3}DtLQ5p*E6pOJfJ7lgvcprEJcqMIAI=tV*iuosWS(qk z4yaxt=18JjJCKr2kS*;Uxe&;;26KGqLd zHP!lfwg$%&^%?~n&*t%x)rbyMz|+}eZY5VTfV2%>vUwUY22_A00{7u3n2ruD1cDC0 zbx?XJj2+}^e$v%+0NBSd#%VTifGs!*PyjIP$MAKJGf%xWNllPj`3781Ah1a_3Ck?= zblgj2(gt4uu)8z{{CA9AAJ{-Cf77?H09z=yh9*E2K{36`jY(eHGIo%2Z_*ivfS=JF zJE%>LNwCtfgEuRyjY*!OMxGOki!#{*oP@=%xp4f`BPa@KRZ3jIT`G;t$Z2oMH@lt(4j^Uxd({f*1!^ z(DDFSdR&@)VfMuHX8_J|AwfGTYYlba*io&R#?Ez_S$#@ZkWL-jbXZr7x!-p{5pry7F9FJug( zt9mV7I!88&96Vz*cExWw3i&AyNJkw5qmtN`UWkd(3&7 zLKtIysB91d)8nyD;|QUhohlkR`PfzXCCtmXGIn*D67w`ngp4tlRAS|V^o7LRGQ`}Y+(MXn@h*wmkPPG?0MWb z)%ASDKvrJ!g#-Y#c9-^JW*WBvg!e4BX6wr-XeEoSFs?baU24|5XKv5{Zo`F^^R5hSW2WfGd#F6mUxjFf8Zd@IS!vAsdINxN z0&eIZlNxZEro1utYIU`BjDDSIkR z0|}tVD>s|SZlRTvtJ#J*!Fha!d2ft0GmDim9D0FD=l0F9CRAG-rt(?Rguh9n;cJ>P z_)tKFq!kB6!;>}fEE=N|D-~?}1fH1bo@-vQhBq*~ZocGWu6(;L5y-i#3Si6cY!PnS$!;zY0^sC)?F@{QW_MnPPX39Bvhyk!rOfznPj8S8w zshFlnfc1Hw(gfgd?wcl1>&%!+Y%#UYr=XZw3^)MI)ts7YC`?WR^p~YzNdWuBKrl!G z9@x=paI6D12=&b_EE$uWgcBB$aR|ji3jnT2rfo6?y;JRpJz*fjdjV=Bc?hO2Spa(9 z0hD)+D*{@*uV9VKigw9}wT5;8&j;S4LeS}Hf6al(gNV^~+nDL(NdY{#BW-jH#lSh= z?X&{ECJ~@^i_&@+5Vf{z={!z=rMIi#^0*g3$3uce%ncX_WxdwX0mWck!=pO|Sd^sz zp4|d{rS-kkJ?WIp76eNHvM+rn@8QSMaNgyyO9GkzV)XKY65|?dYXYB81RR&vC>cNx z9*?mNIs;e$1mAJ5Wp~yY!%(-X+Bm?McHkdSHDGQYvRsV8G5JJukuIAkjh%r}-?izy zz5>?J^}}6bkc2bt#mQvYyumE7>u|Ihoth|Jj1V18baX?BZQD?yN)!2lhRco= zQGX^%^=w1gw`);Dz-|@ayI^OrS$J3<)%JdeCe29vrBH~`6CEr!ZakuK*0W{X7>YAPD z!QFTG!*7!cU+dL1=(CqEw=kcnhTY3<89@kb~>ev<pVcr*YuAV73&)h{Ndb-3*gR6Cif`PJN+(c8-5>)FG|qLQm$pjVI-yY<`#9L7(k4p zou0WUoW}8TEGet*l?epfyN^$c14_QO-nAv2YgFTKX<@}Wcq3A}o_(Qm^D4*0DxYXV zEWC&y)0#*OnF!Q`D6U?Usyq&XPA@%K8-1X`hS6HzC2ACf@6HX*`-Pb(rK6ohhYgkX4rMZ~y9k@W9%x1n*VyqbTm zzh3q;=;M;-=y0eP<6ODhdhjgA5?+fHN6bc60%KRB)zsTXI0#Zb9mf(QIEtg-D30jr z!M)HFxyLW_MYAz(rM1>rGXUMnc&)ig%L9_ddEnCQ!lecDw|s=9>zbv` z_>y#LC5Gaf7{u`+YO!ulw)eh7CN)Xx@E%ly?Iv-VLR%~oQhS{RQ?gB0Kv!QW3R#pO zzcGR4sE)IXibd3s!+r4B(G;3CZ;-5ppGc)^Sa2DzCyYex(AX=p&g z)BLe7Sw7(aP!{6$XO?UO#~6|&Ht46A6-$%)IlKGU5);nYEuaa+K0OpL!tUf1d?1u; zzQ~%DMx1l-Cfw(ib`wL;-S)v&J42Dg0Zi!jS3AH?XwJ>Fs`EJAKAeccbRlb|kH)@J zb}S@ZX7;&l-8BHj+Nx9b4MH;nC9%@MrF!nuk<2WF#%XS<$a}Vaqqd0R>o9Hsx{jU{ zl^Wiuv+u)-VCK~M3s=s6^7JPOp}<_0febM5*}={Sp&eL?wZOhhu!6xFW>rV*B`MNu zOu!kc17-=o$h?%kP={#YGw6FLkvF3vGnSGK&B%2cMA|+ot;@}jRQoDDlgTnO0n*mO zrf}~|Tu4v>#F|D5e_t-c0O>+CAy z1YU%2L&>rbOL5&t|7lnqTYlzhpWA}@R@zO$1W_rZ2|BGc?(p0t9pB)%vVEHw_qY8@j$cUkQ-CXkLCx=v)?D;;yj z_eJ&z+UgD^!*2q^c{Rq>%XU+WPf5gLdAOV|i}tZQ=KT^2j%UJ{I0kWK{sy*5pzawo z{c;U`MfSxWz`-%&{D4s0YqPMQ@@jNKS5tK>(LU&uC%9>J#jN4`!u?nsiWyYB){Vu* zK2z*zCiY$c*W_6PvjC!G9tVqNAArNQ79OrNC64)m(1lLX**%5E-%@C90fPUviee=( zR4#SG*=HYzcBh+g71Ollv2HQONEmTYV|%_3__)HZEGJjD)4vQ zU~a>Vt_|mwE_M8rC1M-b(&g4ZQ=DW02+Ja$uYIrI%lX{*`17{#jPUEiF9>f5F9?5L zct!Y*a9j8d;Tyu+!ncIq6n;hcuJDHNTf(mjm%dN;hzgGgza~5(d|UVt;n#)B!dt?R z34dOAO8AcOap5nj{+fTsitvbVTX;hFhVUc8w}i{W zuLwUTydgX#{HpMA;Z5Ob;n#$p6TU4xBmBDX3&LB%3&NilUJrSDh&3y%oDCOjd0Tlf*-*M-Z%Tf&bCe_nV>_>S;#;Wvb*g|~&D z6Mj>8M)5!Y>GK2`>nLUU)_Lj&NJ}4dENY+rqbm-xPjD_^$AV@LR&K3YR{o{udq* zeoc5n__pvP!mkULg|~zs6aKvLl<*zl{JQW9!dt=%!k-sj z5xyhb7JftchVZuVE#WtXUlG15ydnIS@TMPJDg27? zUEvMkw}f96F8!eTUwEVR?mg6FHr^6lcvJYc@NMBO;Vt1i!gqwXg|~(83f~nj?eX`O z{>a}qAv_^m7A^}<2~P=63r`Er2+s&F2rme?h1@Qm<` z@PhDya9g-7d`tM2@P_b)@TTyl@NMDS!dt>y!gqx42yY8-3*QyKD_k1T_y38$UwA^e zEL;|z5}p#C7M>QK5uOoV5MB^&3%7-D3EvXl5Z(~p6y6lREqq&eOL$B8j_@7fZQ*U< zyTW&cON09UKh^gOPY9QV%feH_Q^M22)50^tGr|kP3&L&Tw(u?CTf!T{8^W8yo5Ht+ zZwqe;ZwcQKz9YOXye)iJ_^xniNZZwIs5}T{Av#Wa1KumIU&m5%*6v*KS%s) zx%eN><^QQ%`~x}s(>Xjc?1U))XLIpeIsEfE{7??RnJcd};t8VsPv`I(x%|J8!@rhG z|41(WZVvxZ4twjR5DUr*n8ZSKga{+@JqMF8+IR`S1RDe|oW(q`oI}`A_BWX0E)`x%k&}@jsWt z|0IW>%jN$!x%fA8`1f8C&F2_k>#DVIor=W_WMa`|7##dmV? zqq+ER$l;A#`ftp||8OpTLGia9bj}v?Kk#BMKIDJIhx`w`l1m@*KjK6F2M+lkIOKoe zkpF>0{s#{EA2{TH;2XL6g#3^ATelh*AM!tN$p63_x%?sj zBR=GR;8%0$L;gp6$p65bx%7a>5hMP!Tzts?h!6Q6IOKoekpF>0{s#{EA9ySGzL5VB zAM!tN$p640{{x5o5Bx^1{E+_&$S4;=D8aLE6_A^!uH zC7%L^{12?@n!GRMf5ew_^0{s#{EA2{TH;E?};L;eR2`5*Xr zuD?S5M|{Ztz#;zwhx`v5@;`9M|G**t1Bd(%Je{jg$p45xk&6%cAMqjo1Bd(%d@`5+ zR1SyykMtq`1Bd(%9P&SK$p640{{x5o4;=D8aLE6_A^!u1{0|)RKXAzZz#;zwhx`v5 z@;`9M|G+Qg+9%|H#E1M39P&SK$p640{{x5o54@oFl}h{J`NeyM8c+I#i~D(e@ku)Q z`8me@evsu!xa+|o59#TV@gxqp*o8>I;UFq6!2PLPr};<{r+$x24^PgFcP4P0E{gQW zjvhUpoS;IyT~ZKkl)x`#&u|%zb6aqy>BDVd^ELF7To#|4#rJr6V)~CZI5xK-JLQwb zezJ%8vuAtuA9Uxn$>({Xa}VBc$1Wz}D35cQ%Tcr%*Zj;}f-w&0S}W|C;2 zdykhE^*fgPagxe@aAfimIGe%p0=pkiikIw6eTwO}$oi|dH zbY}6waMrZ(6oYLghk5Z*HhuDb<>w((mT!ac@~7(sDtNWilb!z6yS@>Z2xwZZ7%&J=^ zklyjL@#`e}G4y>n@jyA^bwYf`j)wrl6_TgRPQrPV=jZl^3!9Y)Y`2M>cDGNq7iNt- z0C85`G4I*Lbp&`5@Rhg^$Iq*!m?svp@qT7)KY#!2GN#wLuKn85{&_q9VP7{72m1Yf z1`BS3ep~r|^IkRo|8+W=?N4u9fDa!rFI`9-Ngd-vyRKf?kJAf0m10*Pz~d3v+CMxI z_j}KNat%N1!~5O#*Ep}EKZxP?X0CghU*^WjI~RoQcRqR7o4XY5UxGU#4wvJM8-7C% z`NNY{Cv*0@m!rECvp(=v#lT9_oA+vZV1GXj5%O3V{JK#?r036gHN$Pwu%Ea>HF+R@ zf4zH(EfOcPfO*8~ToeA=Hve!Gj6SEAbUPE*sm)N`~#Vuzv&PcUIFt4V9XXjo?#fr5aE&=?L+6*v+y-HPjAF0 z2d?~1iTyaDLkHeCnHtzU3@Iu6K z&Y$EYjNfgw-x@CUy*=Ri32vt4DNQu!frBP-G1=t>4MMPRXXzP&^Y8;a*5Z8Gl?D)S z;5%~y+z8pTA0)h#)f+%KB7!RpAmHjH3MpgdtQZLyRRn~W`cB&z!Nh}v7YUhTBUZ*s znG+jMkihVx6bJmoG=EH+0&Ndo%M#*de@L8^V62>FSS@+hgi1w1fS{L>gA`CY&YH_R z3T7FmmB4EsQ;EaU2|QJo7V3IP*E9)B;RIJD5`xapK-EAQOo4;GypSj*pdLENtrRQ) z$|KHlAF%tN;2Ta3?G^J*!F>#VYWqN(;jTBF0R{oS_x%J+oL-Gb1(AY3#lSy2g3Y&t z4r1-W6hXkrS>9fm66|MVJqz!<#${Fhv#d;E1pgU0OCd$US}aR|^rR|-EJ~r@xXuug z*D3|%AARf76w56;@{kf%cn?=L1@Bw1`4Vrb=gU|nZ_j2~h0KR*by}z$ZtWxZnfEkB zmp`MIO@U^ndv+!TZ=lW+^vk3$*x11%>gNd|?I@+Nfn*INf}H_?ioq;&({E5`YeFYV3HSk7{shW_gRx+m zyk=S~2-M=@)IPHq0mq|sqW^$%2LHWT8_77i)VN9a^cWv!>>A)X93$cNODMxtsZ60x z2-b%bIG3xNvBV7Q=G+=CCbmP>NC9<8>JbGR3Ai5@m;YS$t03_$IND$xU`M&Ykq_9} zM&8IH5p%!~v!^oi01j+GWvuCvF=XNK9@BeFt8)TX2+Z3muAC$R=cRGAWOB~_fd8Ub zXnRPJC^DwqfWRtHS4b+hTs>(wXT=eo1Is9cJjuo!lot>vu5e=~?i6Y8wf-ZcxRT@) zf9DkhJ71%d`#ej20QUvp4k=1_KY$Fv4criAeD6FprUU+?pEwSttC|i#gqn)rObIE1 z;5`R|jV-%v2p_{SW`r4Bq)QIWn)-F1ewdW^EFQpd6`Yq&1w9CUU?uKwA%WkEvn1>< zWJ#|V@*BerV5ZMz4@DnfNdfmmm&cGMLV5 zqk%1E7sA`AdK`hlPYq=*@^PIZb6JcCJZ|DwGl*bsnc+FUdu0LtrqYB9bnjJ0e+pKN zm)u~X{+tPmAYcgccsZ4Iq`*Z8$xRnDn%o~ttta_oC|oh$4}C&QRB?Z!WSG0B3Eu6j znrTE4C(cmBMl%$<;mFDn^9lBZG<}?dX>=%8EohWO{dxn^K=-ggHt8pOor1!vSWM!x zE!Rt0%-iWur$E#ut9_@$$NPF5<%E4CQ%-hGx(78hi;Jz9oDVt0e@{G10bfe)67)27 z^|&~oQ+yJ+rgDF(x=1vOLKQ*E3n)-t;@5~M@<4G_#B3zqrwN5QVZKe$NFB*gq<$n6 zWO%&nCv}wzlqY!g3^bJcLqnOxRI|gqr119uCKqehFXD$nSicO2;xA;JbX<`)J zOEFoBpJ&ceC?m4D8cR)md(>xDE6_BTABoK7;_t`s&}N#(Z%XT<;7*VJuRtaoQ_H5o zuUddFvA;}#ITw?TX>5+R(d|?ga9Y?XW-;PrjnrXCafRgE%!N+vWG0FXztqNtu^%34pW~f5EN9Iw$;8#G7`s$m?hl)k zS#B~E4jr4z{4V1Wb{nMMy(9|BG2g|}u<||28~;(V?vbC9JsOnE-ACdiVUbFXTO&<# z(S@rNYj2zs^^y2{^`}h@EeBdnfGhv~exd#Ih>T{Zvbn zvW(YNU9R#f5WjZqek@B&Q%P((_v1V`|*BsCAFp~b}uW5qy8?`%X8-d+w0 zQ~_A|tX{k?&MEvVsBX|VgJQ?d(XQ0Y?#GW_@=!Je(+R)6^nO3qn^9lx$K1^J7joHM zE%>=LG(9bGq+l`eJdL1e-jl|EVp>QA8NjU^>CGFikYw*U5(Vd_IYwz26$Ly#Y=J2y zMt4eyyMII}co$f8pE~r8-k!PZDSg*}X?@T>elE9i9rx$>t@ZcYb%1MNJ)xY(2GoR& zBkn(OO5i58QfVTw*huyp$wg2IHzNgSo|o)E#)Kr{F+pW0t9>vdE*^RMr6j4n5!Rbz zKw}@nQrTVK8D$3}l3iooPl9UYn;_DgkkNh*C!Z=LrfW_}l~&3vQ+*`2O_3D& zq~aJ!VpOIAk`fufHRv9EwkxcYwrm8K;WyF-Q1+IkC}%3FWO5GaDd3t0&x`Gdcf29o+33*hSMF8E_gVjtKx zR6prDZzW4f*$+}#*X&BRzOouirk7+hCcnCzmPJ*r$;+>@B#1~_!BSGTz4S(`PM4tL zWK*FD^BFtqt8PI`%fh`PbCs)e*^D6Jhk^TQ4^rKJ+c1+cepxpqWqU~VqB@gnuWYA9 zs!XSe1QP&g?SLR>X(WBSms9VFg-G~p^1Du>NBn;HIiNt7>th^>t zvypQKq=H&wlQY$8NQ#{`sht^;>z$|s8#lxkCm%@5Rcz{Ab1RK&<{))fVAZ;2Ll71X zq#_5ZbxwD13x!?x2vS^r(yU-}6^%lYDIwX*q=S^XI9eoZizL_IPGs~DQvp#HNnWe- zm8+1AB>8U8D)wGrL!ojq;pQISHg#z?(LBo^Yd^)CzI3(UgfZDZonZnDpx*F1=PfD9 zO3W>Zegsl~Ll59;lFU6OE~oqMBN55Qwyw?)DSPpXNLH^tP2n9DpS_jm-ft{O^$se5 zmVgNY7PPF!KoT!SIeGJPO;+T09n8zQQVFyjA`CR~(Ui54rkP8wX;VH!)0KQyUNQw^ zR=$h7J;A@9cL506@d6q|dcSc9=}7A{4>?V>nRg!8N0ULQk0z5)AB~d$yv1laLlJ4I zq@ObeO0svZWMOy(%{3DIYKW^Atcz&gIQDxX3C%d| zoN*S>{OznBw3493Kq{iO({yD1SU}*~yOd^HP?(EUo~cJ(^W+`UkKC-3ro+CNOiiMB zHYrl?%4$v4IBaMCP~X&b^(ScApCSpGZ}#@5o3$MW=icv11~}U>##N{-(ECk|9F84meNnVVGG|r8tUR^gf#DRVyH`L+|hFL zP)dV1hT_(#WXlWb&__#tO*oUc;2mgh{LIKwE1Neq6Z>cddAsE>HRrWt)bB(P6qb^9BvCFlQXm zu+->IR=U-C9SVY#=c>b#}qp~KR zXxnA{;h(UCAstOJ$rcffQJ@*i2_=(8nxI|beQk^JLmTf(%$nzDU4m5r>FgG>8UBQa z>N1dXnsV)<-;s(mi>7b7!VJ&?-%bfP~%GeO$#ZtMi{khy`-xO&+ncBy1U z&X}x>Gh$xIfp~O>^al~vfsnac?ughg|BdLZI;`yWc6i42nO8;Z7pF!{)QrU3jxs@v z_sD9}M+_4?iBU^@tgnBKsNBioGfSidKr8y&<2{Ahll5jcd$O|25-AmI#hfSFnwi9y zhg$pi+xv)I{XAg$g^62g>8@Zr;No0+I?^UU#CPDw0{A0izHh_qB4&R?Ath#Rlud}K zxX)zw9(B=~q_pv5KLL=W#H$}KCwIvzC5SST_!n7~K%^F6UzTJCF9zQY-9XucNI8?F zBuKRgr6lpV%G`r*U&W$p^0``Lwe}gT72w#*?3g~WN#!Nyh+Z>KuMl$9_*L&Atrvws{RE4y%$< z!l({~-PRsy%2l)Aga2kzuGUt=HzG}mRqwebZSvWaR4ufgOjFX@BIceUVy>R?&EAyQ z1;>^JJwxOb@%}SODY4hVn`0zn1eii#Q^~cR2NI2dzc&k!!29nXIGD28RyXPQM81ZQ zu$0=>nY_-Qjl-nn2$7kXD+RZwk{Gl76m}4d4KTa0M3b@hV^|cjS)y6I@)DO_aQTE#@bZv{b@hcpC{LK^!C7_yjhlF~+WO2}`d%vwlXe?gU8*4h|^fTPR> z5#!mEkGXX?8`C8Q+VTVTqYXLH`T*@Iwkee~2vVXK*5^^bdNcJrejv7UDveZvKd^!y zRg7<$TS1R54&+^YWYMl7gN=wy69OMo5_gDH_G zpyEeKqmWn>lX`52EGMt=+8kAB<@yW0DQm3t z1+I@z8d8QJ)B)6#Yr1kuYE(B}C}*kZayLs&7l5P&*G`vgM%}R(BQ-uPUG5k)x8U)w zNLeoz&g7>|n^I$e^PnkZCIvFy#7?D#<{b1a)UiD%K?Wk(rCo!2@SrI^-AQ|RdZt~X zk;n>uPG?hC2cs^obK>?Bb&nPnm}e5Ilo$7sN~m(Wc58J)HP;N=;e?bI)oKl; zi4C8Y8(z*b-YBi~&`{e%g)Wxt9Hu3p>rBJbxh|y*s}iUq5x$n$F9$wD3*frQ-CM-$|XZ-ylE()PsCa!nbexvVcOS9H*);NqSw z!7pKVH7!$u{YIOgQ@7I|4&k1TSl>2d4IZ5IiiAZnRuM@ z9hwI-%Au(g9hzGn^i3S-6gZ(%J4qKKj^B*d)~xl8p0MBgdC<&|c^&IPYGYTLXoP0s zRE@9b)c8xB=h0!9vSCT+rzT@k8xL%Ae2EO34`PVdDyvkG<`J{FWVTo!-@)2qoO0A6+Bi|!+Kbg{;sZ;%s z%7Ym!oZL73s6CLJQ+Mt`j-h;*}sr2PZZrCl|i5_;dK1LfHz&D~rGK zNbV~mb#bR1$!Vl&*dw_%i9!lAN_-A~J}Fy46>>CJ?|YC{_R-wuMC#(2JarFpaRt#N zJG4dA`&e#NsV2vY>y0%*^kuR*Vj;PDMWAAr zP!lRd2|tkzZ)Bu16G^IUJ9&q;4f4~uVXs#{ovWZe=jmJpMeeJJti32ZG3;hcXGV^R zLk{NFuPixZ>dKNc)~YPIo!XX2j&ILcf=CWgl~{O;Jto6AW6ojfbp4RnZu-fIq2?iJ z-EghJu@K+wz-cch&zkyYTUow_cqmo?SzVnq(Zaw)9S_5qXJA4OrIZf&nbbjcT`);) z%1Lr;U*vQ*8A=9p`yjg>4FL{QYla*HpG)kNoUA3Z6i^`vx#o^`BI9G+rmdxi$Wd$4 zyVJ7KZ??+tXHvl+a{<5=g$ha54z@5LIk$N5?Q0{y=#z&l!I#{j@1aDLqlci-o68;x ziMshdgqCe7+3dQoESWZ(A?FJ*Ro||8xa9i2m90T<>Reb@QHaRacBl>-A)DHrAnccT z`pB(}kvJ`+jvtbOK6nbsTsE~U(3d(>NtucZn%$9L>; zUaqXib|_OP^K6}m?4&S1v7(+m<<3P#wx%wyy$!WvbCZ~Va!|o3xLt*d&(qZb0k(J?upxcjo=OwAp z3)rvG3q+OCb8?V;nRNb~c2W6<3ivqF7b#dqFOY7eAH7F8PvyiOr3%x3>>lNOEGOQh z{>O9Q73JKkJ&X7}-h23XaXTD&Dp$VVn@awS&_Ov*6$v`f@mq~Ck5dyF=*R6x(Q~qx z^z?I6BNypOF(%GkG=d%{==zM%Mo;G3oYrF2&S;*U<_4yZT4qfES-LNhxP;$>{-PNy zGYxBQ9&>v3_x*gzJseW(F)$XevDnZ|=(#He5_-%H@mta9bj^inVm1=pM7)U#iJOFO zvf%Nuzn$%1QZ*Gr{pmd!w>~9Wls@P(ktOArSe?TzS{SU9zJHS(0`1|vEVA<1p1wPI zZV_$_bufaCZ)rW8h#h}*2$+-(j%HrEF6coQ1Bd0STI0!LGuou|<*GTaQs=;mIYXzp zpo0A)GkK)+Hk}gJYTC<7>0X~%6BF5T*c9oHqowJio>c3Y9{FwT%RAW=A+|%vju0GI z>?Z{u&X`ITTh%psd(fbprN^0A8c`nhJu;kD@82eSI0S`jUlJE6C+q!-Ht>sB5-xur z;qn|dVDk_2gcN={StoaBAhC;e9+u%GQB!3)c^IEd(}{_L#CS4L;FIDek)6IO?o0A+ zu3V3$Q&qZ7slCtmM&)zdUu~z#0XRG z`?ZlhD2nW^UwYU1(~llOr*Iuh@o~optCPEL96M_K&aMwhBhVhk31#a~BaBx);TCcG z4i%N~0vVZ-9EdQM9!9-1BIkaaMi|G!CV}liWUA|Ih|I?sN|Hk*o$=$HNsh_MNwBc& z&VX_xioXI$4zR26Kb7*Y9Nr#ex*ke$WVox?^t+9Xy0yD+OTZ&C8wF`mxkUgQnTrO? z5oM$+p?ri53oa8F5u+;k@@T7c#>~0zg|EtxBN=XLD`$h52rQ;-r00tQ$EaR|6FQcV zw6mumr= zg%SKbi-0TSDVVT(-4ndcqE_jc;7J(k{Rv~W^%FSjd!Py8mLuMCl=CpN7Pn0u6VyolY{_qy_k=Q1NoWKQWh!=EXfm-AUUh1 z7|r)5!fy;5Ofhyl6ZH|Rnf)$!#6YS(mQKFM(>$1B&O?tJ&V7%?L?wLIs5CTxpIU9D zar*Z&3^xP3C(+3IHxgNEITGU;9@(@uUj%@ zARCjoSDm^EFPm&kth+=1dk-cxF3H&8smc)&8dPTWeWD2;wD)ADHQdE2-Fa@+aF%9c zjKkUrV@J$&Q@S*>vw1SEHo4Md3$r|^8?`Ur4Gn)Jt<)`MwofUGm~;&}mW<6^ZaRMXrQ}6()LLj! z&M^0&h8cz8qHYp6i^0SKLvu)GlJyBjaT2xj6s@8%Qa6#iit3v$n#^g`6IvQ2E2=a~ zGmo3}K4lb@@jl4s%1+B%E_9MD(9+q?@7g&#QC*5>kD@^L(aTmeOP!)(ej<6IgfJ>< z&^JN3g1<);jR*IL@@iye?;MXMT!nnajZ~IP6Fa+9f=6RtRQ}9A-lbgWcry9Vu~9IC zeHrv#dUHp{+!#e%5|w8pj7vvi|K#tF%TDDzrT4}_JJsrR)_7Sd_N33ylFPV0QPg*| z;Jq=1GaS@AzJz=>zBK{RZSY75?+?ZG4b=zh`IE@Q)!D)yzx;XP2(h+aMyTjEtPRwFrX5+9fUyPeO z^Km@pQ(->b(rR(3_v#f~mQ??YEuWrk@rcO#=-C*}mY;x#d?_;*&;`k0w46!C9X#ZH zF_o4Ie907<@=|W##AJ%dzQtjT;E3#7Am$>?`t^9ZZw9coHh=ApM&0B2cjEgpDrl}k zIQE#GZQ3tVu|CH0b2t~76`o0jB4@sBt)d?38YC3c{&(^#DCAx=!ICyYX0GOS!}ldx zqb6nA1*{NrW)`8T=u%`zEmtbjlQotzB5nBEo`CP_zAu@S%T;X3(W?fU|EwGM-j~{C zbayb$9r)==zB8Q)v6+(0g={41&1;I&0iTWR+u7i3$VS?hPCAYDl-@^O??gDH_o;ix z*>{Y~H(ZA+07gvnV#v zp!%gqe{6mrDK>^+ZpP$d&72YUWAclNMyMCHBR1Y(!i}-nF>0NhQII?~I}Wpp7>~u+ zOPngxF}w#Q2P@<91}AmO23iY0k!socTu z5Pkd*JPhLXsd{8(BRbQ=I|g%q^o|kxrO618^2(W&4uK>Z=F9>!r=k;C#i=)+@>@k? zY=M1+5o<@`h!$%k+lk{%rBa$Zkql3igTE%x(f`Rdij0TK?a`?&AEQXodSj9~RHRHa zbO_Ww%Hg;0-8p^+a#G2N?i)ziab~$+Oq2~2E!&7+D(KPvLfjU_-}jirIqW!q>(S1k z`!?8UVcLVL6(|m=4)A^&la3yL3R{aYp85>Fh(DYePCLfS`;+mK{p7Sy)A+tAFO9HN zO5&5x#}Y5IU6aITR)g9cHuJLL^G4QW8%y!YLQxVsS^DMU*`FrHbi9Yg@ct}+(-=v)6wA->zlcxRV8oLH z;td6Qwdc=p$Q|DwBVSd_>DOugevLhJY>&@Q4b&qubu7McZum;uA*(8gd;PmdyBmhU-ImXfwFg`Oo2pSA{Z&E_a&%Bw_tyI+^>D!1;2B8w5v{aXz zH7=n2m^6Vnqa{tO{z)C8WH477QRzHX37+7Ia(=!fCG?5j$GyGguwmJsfD}chV)_F` zLoLhaJV9nGd1R{G?MPq)HKX8pg6wF?4M$7Bp_~jM4zvXDD==O|e=HJVA4tS{6W(hb zIs?tE)RX)FSOOXm47&VH<+CAvo+)>DCEAh0Wn4-3fsAn9aj>0Q;Rg@CeG1cf`mYS` z>x~ckxK8?6fy`OtdU{vQXs3w9gHhtRno5_1y(HP+2!jJZs!FD zOH=qY4fjkDW7FOiBbh&2#1`Ah#SoF{S4)xfYtd#xUkV#o{d<_DQrX)S`cu-HRB^K( z6G<|4RLiKsNh!Id;cRv~s}z-u$IdoMlO!MMiPDBulBA^y^s#cb-SD0Q2H%&&%gWnN z`jQm0`Tit@))Y^|*`J7dysl5vNt37|JGGrO2`hr{0oxA6MNYhys^RulzN=A_(MJz%%)&=q|h1T3AHcM-~uC_Y`2A`4F~E1njlK!o%~|Ktiy+Dy`SMH;qrrW`_+vvW%3 z`FT;AJWKa9_Zk*a=TI{6>ZDQn1^tJ1?b1WXyia2cWLbA~yL0c|%Q<%R-sLn~>t(Vl zPxGjl3BMp3FV`idQY6Z@uUBjbMXEJCYU7Cgj~b_an+1Gb3;=&);o{R1nR1ZL-9Jn$ z(TnjloJ9qv10F3LOZ4kAf$syQI1z8q)Z&99r8rRsKkxCjiMr%Q{<*o5u9}d3rhJ1s zN77`uL|~oON&E4-XUe!%r}%Z*M5|>-m3H}C_LlaYTW+>GwZ*eAPj^cXan^p-qws$t zZJsvkE=)}y_A!o8v{RExxtmf!<&5F7Gj&o{^o&?;AH?8PSzeHhbV}!>T(k%GqCTAE zP4|>GeW|>Ng5`Bzs(Z>DPnA(^3%w(Dq$*THJXKc7Ep9JNiA2hAt&fxNJ7nR93rDhz zKk*X|n|r0|mCdS)g(p*eL>$c;IT}6R2T8JoUG?cw>8Ma?$qj!wffwRa$wHbJ>f{&~ zN)`j*u^2bLHI`T#KJs=0!{tq1vg{n|=OvzuogURo{EoBA#zzYKpt^<&-g=p7S)6RS zT~73yW$y)iqkaQ^0(_BONDJ-%NHwlCIx)01?@zVqyS%G~2V;56P|n`qFu23Wdo>3p;Ioc|O-2 z#p$Z$?B*@`>3-*@_F=NoZ}Oho-ysDkE+DXi1147P)w8%{bp5v0{VG! zfgrCBOorjT6Z*x)1ql-YnddM**HxnHM7UKHMm!Ja9nF=nzxg2g5=IvbUM1}BHg86= z9kYEAU_0(qp$p|kQNlve;R%f+={DPYXgFV1IJ_@oNy$Cbv-pF3Qu2}FgiG%kO{}<-D>hIN#%Q z3tkhQimNK~9bCbyVk)5LlT!;{p6!~Li-p|XQ)Y$0y;$v+7q&TAMU-zp zFvTw~PFYJ++Rp~wJ0*T|4Ch(ww||q?EG`p!obJeMmW<;-Oay!`Fn zNw4QQF$K_pWRi5}TAz5n^vKRx(re9MyN)h++`9mc73=u3-%!toO?>3{OuGCVg5y$6$gys*#cOpXT5ta#ZI#c7*e zPJv@bX&&`^Jq%ELz?s}KvD`0_I+Kr&)s8faIo<6 z+FW+_zm4BloVWvvM{qCw1Vk<|FZxZbG!a7%w#5&^%LGLnRV)}%UUJ3(S}dSaEC0C!jqJqS?_oq z@>+?^hF>W*7_Hmw`Nh%qQU{e@P51Wmwm-clO_DnwD3$W*qw?|0@2l=epW`4=!%&(g z{d?#`$&?GzRpynsw@|4o zN2|pJ>}oOIu@WtI2-@d=X)7N}hGRb~OhsYbPM!`h<-u!hPIJi=VG9)vO69pnZ(8Rf zn-B6B`G*SoCe^gPpV8JCPFS3$+l~%=ro3}$d$_ON-eF@OF05StdKenKuaCLTV5h#r zOuXpJw=v#%rkp)C^QIU%_QORG(BY!q?}wgy({*-f!s?$X!yiVi{7ku#NFioAVt3vA zmyWw5KJH?w_LTFr$%j^+DDn8A zyA=9&6}>ARed3bOl&@yxcJaGngrfB`>qP(f+`CrwBMwPF1wj)YR|3R*Kbjr4@4Ul~ zdeir}ZM3;OM`GI|$XJ9ZTc6U&`HE>9vwF5bXH~XHA~p`)qmQy<*@Rtuj04i2dfBS()c76Zkqknq7DF2WBsOK;JR-CPd;OPx{2RWfD1Y;RR{h`Dz5a85c;;UfU)dw@0;=bTW^#9k&pk}hl=vQ zqVF%gZ}%Y@BaP2@h>X> zV^RLc^!=qT?4JJ@Hh$tA~9AO5qV{Qpz%&*tv=KRW%t|58!@C)Ix2zr6eR zKm7-PyYT&=()=rbargea{fAq>Q}q6s&wBfB|L5K7|LjkEs8D|1(fHji@1DQ*%#XfN z^!^{RpPYdHRC>>@^6M+U=|jIgo0U*#8f&;O%)zxL6h{42ku@i)JF{wFSc=g$@8 zzo!0MSlB)Pr7!!P&lKhVjPh?@-97)GpZcly7v;Yk^S8Qt{+mB|YNaUuH!J`4^6vTn z?ic^NpDoJ&^tbGu|0_;> zcCje`jc@buSN^u$^I!b2zg{^0pZ;gw{@ZVp|HZ+@cG3I)qvp@nx9|S`cYWdmh5FO4 z;3PQzZGXq^`8PNIuR{Irb@9*5zqot;pX+|*%SH8nY|~y}+WOAj^RNH$pZtZQ{MVxW zKD&GVeM=ww>Z1I^r~Un#-?e-G|6^?7PmA(Dqx|K+vU~pR&;7*L7UloK|Kjhz^)~tc z*Z=c3K2enaSAze4_wMiC>iqpe{cq1V`unH9clZ3aANjL?Q1t$1Ha&mo`*zPi_7%Ui zuPFZ&wcpm;$9QU3nj-~Z4nUs=UsV3`Pwk%n3-A49B-`PF?H`G4z$)fywe%Z&* z*5BPd|L6Y0zxk@7{MUcp^KbsW-ShwV-~UjnDF65wjo<%w_xvlrzV-Ku@*h_Ig`e3y z|L6Yg)^t(+(s%j$%Y(b;|Kk^aw$Og~ru2vM(C+!4{@f=E$M3gm{kQNo`9JyS#|!m` zf3N(TZhTh>q2oOjk2}tLV zj)(yfK~RpSfWkLasd_X4MF>SYcoZqp6_6tEf8Tp&F5KMQ?#17KKcD2i_B=B?@4WMt zoqhK?=d|HJ{6a4X;^FQYBEusBca~R8Sb@g{Pe)NF;*PhcDKWfjyVx0U! zq00VF6MUce;9VSkNjs>&T*mVEhDZO8!>`+_@OBgYqTehlIecqq|4tM9$ZbjEIeaj* ze`_9N{f~?)*_p%dfboOf1V8(&PaGUR73}9U!Ix_i@QlOPy{7D^hZyTWf7agvIQ-^) zP=6-)-Dl3s=kR^ELH(KFBbRN@!r{CA0r=NV^uKZEYYso-g2FpZ@HemAug&4Rq5bk2 z%TH|m1>61)qy0?qMXI!C*YEBZhVwVU_Z%BriqpR?v|l}+vHpK&{^A;kum3sN&jg?H zEI&K{yMIyPt@(}RcWpYmD<|Iq?ayAo7(ct@u!$W0I~f1!#f|aj_ijn%@K^0hf4zh; z-o7NyryRcJN;rQLe4htH*#2ue_>bKLUtv;dcK)V={hTKFm1U-~^T$14KYJ%bZU%?ngYnMUrA|)% zRfzw3Wn=qQE0imO!+!zx(~^zX-z&Zt_b-P(gY`GSSpUSuue1G6sZW&sZR3pb?XJEk z&dDDF{%@^feExY?cV^e0M+4q&g75xEqn@1nW}v^*r2al{(E9*~51a@7*VFj?m%ONx zmBV*N`)xGFw>o&@0}lT+j9;B5@{0%m`7Ve52K>i1!&rXPYzNr&YX^@1dKu#vjn7@3 zlb;57T{ph|b^OgQ+3QaOz7e3_VZ-Dc+?lNvaTL;%E#NqQ^hx$Kk?7s_R zbN|WVr(A~ili67RCnpxN<45Zhg}0Y5)<2=oaQ6Cp&mEwDA7lANehKNs>7S<;;7c0I zf4@yUYrlywezH_Imhbqn<~dIOy_s?v*JO2te2lg|;Urc(hFL(Ya*nWOD_P?9EPO$3_Gok-+n$-XPUvjYPmjTfJ^g+hw z|3mcc?wtM)aQ$_>F~0fekJQDRF z7~gQr2KM}`E>?JFGh=+)JiqMY@I%&s{JzHW%k1dMj$h`1eCrE@l;>zAwG{B0i^%b!(bFgyPn zdIsvxMEb}L{ zOG5qWCynLbSrg7)ziJ8k>&=bNzhH}yBAonB!2VVf{OPWF`f&IeaQ=1^{0@t_($C~i zPlEPmFKz69)_1C~`hRr->~A7JXh@+HPX70Rx0|$|ygjzf;_&lP|I^0$H(rqVfWxPO zeEnVH`g=Gp8(aTb9qRn`-NybiZ_Q@*`h^YFkDMm)Z$+-9?EGONu0NURAN*lqw*S0v zRq1ax!8gr$`!Q#~-Qd5rp~m(v_+3+W{E>H)lJ7K;U#!iP(wzL2;Qy8_#_?}TtF^Z| ze0h-XsAOD!h0Ziy%Hg-&(KK5~faWxj|NX_)>pA>SsDE=~{jc3DS%$;^of-VEg|YwU z|EWJa{>fBC;jJe4vIV-b{+|=@b`yMoY@5q+`sW9{(*%F__n+DLHxJg&^p?iw|9+mi zUvl!pasCx#Z2z`@mSE=({X?PsL>l|gm7@dM{IwsU|FoHmKg%UuW&Q6E&VM6~^?x}f z7n}cl0oPAV@GD=I3+C)+gY^@;$^7BO_A%`G$ywCDpRxW^UQ5fv$*;a%+28S%as08D zI?S#gwt)C&X=#klvvKuPPJZX7O1}1*xDM) zU%LNOHveOsrtp^cjqywVtl5o|Uo(rsYvIQDz;QD_=kVok!ugxvYg+$m!r@y0-qy}o z{$)!8)_=Q#{VnZ{@z;uX`jL~r{tKw3$F?Sx!(Vv;=Wl|)+2eRK4nO3y!rM9; z%U{`TVj73v`?tbdIvL}e+A6d9=Xwd}-`N;{;D>_?Ir)~~;QUSS#~shV=kR&X!})hH zmj5XC!Rs78_dPiOuEzMTC+Cgj@X-)Iv~I@u(ce4R{x=fip9%i!jUw zY8#KA+Er?HpTn1U0_~@cF@9%@*_%21M-ac9Ciq*e`mpV9ImBNvcddXRn{E!}>G9-wQj##=rVt zKc|WR7CHIdJDmOpK)znVSpVEVHDAQxE2Js=+4dOM-$##6T;=e6L4W-{l0S%hUtbT<>~9<6J7jzP4Gtd+`fK})^)LOb zdO;4q2J5ehar{agG=aT-KNbAPZX$okQL)nkbN%4x7s~&fCiVY$xw(@$d@7v3-pbhj z>%Uu+9e*{&>vtyje;W17%*p?3HR!+J*#7rByvfeLH(>vLz!?9$aGA55{P|#iJ;oT{ zZf>VN9DWtH|DTNguSvF|T{!%RZ`Jv0YmNQKHfQ%T4nI@I|GZ-T`>e72B8P?zW4)+&?S%)?bYEFEHpxB8P7a`rA#~Ps=P@mUH-ifY%xu%Rd}k zDTu?{ol1Z0ys`bZHrP~+!>@($yKR&)enyTj*!!3MKCR?CD;wiiG^!rW$^RJIk3Gy7 zzo7h_0UUl0j-L)1+i&sY*N<`d#US4@+E{+vz0e;x{CSN3Ch}XCU%!dN?}YwG8)GcL zV(i*X9KIR&zx``td`PQ>Z2a2@=WqMQ82|6;Kno|oTbinWYZYVs=j(Q|>xUHG5&+y*)DVE|4>|iu?W2VcjNfmb$2Fq z{cZ@_ueEXi9oQ#Zbx!_vr?S7@1b^#vX}14)iuO0b=UF^~y?%EB)-Uun#`+%#JXD3# zzXQZyr%C;djZL`7;qPGocfr{ILhj~fIsbW^ETuSn z@GMn-&R)j;6aUvvcK%-i@U}z7{=0HtJiC7L6vw}Zjqw}GJZ!}2KM3m2GS1k3w$FyM z*MIKf`d3wBd`g=f?E29}?Eg*lFFCOWYyVtJmHn*;jOBkDwDB%?{>5PYZcQ_`U(F6P zo^beTDF0_;`FYxmXV;GdVf^m=$Jl?YAN|J8f1|;FwIjy*4_UOQGpGO8Fn)2G`2WIM zW!dZ3+W~L=#rXX7ut#kCY!3F*?;GRa9K4HNKQHth)PHqje2EWAY~aqn8_I8HZ2zx2 zw%E?$*MR?8jvCuP$DYUR{G%zh|0%}!)_?S5ufH6{`upBk|2AP4*!839fY)mn+pj^9 z8ZWu??+EQjJ7z5Z_NgU9ID8bGzc$tQ{Oj&|EtJE@VEwf7KVhu@;Yy9paq>I=sN~zm8^@2Hr?Rv2uL~gGR@wOc*9Elc!^t0x>u)CK|3UkX z?EGUG#2;%dWBscwAHvQ*?hE}bqW$W%jq%G%6lUYs1E@dkTVs6mR(}381@w2GG_Jo> z&rTQM>{l1^e{H9X@j0uW+QQ+tVEe0Mtp9{TgNt+c=}>=`4~_A)%eQO8;eW;W7iR1~ z%TG3ezgh4_&h&#vvT@pUZ&c={=RYl+adcdcK-7a?5Ec=mOt{wJa+wS zCAMD^`Df;Z4&(IC4(s0zllot_U|S6izYzS_YO?+}JL+~T4qxt!vY*4m{(qhLdK-tY z2==$1HTJ*a`*N`BM-32fVn0WLDwR0-H=zAEzB8`B(gSzx#`gOnpy59pUbjL1Yl!jr-}ot%z5X>A_K$U%;LjG!x0I7VBd3yYd)-+6 zf^mgDCd1bc$oG?hq zx6L+|Kd}8#_WDIo?JO?+EoY7U&zsw;viWbBZz}ngImYsb%z1EvvtO3nkpH~Y*#50I zJu1oJ!=f@N`(HMepHlF(1{}U%4v@dhSpJW7&(7!YDd7KFeq;G3+kLs3!w-k}smB`2 zpU~$dJN|nC@y~M67{4X7DZ74j1>&#M1YfOT-*ue+JD~r!T{4zG`mar_|2zWuj?2dQ zvbmG~Bi(=ym>*%cbeF*==jsD{f=P%gUR^)!^ww=aq@*K=}s z8}$F$N5=j)s+f3~D`MGXv{^csLzvZg2{ic>WFqhN+0mL88WdEFf6K=$F z`1+VXW|Dsv*5;l6arowN{ZemdJpRkl?q*jGUou76UvFZ3{xRLkvg=p9;QEXHj)5;Ct`=i1pv~c>k#hK4QQ?cKmQ0+KGF|GN%&Yjb0KgIdpfbN0Ij^I!d4WBk~+-h9sC2Z8_FOxn-Q zS})(?@GY_bxn|t{9!6U3bNF6>*RLDnFJEe0mBaUi_U9z^uW2;~L?;g%+BY;ZKDP3R zq=<;Y35k^lM#aQNjeNUrbX?_OQE~m^6DtphPZ&HPRJ@lD0}mZmRp2W2s9K}SE6+>y z^SPe_mkz>bGy3tc#v1IC3Ej_*^n5ZTJX=yeEbtXvhv<<}?&npuiHM1bk4$pCm(Sg9 zE}jaH?+8x(Zg9GWLzAP1*V6|^iRbO&qd*79M@l9nClZ`^kYT#KxLB7!x4gLiLLj`8 zIQ}RI9|u91<njJv4~`gd zh{G2@r9kxgh7@12^ujwFUhXe$DI@YTcNoh*cBODn4nKJ-oc|BT_=!i?<>&CRD-@nS zUy$mbxpk`!9RB)Ig||=j9N$uW?HWtpWAUjXzKip>o$`!N6o2?YLJ?h?9_l%EJezEg8SpR>0t*Sqp3BJj})VrMgG-!YH`G8dZTkj@p#D z_oMj8bEo!mc)35kL!3W-J|D%GZrweE!@Kr}FDL5%p|Snjm5%*`!#gqlkmu`B`5(u1 z-O1tQ{_++fpFSUt;=eh+@IHq>BJehWcNQ_O{}T`A@8R(GK!5stJSxB0_Mq+@{=1o~ z{%kSE_NzQJ;%g2caY*6m^YN&BYf_ia9A55^?-1utpKnL;gU&uZz~L8w{`C2D6n}a2 zdDedqL;R!9r=$2uzkc#BC*NL2oj-j(9K|oc@kbjDUs(9RJZu4;<7DBehi~0e z;k7Bo_*IuWe!=0ZfqchwV|qX)%~<}470Y8e zyzBW0UmkRSYAXNUkH&({CYi&x zhW6uZXng)LqrU0E;pOuwEYki3jpJ{JT3 z96kZpmrEJj-#Mhna}Mu%K1W3nf5`rfRDRvW{Thdt&*!iRyxn44f9Gb6T*l$$^Eqr1 zPxd#Y@+;qavYNyHa#q>jN%l9S_=ab8&f)M^0Z;cgr1)x zWL?AI-i#YiS{$pxc&#eNMYs6=Zjbbp6<^_^$+hFw4IYL zpD$t)c)C9y#n0^jgq=Uh=ZiQ5UMKs@QGCv{S|4)qD`WgM!M{8T-$%>YdsC+wx5L zuZ`>vLgjC+JZ%;y|Ncc$|585LpM&Ddt{9ky!ygjyUmkRS4T>)_CG;SNZ;R_EWPb>X z-+p`JQx5O2yTog@+s5(hyTpZGad=Jmzw03TOHlde`%n0V!Ys^-%s&d zVpG?1_z{Pc`K>=0`~TsNTP|_<-@*SZBaGu`r{Gh=IlK<>-?`sde)&>k&vE!;cGTZQ z{#(}ua`*z^fAs!nYQL=OgLZTH66inV{!)t1yzb3^IQ)KG|0DOeQvBABw#Re$`sn}U z{#1(3{^a6V4j&5VPw!8q_}-2$+3`m^kWcULr1*pN9nqZp8el)2+}}v?|C{r_cR2hk z^xqXG^?&*kHvV1!`#W$^C6q|6=p>g~Fphb(a96kx_pX9ev`NvlLorA->o=^9-7=M%e5Q_hN z&WV*Ae!@~Q_ZEkRbdHU=ID9?GPo(*!6hFS(v%(xc6`oJ8k^DxApVssK3=Tix zHKo5s@)Ie(;M<1^aQGc?{xm<4;-9}3X5;X!a)A8h#{RqY;POcveh{pm>bZ>ZMJi9b z#o@2oMcv8zC;5R?|26w=4&w0g`GPiqr}6aUA{yu78sJ8j8O*^Rmw2H^cP*wEUXeEEDxn~+cQdnkTeHAgQFpM>kLB)@~=ueMsag2OL{ z_)YVBD85m#oNW6$jQtPE@1gi}kvrJ=(-pwe{2q#5Ft=k3PXC(Ff7wWW4aMir7EzVM zw+1}Tuc7$n^{=t(M?=8>X?{(RYStQ-kG6mKNXV~7^EZk@ei-~*6g4aMs8TgOQ)ZYh zQcR)}`$t4Z>7&Nf(~~0x=t;?m(QyOn=`p%1rAEA#i6k{E_8%G-S^m|ZSMmT?(8-s5 z&yA>MUjAP0i}A^Q)xG^T7WyTPQL#E4aRw+KR7+Mkec{^yaSo z8?_E`sQyujQE`zXWk~$Ko*oewIWRs^ zy-tcsjE;yAxj+3}5+$;>sLX2B(`z#Wc~7;~iMllz7&$N^u97}9E-9jaRA_j-tDec(< zfGVg!DB)aWAr6=jiTa9a7nP}eSV`yL{O^S$zv|Z#?&D~XQU8sO?H7?49bY*%Dse!( zrZw=i2^b(WG}OZ+!Vx^)r*{qwSfljUE6O&|GA_A8Omt+F&sG4l68E|7&H6HLwt#@~ z+68&BRns>7Q`A+;=VLp>_z90-c#-~z`ry+pTVchxW=-v;9^yndfa(YX74#Lw#V%McEK4#$sh{l^#n(3M&8`mLAzoQst}oIfBQ z&jZxaVmlUIpDidTC6(wepYLrE=Z^>CP;dNvMqrr{*)nJT#7^+?`QA1^@Xxz^rwREV zQv1p0W81<4w1b(IB$S`7k@~z<$NYg@{a=vl|D`f{;i>*#G_HSH$e&E*|0~CTw*pP^ zFVeb?68M=ZJLd9hH*Y>q;6I}F`%U0&e&DZciTR(vPoemGvi|OR%LjK5U#jC+!(FMu z|30=6{pIt;ZB^2}g`PL!pN(4*D&%|BpM1W!gTYgtt>uc|xnkQb*!Q&g| z`Ftja&wkhwZ_mTyJ1x1nfy1{U=kN4^@8HNS^H;pi{~oO0X>gxE=0T#}uzZ#}U9SIl z;q%S&)Zdzq*T2T|!d4EynE0Rm29N*n^0VU{zUyL7`ItwEdSiJZI=&2tFH7{tJV?Z0 znYZIF!#Vs$Sbs$O;W!F$SbkCUZ#I63yVl`Q{%a5A&wt^ECpL2OwJDx>%%eoPSbkP! zw#*;)s=v43`Wfo4SLWrv{cCZ#{^^CUP3(txlqeU=d9RgykHZfp^=JQ=kH0x>o!{i} zL4T6-U&rJBm|Vxn;U9_dqdFjdz&IB5#xi2`tP~C(Oze+&Oo+p>)P|z>Is9AuJ>_E_ z65_C&`02nd9R9f+|F{mNzqKEK{>eXGW80q-uirxZcQoYjFIWG3g_GZq#D8rOkDpOs zg3SN+@}F&_{cG8I{69HAn8M+k5c^qu;GfxkWbN0D;PE**Xm>2DR^Q0he+d%5F%JrH zST38ti0!{u(f$vfGl4iPm&E>3j646~V*LDS{o{2=#9_JrQRYG%z9XqW+~)&vSe9QH zlFZ>hAn^;YBOwmURwbLV{l_eF{x-M{hd3;2PN-3ulOM9m^ZcDY@b|vkcZkE!Ao^Q! z^Zu88OENqDC`07iSMlS&uVbv)IQa?tJ@vQykbkLBsJwpQ)qeKS{s*oDq1~{|dF&c% zziHHe;5rQAu>5q)%>kVJ_h|h0fxlF;o4o$+rGFi;pNd{$F26zD2Z?gA%&{mdTYppb zzv}(sI^=NP{wprujo{>eMer85j}+x%ne9nr9ETqS?FaSuHGk>-yr;bW?REZb$ob=a zcqkXkO^fR`9DX;nUvd66sfp9a z_^)cys%-o^2L6lo^ELkbX4GwY{o2cZUx5E2-q-l8R*NSmIeg~!#C~ue3!XQY=l<7$ zz5X?n*w5Gat=*oQ9Xa{m68(LRpPt-)Ihn)jF#d3#e_4L~Hv3w^BOE^aX>$H>9}Av0 zmX8Df4H%{O>!`{(X(#x@YS#kHarpOziJt{I>Cp<~KNe$N^8hukpv8*)3WB33}>@ z$9=M~-myG)BS_{idYyk4;y+Hv!$KUE)Aw!pfy0MU|Ajm%#9{evxvx%ecnih*=zk8E z{#LGEd+D$B@;racV?eoB4*TH4oE-jF+J1e=pTBeId=7u{u%~>y4v%uxx8f00t6R(U zJFoTU8)APGTRoBg19@C@{SNVA_UzR-eEb#hi~8pH;#XF!;_xkx2>E{C$2DBkjKhC& zMyy{lc#H?A|F0v0bng1c45@zubN$C0DY1f+|CQJu+2#j+aif>lIeePHTN--Hr}|IK zdU716|H6wx|3>Ecf<3<;$>A?t74rSSKbcqhD2LCxN!XvkQ~!H9q{Bbl`Ts2!x*MmT zE&89@brEY%(+=5wyOk|4aAGi7|ISoI=+EFK?W;#%UoL1g zSLp9`{UpD@I~aWW87VEwIkFz)>^DzdcWaXVYdn7{zf6}#jXC?JO%?jL4bZ|MkIWZ- zLcz-IIlO$nt>ygyEe4E*cxu1iYaeam?B{yEXnWy*L_Wn2d%fs499}-()4|}=Eus|5 z+cBY?u-{aA{nGV(&kpADUqtV!%*mI}=d>|+D*tF`%NCq``FuxPCt?3dN>8*O_1~K- zPyZ_XcN+EIR8fBp22bVhpR+rOli#$tklWc?KJ}m4LtjR6^)H`qXXzH8g`3phzKs>z z3;Ru{?MFV}%huByPxbGfZwjmbb%ED@3G|Xr^ftzogF#6 zzEs%nk+=P6{S{ewpdjae^7%lPzTWa_`~Q1X>LN{Kz&v@^JP)CF)-r=q;b>KXLW=J)Hl$o-Yw?jvw4(*h%jEGcObR$9UtZ{bNrD z?&s|9+TT9b8&CCb=ImXQlP~vox5Rnlsr^1_-)skGf4M)pC0@keox+ad!1#wH@@(k& zQeMCJy8bTr_jV+tpDp63{`*Qq?C0z+_eXVnAnv~=@eAcDtu$@WzKi*}`j`8AT1E){ zN&Kex+OL-_!{O!ro;E-5x3B*t+ppL7Tkdb^7#X0Yey=pe^QZD(|6ucP0`HYSAoquK zjPkZ0?SJgK|GLZdKd${DM|CzHITJ$a5qnWY*vAZmC*XnR*7H>MQX zr{b(#x%!?7r%hNrRDN(1aWX#gBJ1hHB4XUhkxTD#1ZkC5c!a#6QP_^eT?$cg1Cj?qihS~jm?+(qbT0q( zky*tNiG7mf$9-JZ#SV*B0ZaK07lf$m{!F_Fo3$8XeZ9@%jc)&-CrqlmDy^%$(Va ze@1NuwF5uhhs=~1e(?L&1#*4ai+>*QOD9&A_D?1DkM?2zSP!)KoATtNTmzEsNPau`KepfIIKG1YSM9GUJLMpF`nEp# zpzVm=)g*ry(SPAi^+Vcz&G_xaKFiLZ?jZR!65q!AuulTfkG}nZ@c$T{IK!ns;h*n= ze<&p+?<YAo|3UkY6#ioq{)78}+H))Wzee!%Z7O`Q0?Jkmn^%zjc@Oxz zK34wOUc_eyUBcAAS3P z@b9|*bEM?A5&i={_{UO0`X1vql&`gF@TIgr#{aY@%Kkrteek{xdlpr{Hp)le6MlQe zDl-4Ti~l0<VV~*opqH##x~kuv z5Z^{i{fl__zh?Z{zobB%_+(;7ncp3P>jT4~{hnH)92xf~vKLqWX~y4zoKUd>&yPv} z4=3^G@lN$a+CQ4{hk^fKd8XLM-%9;;u)hxelV=z3!}A5~K}!G0L_hl0RziJ}0Ai>jSw6p1y5M zKA8Vu%4gF4c4GgsXdg1aGvi-K_*-1RI8^FyA>-Qyz>oW@=rF%C<5#O)=|b){Y1~ih ze~-k^c|PLjjC3gbDv`|p>MoygQu6DMJ?($-pn_BX{FG%)|1fv@OV_LIJ0CQX@xe*r z!*(C>f#M0B7A{;)9$233nd<5vb?{Fo#E0r4fY_ve!v2;z%5LU8<3 z7yR=*=s@ZCGnnY-^%mL}e!j72q-%Ycj^F;hs(yj{SK5mz|2N~;kr>K|rsK}K>`&&W z(_wr<$A@P87Q){q^XALa{x&jynFsv1|Ck-dpJx2@`|ropcvt$Th2-~b@!_8oPt?_{ z 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

-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

@1r_n#=-SfycccT@E3iwC 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

xT1{z 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ɔuB#euF#O~EEfC2HlI_K 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%0AFuMeD=Xs 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 cFm4uw~31@8aF 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 hualxfQoruvFrqk$IxWa*7 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

yg$`h9Q%XW^gTWkLPv}u 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 ZyW^JPmXuo&X^{Zdpl8{DULCjU1 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

?UT(?*qbA?_j&{#G!#+qj+r45yqn~c!}g*o#~ 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 0 { + if err = dyno.Set(v, files, "config", "files"); err != nil { + fmt.Printf("unable : %v\n", err) + } + } + + if len(deps) > 0 { + for key, val := range deps { + if err = dyno.Set(v, val, key); err != nil { + fmt.Printf("unable : %v\n", err) + } + } + } + + return v +} diff --git a/vendor/github.com/icza/dyno/.travis.yml b/vendor/github.com/icza/dyno/.travis.yml new file mode 100644 index 0000000..21c014c --- /dev/null +++ b/vendor/github.com/icza/dyno/.travis.yml @@ -0,0 +1,11 @@ +language: go + +go: + - 1.9 + - master + +script: + - go test -race -coverprofile=coverage.txt -covermode=atomic + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/icza/dyno/LICENSE b/vendor/github.com/icza/dyno/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/github.com/icza/dyno/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/icza/dyno/README.md b/vendor/github.com/icza/dyno/README.md new file mode 100644 index 0000000..f397675 --- /dev/null +++ b/vendor/github.com/icza/dyno/README.md @@ -0,0 +1,64 @@ +# dyno + +[![Build Status](https://travis-ci.org/icza/dyno.svg?branch=master)](https://travis-ci.org/icza/dyno) +[![GoDoc](https://godoc.org/github.com/icza/dyno?status.svg)](https://godoc.org/github.com/icza/dyno) +[![Go Report Card](https://goreportcard.com/badge/github.com/icza/dyno)](https://goreportcard.com/report/github.com/icza/dyno) +[![codecov](https://codecov.io/gh/icza/dyno/branch/master/graph/badge.svg)](https://codecov.io/gh/icza/dyno) + +Package dyno is a utility to work with _dynamic objects_ at ease. + +Primary goal is to easily handle dynamic objects and arrays (and a mixture of these) +that are the result of unmarshaling a JSON or YAML text into an `interface{}` +for example. When unmarshaling into `interface{}`, libraries usually choose +either `map[string]interface{}` or `map[interface{}]interface{}` to represent objects, +and `[]interface{}` to represent arrays. Package dyno supports a mixture of +these in any depth and combination. + +When operating on a dynamic object, you designate a value you're interested +in by specifying a _path_. A path is a _navigation_; it is a series of map keys +and `int` slice indices that tells how to get to the value. + +Should you need to marshal a dynamic object to JSON which contains maps with +`interface{}` key type (which is not supported by `encoding/json`), you may use +the `ConvertMapI2MapS` converter function. + +The implementation does not use reflection at all, so performance is rather good. + +### Supported Operations + +- Get a (typed) value denoted by a path: [Get](https://godoc.org/github.com/icza/dyno#Get), [GetInt](https://godoc.org/github.com/icza/dyno#GetInt), [GetString](https://godoc.org/github.com/icza/dyno#GetString), [GetSlice](https://godoc.org/github.com/icza/dyno#GetSlice), [GetMapI](https://godoc.org/github.com/icza/dyno#GetMapI), [GetMapS](https://godoc.org/github.com/icza/dyno#GetMapS) + +- Get a typed value with built-in conversion / parsing: [GetInteger](https://godoc.org/github.com/icza/dyno#GetInteger), [GetFloating](https://godoc.org/github.com/icza/dyno#GetFloating), [GetBoolean](https://godoc.org/github.com/icza/dyno#GetBoolean) + +- Specialized get for maps with `string` keys: [SGet](https://godoc.org/github.com/icza/dyno#SGet) + +- Set a value denoted by a path: [Set](https://godoc.org/github.com/icza/dyno#Set) + +- Specialized set for maps with `string` keys: [SSet](https://godoc.org/github.com/icza/dyno#SSet) + +- Append value(s) to a slice denoted by a path: [Append](https://godoc.org/github.com/icza/dyno#Append), [AppendMore](https://godoc.org/github.com/icza/dyno#AppendMore) + +- Delete a key from a map or an element from a slice denoted by a path: [Delete](https://godoc.org/github.com/icza/dyno#Delete) + +- Convert maps with `interface{}` keys to maps with `string` keys: [ConvertMapI2MapS](https://godoc.org/github.com/icza/dyno#ConvertMapI2MapS) + +### Example + +Let's see a simple example editing a JSON text to mask out a password. This is +a simplified version of the [`Example_jsonEdit`](https://godoc.org/github.com/icza/dyno#example-package--JsonEdit) example function: + + src := `{"login":{"password":"secret","user":"bob"},"name":"cmpA"}` + var v interface{} + if err := json.Unmarshal([]byte(src), &v); err != nil { + panic(err) + } + // Edit (mask out) password: + if err = dyno.Set(v, "xxx", "login", "password"); err != nil { + fmt.Printf("Failed to set password: %v\n", err) + } + edited, err := json.Marshal(v) + fmt.Printf("Edited JSON: %s, error: %v\n", edited, err) + +Output will be: + + Edited JSON: {"login":{"password":"xxx","user":"bob"},"name":"cmpA"}, error: diff --git a/vendor/github.com/icza/dyno/dyno.go b/vendor/github.com/icza/dyno/dyno.go new file mode 100644 index 0000000..636b76d --- /dev/null +++ b/vendor/github.com/icza/dyno/dyno.go @@ -0,0 +1,601 @@ +/* +Package dyno is a utility to work with dynamic objects at ease. + +Primary goal is to easily handle dynamic objects and arrays (and a mixture of these) +that are the result of unmarshaling a JSON or YAML text into an interface{} +for example. When unmarshaling into interface{}, libraries usually choose +either map[string]interface{} or map[interface{}]interface{} to represent objects, +and []interface{} to represent arrays. Package dyno supports a mixture of +these in any depth and combination. + +When operating on a dynamic object, you designate a value you're interested +in by specifying a path. A path is a navigation; it is a series of map keys +and int slice indices that tells how to get to the value. + +Should you need to marshal a dynamic object to JSON which contains maps with +interface{} key type (which is not supported by encoding/json), you may use +the ConvertMapI2MapS converter function. + +The implementation does not use reflection at all, so performance is rather good. + +Let's see a simple example editing a JSON text to mask out a password. This is +a simplified version of the Example_jsonEdit example function: + + src := `{"login":{"password":"secret","user":"bob"},"name":"cmpA"}` + var v interface{} + if err := json.Unmarshal([]byte(src), &v); err != nil { + panic(err) + } + // Edit (mask out) password: + if err = dyno.Set(v, "xxx", "login", "password"); err != nil { + fmt.Printf("Failed to set password: %v\n", err) + } + edited, err := json.Marshal(v) + fmt.Printf("Edited JSON: %s, error: %v\n", edited, err) + +Output will be: + + Edited JSON: {"login":{"password":"xxx","user":"bob"},"name":"cmpA"}, error: + +*/ +package dyno + +import ( + "fmt" +) + +// Get returns a value denoted by the path. +// +// If path is empty or nil, v is returned. +func Get(v interface{}, path ...interface{}) (interface{}, error) { + for i, el := range path { + switch node := v.(type) { + case map[string]interface{}: + key, ok := el.(string) + if !ok { + return nil, fmt.Errorf("expected string path element, got: %T (path element idx: %d)", el, i) + } + v, ok = node[key] + if !ok { + return nil, fmt.Errorf("missing key: %s (path element idx: %d)", key, i) + } + + case map[interface{}]interface{}: + var ok bool + v, ok = node[el] + if !ok { + return nil, fmt.Errorf("missing key: %v (path element idx: %d)", el, i) + } + + case []interface{}: + idx, ok := el.(int) + if !ok { + return nil, fmt.Errorf("expected int path element, got: %T (path element idx: %d)", el, i) + } + if idx < 0 || idx >= len(node) { + return nil, fmt.Errorf("index out of range: %d (path element idx: %d)", idx, i) + } + v = node[idx] + + default: + return nil, fmt.Errorf("expected map or slice node, got: %T (path element idx: %d)", node, i) + } + } + + return v, nil +} + +// GetInt returns an int value denoted by the path. +// +// If path is empty or nil, v is returned as an int. +func GetInt(v interface{}, path ...interface{}) (int, error) { + v, err := Get(v, path...) + if err != nil { + return 0, err + } + i, ok := v.(int) + if !ok { + return 0, fmt.Errorf("expected int value, got: %T", v) + } + return i, nil +} + +// GetSlice returns a slice denoted by the path. +// +// If path is empty or nil, v is returned as a slice. +func GetSlice(v interface{}, path ...interface{}) ([]interface{}, error) { + v, err := Get(v, path...) + if err != nil { + return nil, err + } + s, ok := v.([]interface{}) + if !ok { + return nil, fmt.Errorf("expected slice node, got: %T", v) + } + return s, nil +} + +// GetMapI returns a map with interface{} keys denoted by the path. +// +// If path is empty or nil, v is returned as a slice. +func GetMapI(v interface{}, path ...interface{}) (map[interface{}]interface{}, error) { + v, err := Get(v, path...) + if err != nil { + return nil, err + } + m, ok := v.(map[interface{}]interface{}) + if !ok { + return nil, fmt.Errorf("expected map with interface keys node, got: %T", v) + } + return m, nil +} + +// GetMapS returns a map with string keys denoted by the path. +// +// If path is empty or nil, v is returned as a slice. +func GetMapS(v interface{}, path ...interface{}) (map[string]interface{}, error) { + v, err := Get(v, path...) + if err != nil { + return nil, err + } + m, ok := v.(map[string]interface{}) + if !ok { + return nil, fmt.Errorf("expected map with string keys node, got: %T", v) + } + return m, nil +} + +// GetInteger returns an int64 value denoted by the path. +// +// This function accepts many different types and converts them to int64, namely: +// -integer types (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64) +// (which implies the aliases byte and rune too) +// -floating point types (float64, float32) +// -string (fmt.Sscan() will be used for parsing) +// -any type with an Int64() (int64, error) method (e.g. json.Number) +// +// If path is empty or nil, v is returned as an int64. +func GetInteger(v interface{}, path ...interface{}) (int64, error) { + v, err := Get(v, path...) + if err != nil { + return 0, err + } + + switch i := v.(type) { + case int64: + return i, nil + case int: + return int64(i), nil + case int32: + return int64(i), nil + case int16: + return int64(i), nil + case int8: + return int64(i), nil + case uint: + return int64(i), nil + case uint64: + return int64(i), nil + case uint32: + return int64(i), nil + case uint16: + return int64(i), nil + case uint8: + return int64(i), nil + case float64: + return int64(i), nil + case float32: + return int64(i), nil + case string: + var n int64 + _, err := fmt.Sscan(i, &n) + return n, err + case interface { + Int64() (int64, error) + }: + return i.Int64() + default: + return 0, fmt.Errorf("expected some form of integer number, got: %T", v) + } +} + +// GetFloat64 returns a float64 value denoted by the path. +// +// If path is empty or nil, v is returned as a float64. +func GetFloat64(v interface{}, path ...interface{}) (float64, error) { + v, err := Get(v, path...) + if err != nil { + return 0, err + } + f, ok := v.(float64) + if !ok { + return 0, fmt.Errorf("expected float64 value, got: %T", v) + } + return f, nil +} + +// GetFloating returns a float64 value denoted by the path. +// +// This function accepts many different types and converts them to float64, namely: +// -floating point types (float64, float32) +// -integer types (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64) +// (which implies the aliases byte and rune too) +// -string (fmt.Sscan() will be used for parsing) +// -any type with a Float64() (float64, error) method (e.g. json.Number) +// +// If path is empty or nil, v is returned as an int64. +func GetFloating(v interface{}, path ...interface{}) (float64, error) { + v, err := Get(v, path...) + if err != nil { + return 0, err + } + + switch f := v.(type) { + case float64: + return f, nil + case float32: + return float64(f), nil + case int64: + return float64(f), nil + case int: + return float64(f), nil + case int32: + return float64(f), nil + case int16: + return float64(f), nil + case int8: + return float64(f), nil + case uint: + return float64(f), nil + case uint64: + return float64(f), nil + case uint32: + return float64(f), nil + case uint16: + return float64(f), nil + case uint8: + return float64(f), nil + case string: + var n float64 + _, err := fmt.Sscan(f, &n) + return n, err + case interface { + Float64() (float64, error) + }: + return f.Float64() + default: + return 0, fmt.Errorf("expected some form of floating point number, got: %T", v) + } +} + +// GetString returns a string value denoted by the path. +// +// If path is empty or nil, v is returned as a string. +func GetString(v interface{}, path ...interface{}) (string, error) { + v, err := Get(v, path...) + if err != nil { + return "", err + } + s, ok := v.(string) + if !ok { + return "", fmt.Errorf("expected string value, got: %T", v) + } + return s, nil +} + +// GetBoolean returns a bool value denoted by the path. +// +// This function accepts many different types and converts them to bool, namely: +// -boolean type +// -integer and floating point types (false for zero values, true otherwise) +// -string (fmt.Sscan() will be used for parsing) +// +// If path is empty or nil, v is returned as a bool. +func GetBoolean(v interface{}, path ...interface{}) (bool, error) { + v, err := Get(v, path...) + if err != nil { + return false, err + } + + switch f := v.(type) { + case bool: + return f, nil + case int: + return f != 0, nil + case int64: + return f != 0, nil + case int32: + return f != 0, nil + case int16: + return f != 0, nil + case int8: + return f != 0, nil + case uint: + return f != 0, nil + case uint64: + return f != 0, nil + case uint32: + return f != 0, nil + case uint16: + return f != 0, nil + case uint8: + return f != 0, nil + case float64: + return f != 0, nil + case float32: + return f != 0, nil + case string: + var n bool + _, err := fmt.Sscan(f, &n) + return n, err + case interface { + Float64() (float64, error) + }: + val, err := f.Float64() + if err != nil { + return false, err + } + return val != 0, err + default: + return false, fmt.Errorf("expected bool, got: %T", v) + } +} + +// SGet returns a value denoted by the path consisting of only string keys. +// +// SGet is an optimized and specialized version of the general Get. +// The path may only contain string map keys (no slice indices), and +// each value associated with the keys (being the path elements) must also +// be maps with string keys, except the value asssociated with the last +// path element. +// +// If path is empty or nil, m is returned. +func SGet(m map[string]interface{}, path ...string) (interface{}, error) { + if len(path) == 0 { + return m, nil + } + + lastIdx := len(path) - 1 + var value interface{} + var ok bool + + for i, key := range path { + if value, ok = m[key]; !ok { + return nil, fmt.Errorf("missing key: %s (path element idx: %d)", key, i) + } + if i == lastIdx { + break + } + m2, ok := value.(map[string]interface{}) + if !ok { + return nil, fmt.Errorf("expected map with string keys node, got: %T (path element idx: %d)", value, i) + } + m = m2 + } + + return value, nil +} + +// Set sets a map or slice element denoted by the path. +// +// The last element of the path must be a map key or a slice index, and the +// preceding path must denote a map or a slice respectively which must already exist. +// +// Path cannot be empty or nil, else an error is returned. +func Set(v interface{}, value interface{}, path ...interface{}) error { + if len(path) == 0 { + return fmt.Errorf("path cannot be empty") + } + + i := len(path) - 1 // The last index + if len(path) > 1 { + var err error + v, err = Get(v, path[:i]...) + if err != nil { + return err + } + } + + el := path[i] + + switch node := v.(type) { + case map[string]interface{}: + key, ok := el.(string) + if !ok { + return fmt.Errorf("expected string path element, got: %T (path element idx: %d)", el, i) + } + node[key] = value + + case map[interface{}]interface{}: + node[el] = value + + case []interface{}: + idx, ok := el.(int) + if !ok { + return fmt.Errorf("expected int path element, got: %T (path element idx: %d)", el, i) + } + if idx < 0 || idx >= len(node) { + return fmt.Errorf("index out of range: %d (path element idx: %d)", idx, i) + } + node[idx] = value + + default: + return fmt.Errorf("expected map or slice node, got: %T (path element idx: %d)", node, i) + } + + return nil +} + +// SSet sets a map element with string key type, denoted by the path +// consisting of only string keys. +// +// SSet is an optimized and specialized version of the general Set. The +// path may only contain string map keys (no slice indices), and each +// value associated with the keys (being the path elements) must also be +// a maps with string keys, except the value associated with the last path +// element. +// +// The map denoted by the preceding path before the last path element +// must already exist. +// +// Path cannot be empty or nil, else an error is returned. +func SSet(m map[string]interface{}, value interface{}, path ...string) error { + if len(path) == 0 { + return fmt.Errorf("path cannot be empty") + } + + i := len(path) - 1 // The last index + if len(path) > 1 { + v, err := SGet(m, path[:i]...) + if err != nil { + return err + } + + var ok bool + m, ok = v.(map[string]interface{}) + if !ok { + return fmt.Errorf("expected map with string keys node, got: %T (path element idx: %d)", value, i) + } + } + + m[path[i]] = value + return nil +} + +// Append appends a value to a slice denoted by the path. +// +// The slice denoted by path must already exist. +// +// Path cannot be empty or nil, else an error is returned. +func Append(v interface{}, value interface{}, path ...interface{}) error { + if len(path) == 0 { + return fmt.Errorf("path cannot be empty") + } + + node, err := Get(v, path...) + if err != nil { + return err + } + + s, ok := node.([]interface{}) + if !ok { + return fmt.Errorf("expected slice node, got: %T (path element idx: %d)", node, len(path)-1) + } + + // Must set the new slice value: + return Set(v, append(s, value), path...) +} + +// AppendMore appends values to a slice denoted by the path. +// +// The slice denoted by path must already exist. +// +// Path cannot be empty or nil, else an error is returned. +func AppendMore(v interface{}, values []interface{}, path ...interface{}) error { + if len(path) == 0 { + return fmt.Errorf("path cannot be empty") + } + + node, err := Get(v, path...) + if err != nil { + return err + } + + s, ok := node.([]interface{}) + if !ok { + return fmt.Errorf("expected slice node, got: %T (path element idx: %d)", node, len(path)) + } + + // Must set the new slice value: + return Set(v, append(s, values...), path...) +} + +// Delete deletes a key from a map or an element from a slice denoted by the path. +// +// Deleting a non-existing map key is a no-op. Attempting to delete a slice +// element from a slice with invalid index is an error. +// +// Path cannot be empty or nil if v itself is a slice, else an error is returned. +func Delete(v interface{}, key interface{}, path ...interface{}) error { + if len(path) == 0 { + if _, ok := v.([]interface{}); ok { + return fmt.Errorf("path cannot be empty if v is a slice") + } + } + + node, err := Get(v, path...) + if err != nil { + return err + } + + switch node2 := node.(type) { + case map[string]interface{}: + skey, ok := key.(string) + if !ok { + return fmt.Errorf("expected string key, got: %T", key) + } + delete(node2, skey) + + case map[interface{}]interface{}: + delete(node2, key) + + case []interface{}: + idx, ok := key.(int) + if !ok { + return fmt.Errorf("expected int key, got: %T", key) + } + if idx < 0 || idx >= len(node2) { + return fmt.Errorf("index out of range: %d", idx) + } + copy(node2[idx:], node2[idx+1:]) + // Clear the emptied element: + node2[len(node2)-1] = nil + // Must set the new slice value: + return Set(v, node2[:len(node2)-1], path...) + + default: + return fmt.Errorf("expected map or slice node, got: %T (path element idx: %d)", node, len(path)-1) + } + + return nil +} + +// ConvertMapI2MapS walks the given dynamic object recursively, and +// converts maps with interface{} key type to maps with string key type. +// This function comes handy if you want to marshal a dynamic object into +// JSON where maps with interface{} key type are not allowed. +// +// Recursion is implemented into values of the following types: +// -map[interface{}]interface{} +// -map[string]interface{} +// -[]interface{} +// +// When converting map[interface{}]interface{} to map[string]interface{}, +// fmt.Sprint() with default formatting is used to convert the key to a string key. +func ConvertMapI2MapS(v interface{}) interface{} { + switch x := v.(type) { + case map[interface{}]interface{}: + m := map[string]interface{}{} + for k, v2 := range x { + switch k2 := k.(type) { + case string: // Fast check if it's already a string + m[k2] = ConvertMapI2MapS(v2) + default: + m[fmt.Sprint(k)] = ConvertMapI2MapS(v2) + } + } + v = m + + case []interface{}: + for i, v2 := range x { + x[i] = ConvertMapI2MapS(v2) + } + + case map[string]interface{}: + for k, v2 := range x { + x[k] = ConvertMapI2MapS(v2) + } + } + + return v +} diff --git a/vendor/github.com/icza/dyno/dyno_test.go b/vendor/github.com/icza/dyno/dyno_test.go new file mode 100644 index 0000000..7467fd0 --- /dev/null +++ b/vendor/github.com/icza/dyno/dyno_test.go @@ -0,0 +1,1620 @@ +package dyno + +import ( + "encoding/json" + "reflect" + "testing" +) + +var ( + s = []interface{}{ + 1, "a", 3.3, []interface{}{"inner", "inner2"}, + } + mi = map[interface{}]interface{}{ + "x": 1, + "y": 2, + "z": map[interface{}]interface{}{ + 3: "three", + }, + } + ms = map[string]interface{}{ + "a": 1, + "p": map[string]interface{}{ + "x": 1, + "y": 2, + }, + "pi": mi, + "ns": []interface{}{1.1, 2.2, 3.3}, + "b": 2, + "s": s, + "str": "abc", + "flt": 3.14, + } +) + +func TestGet(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value interface{} // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "nil path on map", + v: ms, + path: nil, + value: ms, + }, + { + title: "nil path on slice", + v: s, + path: nil, + value: s, + }, + { + title: "simple map element", + v: ms, + path: []interface{}{"a"}, + value: 1, + }, + { + title: "simple map element #2", + v: ms, + path: []interface{}{"s"}, + value: s, + }, + { + title: "nested map element", + v: ms, + path: []interface{}{"p", "x"}, + value: 1, + }, + { + title: "nested map (mi) element", + v: ms, + path: []interface{}{"pi", "x"}, + value: 1, + }, + { + title: "nested map (mi) element #2", + v: ms, + path: []interface{}{"pi", "z", 3}, + value: "three", + }, + { + title: "nested slice element", + v: s, + path: []interface{}{3, 1}, + value: "inner2", + }, + { + title: "map element and slice element", + v: ms, + path: []interface{}{"ns", 1}, + value: 2.2, + }, + { + title: "map element and slice element #2", + v: ms, + path: []interface{}{"s", 1}, + value: "a", + }, + + // Test errors: + { + title: "expected map or slice node error", + v: 1, + path: []interface{}{"x"}, + isErr: true, + }, + { + title: "expected string path element error", + v: ms, + path: []interface{}{1}, + isErr: true, + }, + { + title: "missing key (ms) error", + v: ms, + path: []interface{}{"x"}, + isErr: true, + }, + { + title: "missing key (mi) error", + v: mi, + path: []interface{}{"a"}, + isErr: true, + }, + { + title: "expected int path element error", + v: ms, + path: []interface{}{"ns", "x"}, + isErr: true, + }, + { + title: "index out of range error (negative)", + v: ms, + path: []interface{}{"ns", -1}, + isErr: true, + }, + { + title: "index out of range error (too big)", + v: ms, + path: []interface{}{"ns", 11}, + isErr: true, + }, + } + + for _, c := range cases { + value, err := Get(c.v, c.path...) + if !reflect.DeepEqual(value, c.value) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetInt(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value int // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on int", + v: 1, + path: []interface{}{}, + value: 1, + }, + { + title: "success", + v: ms, + path: []interface{}{"a"}, + value: 1, + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: 0, + isErr: true, + }, + { + title: "expected int error", + v: ms, + path: []interface{}{"s"}, + value: 0, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetInt(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetSlice(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value []interface{} // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on slice", + v: []interface{}{1}, + path: []interface{}{}, + value: []interface{}{1}, + }, + { + title: "success", + v: ms, + path: []interface{}{"ns"}, + value: ms["ns"].([]interface{}), + }, + { + title: "success #2", + v: s, + path: []interface{}{3}, + value: s[3].([]interface{}), + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: nil, + isErr: true, + }, + { + title: "expected slice error", + v: ms, + path: []interface{}{"a"}, + value: nil, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetSlice(c.v, c.path...) + if !reflect.DeepEqual(value, c.value) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetMapI(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value map[interface{}]interface{} // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on map", + v: map[interface{}]interface{}{1: "one"}, + path: []interface{}{}, + value: map[interface{}]interface{}{1: "one"}, + }, + { + title: "success", + v: mi, + path: []interface{}{"z"}, + value: mi["z"].(map[interface{}]interface{}), + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: nil, + isErr: true, + }, + { + title: "expected map error", + v: ms, + path: []interface{}{"a"}, + value: nil, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetMapI(c.v, c.path...) + if !reflect.DeepEqual(value, c.value) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetMapS(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value map[string]interface{} // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on map", + v: map[string]interface{}{"one": 1}, + path: []interface{}{}, + value: map[string]interface{}{"one": 1}, + }, + { + title: "success", + v: ms, + path: []interface{}{"p"}, + value: ms["p"].(map[string]interface{}), + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: nil, + isErr: true, + }, + { + title: "expected map error", + v: ms, + path: []interface{}{"a"}, + value: nil, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetMapS(c.v, c.path...) + if !reflect.DeepEqual(value, c.value) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetInteger(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value int64 // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on int", + v: 1, + path: []interface{}{}, + value: 1, + }, + { + title: "success", + v: ms, + path: []interface{}{"a"}, + value: 1, + }, + { + title: "success from int64", + v: int64(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int", + v: int(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int32", + v: int32(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int16", + v: int16(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int8", + v: int8(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint", + v: uint(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint64", + v: uint64(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint32", + v: uint32(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint16", + v: uint16(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint8", + v: uint8(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from float64", + v: float64(1.1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from float32", + v: float32(1.1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from string", + v: "1", + path: []interface{}{}, + value: 1, + }, + { + title: "success from Int64() method", + v: json.Number("1"), + path: []interface{}{}, + value: 1, + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: 0, + isErr: true, + }, + { + title: "expected some form of integer error", + v: ms, + path: []interface{}{"s"}, + value: 0, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetInteger(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetFloat64(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value float64 // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on float64", + v: 3.14, + path: []interface{}{}, + value: 3.14, + }, + { + title: "success", + v: ms, + path: []interface{}{"flt"}, + value: 3.14, + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: 0, + isErr: true, + }, + { + title: "expected float64 error", + v: ms, + path: []interface{}{"s"}, + value: 0, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetFloat64(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetFloating(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value float64 // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on int", + v: 1, + path: []interface{}{}, + value: 1, + }, + { + title: "success", + v: ms, + path: []interface{}{"a"}, + value: 1, + }, + { + title: "success from float64", + v: float64(1.1), + path: []interface{}{}, + value: 1.1, + }, + { + title: "success from float32", + v: float32(1.1), + path: []interface{}{}, + value: float64(float32(1.1)), + }, + { + title: "success from int64", + v: int64(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int", + v: int(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int32", + v: int32(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int16", + v: int16(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from int8", + v: int8(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint", + v: uint(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint64", + v: uint64(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint32", + v: uint32(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint16", + v: uint16(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from uint8", + v: uint8(1), + path: []interface{}{}, + value: 1, + }, + { + title: "success from string", + v: "1.1", + path: []interface{}{}, + value: 1.1, + }, + { + title: "success from Float64() method", + v: json.Number("1.1"), + path: []interface{}{}, + value: 1.1, + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: 0, + isErr: true, + }, + { + title: "expected some form of floating point error", + v: ms, + path: []interface{}{"s"}, + value: 0, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetFloating(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetString(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value string // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on string", + v: "a", + path: []interface{}{}, + value: "a", + }, + { + title: "success", + v: ms, + path: []interface{}{"str"}, + value: "abc", + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: "", + isErr: true, + }, + { + title: "expected string error", + v: ms, + path: []interface{}{"a"}, + value: "", + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetString(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestGetBoolean(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + path []interface{} // path whose value to get + value bool // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "empty path on int", + v: 1, + path: []interface{}{}, + value: true, + }, + { + title: "success", + v: ms, + path: []interface{}{"a"}, + value: true, + }, + { + title: "success from bool", + v: bool(true), + path: []interface{}{}, + value: true, + }, + { + title: "success from float64", + v: float64(1.1), + path: []interface{}{}, + value: true, + }, + { + title: "success from float32", + v: float32(1.1), + path: []interface{}{}, + value: true, + }, + { + title: "success from int64", + v: int64(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from int", + v: int(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from int32", + v: int32(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from int16", + v: int16(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from int8", + v: int8(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from uint", + v: uint(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from uint64", + v: uint64(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from uint32", + v: uint32(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from uint16", + v: uint16(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from uint8", + v: uint8(1), + path: []interface{}{}, + value: true, + }, + { + title: "success from string (true)", + v: "true", + path: []interface{}{}, + value: true, + }, + { + title: "success from string (TRUE)", + v: "TRUE", + path: []interface{}{}, + value: true, + }, + { + title: "success from string (False)", + v: "False", + path: []interface{}{}, + value: false, + }, + { + title: "success from string (1)", + v: "1", + path: []interface{}{}, + value: true, + }, + { + title: "success from string (false)", + v: "0", + path: []interface{}{}, + value: false, + }, + { + title: "success from string 1.1", + v: string("1.1"), + path: []interface{}{}, + value: true, + }, + { + title: "success from string 0", + v: string("0"), + path: []interface{}{}, + value: false, + }, + { + title: "success from json.Number method", + v: json.Number("1.1"), + path: []interface{}{}, + value: true, + }, + + // Test errors: + { + title: "internal Get call returns error", + v: ms, + path: []interface{}{"x"}, + value: false, + isErr: true, + }, + { + title: "expected some form of floating point error", + v: ms, + path: []interface{}{"s"}, + value: false, + isErr: true, + }, + { + title: "some decimal number as string", + v: json.Number("0xff"), + path: []interface{}{}, + value: false, + isErr: true, + }, + } + + for _, c := range cases { + value, err := GetBoolean(c.v, c.path...) + if value != c.value { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestSGet(t *testing.T) { + cases := []struct { + title string // Title of the test case + v map[string]interface{} // Input map + path []string // path whose value to get + value interface{} // Expected value + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "nil path on map", + v: ms, + path: nil, + value: ms, + }, + { + title: "empty path on map", + v: ms, + path: []string{}, + value: ms, + }, + { + title: "simple map element", + v: ms, + path: []string{"a"}, + value: 1, + }, + { + title: "simple map element #2", + v: ms, + path: []string{"s"}, + value: s, + }, + { + title: "nested map element", + v: ms, + path: []string{"p", "x"}, + value: 1, + }, + + // Test errors: + { + title: "missing key error", + v: ms, + path: []string{"x"}, + isErr: true, + }, + { + title: "expected map with string keys node error", + v: ms, + path: []string{"pi", "x"}, + isErr: true, + }, + { + title: "expected map with string keys node error #2", + v: ms, + path: []string{"ns", "1"}, + isErr: true, + }, + } + + for _, c := range cases { + value, err := SGet(c.v, c.path...) + if !reflect.DeepEqual(value, c.value) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.value, value) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestSet(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + value interface{} // Value to set + path []interface{} // path whose value to set + exp interface{} // Expected result + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "add new map element", + v: map[string]interface{}{}, + value: 1, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": 1}, + }, + { + title: "change existing map element", + v: map[string]interface{}{"a": 1}, + value: 2, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": 2}, + }, + { + title: "change existing slice element", + v: []interface{}{"a", 1}, + value: 2, + path: []interface{}{1}, + exp: []interface{}{"a", 2}, + }, + { + title: "change existing map (mi) element", + v: map[interface{}]interface{}{1: "one"}, + value: "two", + path: []interface{}{1}, + exp: map[interface{}]interface{}{1: "two"}, + }, + { + title: "change existing nested map element", + v: map[string]interface{}{ + "a": map[string]interface{}{"b": 1}, + }, + value: 2, + path: []interface{}{"a", "b"}, + exp: map[string]interface{}{ + "a": map[string]interface{}{"b": 2}, + }, + }, + { + title: "replace existing element with a value of different type", + v: map[string]interface{}{ + "a": map[string]interface{}{"b": 1}, + }, + value: 2, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": 2}, + }, + { + title: "change existing element in map-slice-map", + v: map[string]interface{}{ + "a": []interface{}{ + map[string]interface{}{"b": 1}, + }, + }, + value: 2, + path: []interface{}{"a", 0, "b"}, + exp: map[string]interface{}{ + "a": []interface{}{ + map[string]interface{}{"b": 2}, + }, + }, + }, + + // Test errors: + { + title: "path cannot be empty error", + v: map[string]interface{}{"a": 1}, + value: 2, + path: []interface{}{}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "internal Get call returns error", + v: map[string]interface{}{"a": 1}, + value: 2, + path: []interface{}{"b", "c"}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "expected string path element error", + v: map[string]interface{}{"a": 1}, + value: 2, + path: []interface{}{1}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "expected int path element error", + v: []interface{}{"a", 1}, + value: 2, + path: []interface{}{"a"}, + exp: []interface{}{"a", 1}, + isErr: true, + }, + { + title: "index out of range error (negative)", + v: []interface{}{"a", 1}, + value: 2, + path: []interface{}{-1}, + exp: []interface{}{"a", 1}, + isErr: true, + }, + { + title: "index out of range error (too big)", + v: []interface{}{"a", 1}, + value: 2, + path: []interface{}{11}, + exp: []interface{}{"a", 1}, + isErr: true, + }, + { + title: "expected map or slice node error", + v: 1, + value: 2, + path: []interface{}{"x"}, + exp: 1, + isErr: true, + }, + } + + for _, c := range cases { + err := Set(c.v, c.value, c.path...) + if !reflect.DeepEqual(c.v, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.v) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestSSet(t *testing.T) { + cases := []struct { + title string // Title of the test case + m map[string]interface{} // Input map + value interface{} // Value to set + path []string // path whose value to set + exp map[string]interface{} // Expected result + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "add new map element", + m: map[string]interface{}{}, + value: 1, + path: []string{"a"}, + exp: map[string]interface{}{"a": 1}, + }, + { + title: "change existing map element", + m: map[string]interface{}{"a": 1}, + value: 2, + path: []string{"a"}, + exp: map[string]interface{}{"a": 2}, + }, + { + title: "change existing nested map element", + m: map[string]interface{}{ + "a": map[string]interface{}{"b": 1}, + }, + value: 2, + path: []string{"a", "b"}, + exp: map[string]interface{}{ + "a": map[string]interface{}{"b": 2}, + }, + }, + { + title: "replace existing element with a value of different type", + m: map[string]interface{}{ + "a": map[string]interface{}{"b": 1}, + }, + value: 2, + path: []string{"a"}, + exp: map[string]interface{}{"a": 2}, + }, + + // Test errors: + { + title: "path cannot be empty error", + m: map[string]interface{}{"a": 1}, + value: 2, + path: []string{}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "internal SGet call returns error", + m: map[string]interface{}{"a": 1}, + value: 2, + path: []string{"b", "c"}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "expected map with string keys node error", + m: map[string]interface{}{ + "a": 1, + }, + value: 2, + path: []string{"a", "b"}, + exp: map[string]interface{}{ + "a": 1, + }, + isErr: true, + }, + } + + for _, c := range cases { + err := SSet(c.m, c.value, c.path...) + if !reflect.DeepEqual(c.m, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.m) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestAppend(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + value interface{} // Value to append + path []interface{} // path of slice to append to + exp interface{} // Expected result + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "append to nil slice", + v: map[string]interface{}{ + "a": []interface{}(nil), + }, + value: 1, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{1}, + }, + }, + { + title: "append to slice", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + value: 1, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3, 1}, + }, + }, + + // Test errors: + { + title: "path cannot be empty error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + value: 1, + path: []interface{}{}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + isErr: true, + }, + { + title: "internal Get call returns error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + value: 1, + path: []interface{}{"b"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + isErr: true, + }, + { + title: "expected slice node error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + "b": 1, + }, + value: 1, + path: []interface{}{"b"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + "b": 1, + }, + isErr: true, + }, + } + + for _, c := range cases { + err := Append(c.v, c.value, c.path...) + if !reflect.DeepEqual(c.v, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.v) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestAppendMore(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + values []interface{} // Values to append + path []interface{} // path of slice to append to + exp interface{} // Expected result + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "append to nil slice", + v: map[string]interface{}{ + "a": []interface{}(nil), + }, + values: []interface{}{1}, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{1}, + }, + }, + { + title: "append nil slice to slice", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + values: nil, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + }, + { + title: "append to slice", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + values: []interface{}{1}, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3, 1}, + }, + }, + { + title: "append multiple values to slice", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + values: []interface{}{1, []interface{}{2}}, + path: []interface{}{"a"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3, 1, []interface{}{2}}, + }, + }, + + // Test errors: + { + title: "path cannot be empty error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + values: []interface{}{1}, + path: []interface{}{}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + isErr: true, + }, + { + title: "internal Get call returns error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + values: []interface{}{1}, + path: []interface{}{"b"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + }, + isErr: true, + }, + { + title: "expected slice node error", + v: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + "b": 1, + }, + values: []interface{}{1}, + path: []interface{}{"b"}, + exp: map[string]interface{}{ + "a": []interface{}{"b", 3.3}, + "b": 1, + }, + isErr: true, + }, + } + + for _, c := range cases { + err := AppendMore(c.v, c.values, c.path...) + if !reflect.DeepEqual(c.v, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.v) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestDelete(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + key interface{} // Key (or index) to delete + path []interface{} // path whose key or element to remove + exp interface{} // Expected result + isErr bool // Tells if error is expected + }{ + // Test success: + { + title: "delete non-existing map key with empty path", + v: map[string]interface{}{"a": 1}, + key: "x", + path: []interface{}{}, + exp: map[string]interface{}{"a": 1}, + }, + { + title: "delete non-existing map key", + v: map[string]interface{}{"a": map[string]interface{}{"b": 1}}, + key: "x", + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": map[string]interface{}{"b": 1}}, + }, + { + title: "delete existing map element", + v: map[string]interface{}{"a": 1, "b": 2}, + key: "a", + path: []interface{}{}, + exp: map[string]interface{}{"b": 2}, + }, + { + title: "delete slice element", + v: map[string]interface{}{"a": []interface{}{"b", 1}}, + key: 0, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": []interface{}{1}}, + }, + { + title: "delete nested slice element", + v: []interface{}{"a", []interface{}{"b", 1}}, + key: 0, + path: []interface{}{1}, + exp: []interface{}{"a", []interface{}{1}}, + }, + { + title: "delete non-existing map (mi) key with empty path", + v: map[interface{}]interface{}{1: "a"}, + key: "x", + path: []interface{}{}, + exp: map[interface{}]interface{}{1: "a"}, + }, + { + title: "delete non-existing map (mi) key", + v: map[interface{}]interface{}{1: map[interface{}]interface{}{2: "b"}}, + key: "x", + path: []interface{}{1}, + exp: map[interface{}]interface{}{1: map[interface{}]interface{}{2: "b"}}, + }, + { + title: "delete existing map (mi) element", + v: map[interface{}]interface{}{1: "a", 2: "b"}, + key: 1, + path: []interface{}{}, + exp: map[interface{}]interface{}{2: "b"}, + }, + + // Test errors: + { + title: "path cannot be empty if v is a slice", + v: []interface{}{1, "a"}, + key: 0, + path: []interface{}{}, + exp: []interface{}{1, "a"}, + isErr: true, + }, + { + title: "internal Get call returns error", + v: map[string]interface{}{"a": 1}, + key: 2, + path: []interface{}{"b", "c"}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "expected string key error", + v: map[string]interface{}{"a": 1}, + key: 2, + path: []interface{}{}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + { + title: "expected int key error", + v: map[string]interface{}{"a": []interface{}{"b", 1}}, + key: "b", + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": []interface{}{"b", 1}}, + isErr: true, + }, + { + title: "index out of range error (negative)", + v: map[string]interface{}{"a": []interface{}{"b", 1}}, + key: -1, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": []interface{}{"b", 1}}, + isErr: true, + }, + { + title: "index out of range error (too big)", + v: map[string]interface{}{"a": []interface{}{"b", 1}}, + key: 2, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": []interface{}{"b", 1}}, + isErr: true, + }, + { + title: "expected map or slice node error", + v: map[string]interface{}{"a": 1}, + key: 2, + path: []interface{}{"a"}, + exp: map[string]interface{}{"a": 1}, + isErr: true, + }, + } + + for _, c := range cases { + err := Delete(c.v, c.key, c.path...) + if !reflect.DeepEqual(c.v, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.v) + } + if c.isErr != (err != nil) { + t.Errorf("[title: %s] Expected error: %v, got: %v, err value: %v", c.title, c.isErr, err != nil, err) + } + } +} + +func TestConvertMapI2MapS(t *testing.T) { + cases := []struct { + title string // Title of the test case + v interface{} // Input dynamic object + exp interface{} // Expected result + }{ + { + title: "nil value", + v: nil, + exp: nil, + }, + { + title: "string value", + v: "a", + exp: "a", + }, + { + title: "map[interfac{}]interface{} value", + v: map[interface{}]interface{}{ + "s": "s", + 1: 1, + }, + exp: map[string]interface{}{ + "s": "s", + "1": 1, + }, + }, + { + title: "nested maps and slices", + v: map[interface{}]interface{}{ + "s": "s", + 1: 1, + float64(0): []interface{}{ + 1, + "x", + map[interface{}]interface{}{ + "s": "s", + 2.0: 2, + }, + map[string]interface{}{ + "s": "s", + "1": 1, + }, + }, + }, + exp: map[string]interface{}{ + "s": "s", + "1": 1, + "0": []interface{}{ + 1, + "x", + map[string]interface{}{ + "s": "s", + "2": 2, + }, + map[string]interface{}{ + "s": "s", + "1": 1, + }, + }, + }, + }, + } + + for _, c := range cases { + v := ConvertMapI2MapS(c.v) + if !reflect.DeepEqual(v, c.exp) { + t.Errorf("[title: %s] Expected value: %v, got: %v", c.title, c.exp, c.v) + } + } +} diff --git a/vendor/github.com/icza/dyno/example_test.go b/vendor/github.com/icza/dyno/example_test.go new file mode 100644 index 0000000..b2dff53 --- /dev/null +++ b/vendor/github.com/icza/dyno/example_test.go @@ -0,0 +1,234 @@ +package dyno_test + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/icza/dyno" +) + +// Example shows a few of dyno's features, such as getting, setting and appending +// values to / from a dynamic object. +func Example() { + person := map[string]interface{}{ + "name": map[string]interface{}{ + "first": "Bob", + "last": "Archer", + }, + "age": 22, + "fruits": []interface{}{ + "apple", "banana", + }, + } + + // pp prints the person + pp := func(err error) { + json.NewEncoder(os.Stdout).Encode(person) // Output JSON + if err != nil { + fmt.Println("ERROR:", err) + } + } + + // Print initial person and its first name: + pp(nil) + v, err := dyno.Get(person, "name", "first") + fmt.Printf("First name: %v, error: %v\n", v, err) + + // Change first name: + pp(dyno.Set(person, "Alice", "name", "first")) + + // Change complete name from map to a single string: + pp(dyno.Set(person, "Alice Archer", "name")) + + // Print and increment age: + age, err := dyno.GetInt(person, "age") + fmt.Printf("Age: %v, error: %v\n", age, err) + pp(dyno.Set(person, age+1, "age")) + + // Change a fruits slice element: + pp(dyno.Set(person, "lemon", "fruits", 1)) + + // Add a new fruit: + pp(dyno.Append(person, "melon", "fruits")) + + // Output: + // {"age":22,"fruits":["apple","banana"],"name":{"first":"Bob","last":"Archer"}} + // First name: Bob, error: + // {"age":22,"fruits":["apple","banana"],"name":{"first":"Alice","last":"Archer"}} + // {"age":22,"fruits":["apple","banana"],"name":"Alice Archer"} + // Age: 22, error: + // {"age":23,"fruits":["apple","banana"],"name":"Alice Archer"} + // {"age":23,"fruits":["apple","lemon"],"name":"Alice Archer"} + // {"age":23,"fruits":["apple","lemon","melon"],"name":"Alice Archer"} +} + +// Example_jsonEdit shows a simple example how JSON can be edited. +// The password placed in the JSON is masked out. +func Example_jsonEdit() { + src := `{"login":{"password":"secret","user":"bob"},"name":"cmpA"}` + fmt.Printf("Input JSON: %s\n", src) + + var v interface{} + if err := json.Unmarshal([]byte(src), &v); err != nil { + panic(err) + } + + user, err := dyno.Get(v, "login", "user") + fmt.Printf("User: %-6s, error: %v\n", user, err) + + password, err := dyno.Get(v, "login", "password") + fmt.Printf("Password: %-6s, error: %v\n", password, err) + + // Edit (mask out) password: + if err = dyno.Set(v, "xxx", "login", "password"); err != nil { + fmt.Printf("Failed to set password: %v\n", err) + } + + edited, err := json.Marshal(v) + fmt.Printf("Edited JSON: %s, error: %v\n", edited, err) + + // Output: + // Input JSON: {"login":{"password":"secret","user":"bob"},"name":"cmpA"} + // User: bob , error: + // Password: secret, error: + // Edited JSON: {"login":{"password":"xxx","user":"bob"},"name":"cmpA"}, error: +} + +func ExampleGet() { + m := map[string]interface{}{ + "a": 1, + "b": map[interface{}]interface{}{ + 3: []interface{}{1, "two", 3.3}, + }, + } + + printValue := func(v interface{}, err error) { + fmt.Printf("Value: %-5v, Error: %v\n", v, err) + } + + printValue(dyno.Get(m, "a")) + printValue(dyno.Get(m, "b", 3, 1)) + printValue(dyno.Get(m, "x")) + + sl, _ := dyno.Get(m, "b", 3) // This is: []interface{}{1, "two", 3.3} + printValue(dyno.Get(sl, 4)) + + // Output: + // Value: 1 , Error: + // Value: two , Error: + // Value: , Error: missing key: x (path element idx: 0) + // Value: , Error: index out of range: 4 (path element idx: 0) +} + +func ExampleSet() { + m := map[string]interface{}{ + "a": 1, + "b": map[string]interface{}{ + "3": []interface{}{1, "two", 3.3}, + }, + } + + printMap := func(err error) { + json.NewEncoder(os.Stdout).Encode(m) // Output JSON + if err != nil { + fmt.Println("ERROR:", err) + } + } + + printMap(dyno.Set(m, 2, "a")) + printMap(dyno.Set(m, "owt", "b", "3", 1)) + printMap(dyno.Set(m, 1, "x")) + + sl, _ := dyno.Get(m, "b", "3") // This is: []interface{}{1, "owt", 3.3} + printMap(dyno.Set(sl, 1, 4)) + + // Output: + // {"a":2,"b":{"3":[1,"two",3.3]}} + // {"a":2,"b":{"3":[1,"owt",3.3]}} + // {"a":2,"b":{"3":[1,"owt",3.3]},"x":1} + // {"a":2,"b":{"3":[1,"owt",3.3]},"x":1} + // ERROR: index out of range: 4 (path element idx: 0) +} + +func ExampleAppend() { + m := map[string]interface{}{ + "a": []interface{}{ + "3", 2, []interface{}{1, "two", 3.3}, + }, + } + + printMap := func(err error) { + fmt.Println(m) + if err != nil { + fmt.Println("ERROR:", err) + } + } + + printMap(dyno.Append(m, 4, "a")) + printMap(dyno.Append(m, 9, "a", 2)) + printMap(dyno.Append(m, 1, "x")) + + // Output: + // map[a:[3 2 [1 two 3.3] 4]] + // map[a:[3 2 [1 two 3.3 9] 4]] + // map[a:[3 2 [1 two 3.3 9] 4]] + // ERROR: missing key: x (path element idx: 0) +} + +func ExampleAppendMore() { + m := map[string]interface{}{ + "ints": []interface{}{ + 1, 2, + }, + } + err := dyno.AppendMore(m, []interface{}{3, 4, 5}, "ints") + fmt.Println(m, err) + + // Output: + // map[ints:[1 2 3 4 5]] +} + +func ExampleDelete() { + m := map[string]interface{}{ + "name": "Bob", + "ints": []interface{}{ + 1, 2, 3, + }, + } + + err := dyno.Delete(m, "name") + fmt.Println(m, err) + + err = dyno.Delete(m, 1, "ints") + fmt.Println(m, err) + + err = dyno.Delete(m, "ints") + fmt.Println(m, err) + + // Output: + // map[ints:[1 2 3]] + // map[ints:[1 3]] + // map[] +} + +func ExampleConvertMapI2MapS() { + m := map[interface{}]interface{}{ + 1: "one", + "numbers": []interface{}{2, 3, 4.4}, + } + + // m cannot be marshaled using encoding/json: + data, err := json.Marshal(m) + fmt.Printf("JSON: %q, error: %v\n", data, err) + + m2 := dyno.ConvertMapI2MapS(m) + + // But m2 can be: + data, err = json.Marshal(m2) + fmt.Printf("JSON: %s, error: %v\n", data, err) + + // Output: + // JSON: "", error: json: unsupported type: map[interface {}]interface {} + // JSON: {"1":"one","numbers":[2,3,4.4]}, error: +} diff --git a/vendor/github.com/imdario/mergo/.gitignore b/vendor/github.com/imdario/mergo/.gitignore new file mode 100644 index 0000000..529c341 --- /dev/null +++ b/vendor/github.com/imdario/mergo/.gitignore @@ -0,0 +1,33 @@ +#### joe made this: http://goel.io/joe + +#### go #### +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ + +#### vim #### +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-v][a-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags diff --git a/vendor/github.com/imdario/mergo/.travis.yml b/vendor/github.com/imdario/mergo/.travis.yml new file mode 100644 index 0000000..b13a50e --- /dev/null +++ b/vendor/github.com/imdario/mergo/.travis.yml @@ -0,0 +1,7 @@ +language: go +install: + - go get -t + - go get golang.org/x/tools/cmd/cover + - go get github.com/mattn/goveralls +script: + - $HOME/gopath/bin/goveralls -service=travis-ci -repotoken $COVERALLS_TOKEN diff --git a/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md b/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..469b449 --- /dev/null +++ b/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at i@dario.im. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/vendor/github.com/imdario/mergo/LICENSE b/vendor/github.com/imdario/mergo/LICENSE new file mode 100644 index 0000000..6866802 --- /dev/null +++ b/vendor/github.com/imdario/mergo/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2013 Dario Castañé. All rights reserved. +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/imdario/mergo/README.md b/vendor/github.com/imdario/mergo/README.md new file mode 100644 index 0000000..d1cefa8 --- /dev/null +++ b/vendor/github.com/imdario/mergo/README.md @@ -0,0 +1,222 @@ +# Mergo + +A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. + +Also a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the Province of Ancona in the Italian region of Marche. + +## Status + +It is ready for production use. [It is used in several projects by Docker, Google, The Linux Foundation, VMWare, Shopify, etc](https://github.com/imdario/mergo#mergo-in-the-wild). + +[![GoDoc][3]][4] +[![GoCard][5]][6] +[![Build Status][1]][2] +[![Coverage Status][7]][8] +[![Sourcegraph][9]][10] + +[1]: https://travis-ci.org/imdario/mergo.png +[2]: https://travis-ci.org/imdario/mergo +[3]: https://godoc.org/github.com/imdario/mergo?status.svg +[4]: https://godoc.org/github.com/imdario/mergo +[5]: https://goreportcard.com/badge/imdario/mergo +[6]: https://goreportcard.com/report/github.com/imdario/mergo +[7]: https://coveralls.io/repos/github/imdario/mergo/badge.svg?branch=master +[8]: https://coveralls.io/github/imdario/mergo?branch=master +[9]: https://sourcegraph.com/github.com/imdario/mergo/-/badge.svg +[10]: https://sourcegraph.com/github.com/imdario/mergo?badge + +### Latest release + +[Release v0.3.4](https://github.com/imdario/mergo/releases/tag/v0.3.4). + +### Important note + +Please keep in mind that in [0.3.2](//github.com/imdario/mergo/releases/tag/0.3.2) Mergo changed `Merge()`and `Map()` signatures to support [transformers](#transformers). An optional/variadic argument has been added, so it won't break existing code. + +If you were using Mergo **before** April 6th 2015, please check your project works as intended after updating your local copy with ```go get -u github.com/imdario/mergo```. I apologize for any issue caused by its previous behavior and any future bug that Mergo could cause (I hope it won't!) in existing projects after the change (release 0.2.0). + +### Donations + +If Mergo is useful to you, consider buying me a coffee, a beer or making a monthly donation so I can keep building great free software. :heart_eyes: + +Buy Me a Coffee at ko-fi.com +[![Beerpay](https://beerpay.io/imdario/mergo/badge.svg)](https://beerpay.io/imdario/mergo) +[![Beerpay](https://beerpay.io/imdario/mergo/make-wish.svg)](https://beerpay.io/imdario/mergo) +Donate using Liberapay + +### Mergo in the wild + +- [moby/moby](https://github.com/moby/moby) +- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) +- [vmware/dispatch](https://github.com/vmware/dispatch) +- [Shopify/themekit](https://github.com/Shopify/themekit) +- [imdario/zas](https://github.com/imdario/zas) +- [matcornic/hermes](https://github.com/matcornic/hermes) +- [OpenBazaar/openbazaar-go](https://github.com/OpenBazaar/openbazaar-go) +- [kataras/iris](https://github.com/kataras/iris) +- [michaelsauter/crane](https://github.com/michaelsauter/crane) +- [go-task/task](https://github.com/go-task/task) +- [sensu/uchiwa](https://github.com/sensu/uchiwa) +- [ory/hydra](https://github.com/ory/hydra) +- [sisatech/vcli](https://github.com/sisatech/vcli) +- [dairycart/dairycart](https://github.com/dairycart/dairycart) +- [projectcalico/felix](https://github.com/projectcalico/felix) +- [resin-os/balena](https://github.com/resin-os/balena) +- [go-kivik/kivik](https://github.com/go-kivik/kivik) +- [Telefonica/govice](https://github.com/Telefonica/govice) +- [supergiant/supergiant](supergiant/supergiant) +- [SergeyTsalkov/brooce](https://github.com/SergeyTsalkov/brooce) +- [soniah/dnsmadeeasy](https://github.com/soniah/dnsmadeeasy) +- [ohsu-comp-bio/funnel](https://github.com/ohsu-comp-bio/funnel) +- [EagerIO/Stout](https://github.com/EagerIO/Stout) +- [lynndylanhurley/defsynth-api](https://github.com/lynndylanhurley/defsynth-api) +- [russross/canvasassignments](https://github.com/russross/canvasassignments) +- [rdegges/cryptly-api](https://github.com/rdegges/cryptly-api) +- [casualjim/exeggutor](https://github.com/casualjim/exeggutor) +- [divshot/gitling](https://github.com/divshot/gitling) +- [RWJMurphy/gorl](https://github.com/RWJMurphy/gorl) +- [andrerocker/deploy42](https://github.com/andrerocker/deploy42) +- [elwinar/rambler](https://github.com/elwinar/rambler) +- [tmaiaroto/gopartman](https://github.com/tmaiaroto/gopartman) +- [jfbus/impressionist](https://github.com/jfbus/impressionist) +- [Jmeyering/zealot](https://github.com/Jmeyering/zealot) +- [godep-migrator/rigger-host](https://github.com/godep-migrator/rigger-host) +- [Dronevery/MultiwaySwitch-Go](https://github.com/Dronevery/MultiwaySwitch-Go) +- [thoas/picfit](https://github.com/thoas/picfit) +- [mantasmatelis/whooplist-server](https://github.com/mantasmatelis/whooplist-server) +- [jnuthong/item_search](https://github.com/jnuthong/item_search) +- [bukalapak/snowboard](https://github.com/bukalapak/snowboard) + +## Installation + + go get github.com/imdario/mergo + + // use in your .go code + import ( + "github.com/imdario/mergo" + ) + +## Usage + +You can only merge same-type structs with exported fields initialized as zero value of their type and same-types maps. Mergo won't merge unexported (private) fields but will do recursively any exported one. It won't merge empty structs value as [they are not considered zero values](https://golang.org/ref/spec#The_zero_value) either. Also maps will be merged recursively except for structs inside maps (because they are not addressable using Go reflection). + +```go +if err := mergo.Merge(&dst, src); err != nil { + // ... +} +``` + +Also, you can merge overwriting values using the transformer `WithOverride`. + +```go +if err := mergo.Merge(&dst, src, mergo.WithOverride); err != nil { + // ... +} +``` + +Additionally, you can map a `map[string]interface{}` to a struct (and otherwise, from struct to map), following the same restrictions as in `Merge()`. Keys are capitalized to find each corresponding exported field. + +```go +if err := mergo.Map(&dst, srcMap); err != nil { + // ... +} +``` + +Warning: if you map a struct to map, it won't do it recursively. Don't expect Mergo to map struct members of your struct as `map[string]interface{}`. They will be just assigned as values. + +More information and examples in [godoc documentation](http://godoc.org/github.com/imdario/mergo). + +### Nice example + +```go +package main + +import ( + "fmt" + "github.com/imdario/mergo" +) + +type Foo struct { + A string + B int64 +} + +func main() { + src := Foo{ + A: "one", + B: 2, + } + dest := Foo{ + A: "two", + } + mergo.Merge(&dest, src) + fmt.Println(dest) + // Will print + // {two 2} +} +``` + +Note: if test are failing due missing package, please execute: + + go get gopkg.in/yaml.v2 + +### Transformers + +Transformers allow to merge specific types differently than in the default behavior. In other words, now you can customize how some types are merged. For example, `time.Time` is a struct; it doesn't have zero value but IsZero can return true because it has fields with zero value. How can we merge a non-zero `time.Time`? + +```go +package main + +import ( + "fmt" + "github.com/imdario/mergo" + "reflect" + "time" +) + +type timeTransfomer struct { +} + +func (t timeTransfomer) Transformer(typ reflect.Type) func(dst, src reflect.Value) error { + if typ == reflect.TypeOf(time.Time{}) { + return func(dst, src reflect.Value) error { + if dst.CanSet() { + isZero := dst.MethodByName("IsZero") + result := isZero.Call([]reflect.Value{}) + if result[0].Bool() { + dst.Set(src) + } + } + return nil + } + } + return nil +} + +type Snapshot struct { + Time time.Time + // ... +} + +func main() { + src := Snapshot{time.Now()} + dest := Snapshot{} + mergo.Merge(&dest, src, mergo.WithTransformers(timeTransfomer{})) + fmt.Println(dest) + // Will print + // { 2018-01-12 01:15:00 +0000 UTC m=+0.000000001 } +} +``` + + +## Contact me + +If I can help you, you have an idea or you are using Mergo in your projects, don't hesitate to drop me a line (or a pull request): [@im_dario](https://twitter.com/im_dario) + +## About + +Written by [Dario Castañé](http://dario.im). + +## License + +[BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) license, as [Go language](http://golang.org/LICENSE). diff --git a/vendor/github.com/imdario/mergo/doc.go b/vendor/github.com/imdario/mergo/doc.go new file mode 100644 index 0000000..6e9aa7b --- /dev/null +++ b/vendor/github.com/imdario/mergo/doc.go @@ -0,0 +1,44 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package mergo merges same-type structs and maps by setting default values in zero-value fields. + +Mergo won't merge unexported (private) fields but will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection). + +Usage + +From my own work-in-progress project: + + type networkConfig struct { + Protocol string + Address string + ServerType string `json: "server_type"` + Port uint16 + } + + type FssnConfig struct { + Network networkConfig + } + + var fssnDefault = FssnConfig { + networkConfig { + "tcp", + "127.0.0.1", + "http", + 31560, + }, + } + + // Inside a function [...] + + if err := mergo.Merge(&config, fssnDefault); err != nil { + log.Fatal(err) + } + + // More code [...] + +*/ +package mergo diff --git a/vendor/github.com/imdario/mergo/issue17_test.go b/vendor/github.com/imdario/mergo/issue17_test.go new file mode 100644 index 0000000..f9de805 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue17_test.go @@ -0,0 +1,25 @@ +package mergo + +import ( + "encoding/json" + "testing" +) + +var ( + request = `{"timestamp":null, "name": "foo"}` + maprequest = map[string]interface{}{ + "timestamp": nil, + "name": "foo", + "newStuff": "foo", + } +) + +func TestIssue17MergeWithOverwrite(t *testing.T) { + var something map[string]interface{} + if err := json.Unmarshal([]byte(request), &something); err != nil { + t.Errorf("Error while Unmarshalling maprequest: %s", err) + } + if err := MergeWithOverwrite(&something, maprequest); err != nil { + t.Errorf("Error while merging: %s", err) + } +} diff --git a/vendor/github.com/imdario/mergo/issue23_test.go b/vendor/github.com/imdario/mergo/issue23_test.go new file mode 100644 index 0000000..283f8c6 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue23_test.go @@ -0,0 +1,27 @@ +package mergo + +import ( + "testing" + "time" +) + +type document struct { + Created *time.Time +} + +func TestIssue23MergeWithOverwrite(t *testing.T) { + now := time.Now() + dst := document{ + &now, + } + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := document{ + &expected, + } + if err := MergeWithOverwrite(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if !dst.Created.Equal(*src.Created) { //--> https://golang.org/pkg/time/#pkg-overview + t.Fatalf("Created not merged in properly: dst.Created(%v) != src.Created(%v)", dst.Created, src.Created) + } +} diff --git a/vendor/github.com/imdario/mergo/issue33_test.go b/vendor/github.com/imdario/mergo/issue33_test.go new file mode 100644 index 0000000..ae55ae2 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue33_test.go @@ -0,0 +1,33 @@ +package mergo + +import ( + "testing" +) + +type Foo struct { + Str string + Bslice []byte +} + +func TestIssue33Merge(t *testing.T) { + dest := Foo{Str: "a"} + toMerge := Foo{ + Str: "b", + Bslice: []byte{1, 2}, + } + if err := Merge(&dest, toMerge); err != nil { + t.Errorf("Error while merging: %s", err) + } + // Merge doesn't overwrite an attribute if in destination it doesn't have a zero value. + // In this case, Str isn't a zero value string. + if dest.Str != "a" { + t.Errorf("dest.Str should have not been override as it has a non-zero value: dest.Str(%v) != 'a'", dest.Str) + } + // If we want to override, we must use MergeWithOverwrite or Merge using WithOverride. + if err := Merge(&dest, toMerge, WithOverride); err != nil { + t.Errorf("Error while merging: %s", err) + } + if dest.Str != toMerge.Str { + t.Errorf("dest.Str should have been override: dest.Str(%v) != toMerge.Str(%v)", dest.Str, toMerge.Str) + } +} diff --git a/vendor/github.com/imdario/mergo/issue38_test.go b/vendor/github.com/imdario/mergo/issue38_test.go new file mode 100644 index 0000000..286b68c --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue38_test.go @@ -0,0 +1,59 @@ +package mergo + +import ( + "testing" + "time" +) + +type structWithoutTimePointer struct { + Created time.Time +} + +func TestIssue38Merge(t *testing.T) { + dst := structWithoutTimePointer{ + time.Now(), + } + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := Merge(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created == src.Created { + t.Fatalf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) + } +} + +func TestIssue38MergeEmptyStruct(t *testing.T) { + dst := structWithoutTimePointer{} + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := Merge(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created == src.Created { + t.Fatalf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) + } +} + +func TestIssue38MergeWithOverwrite(t *testing.T) { + dst := structWithoutTimePointer{ + time.Now(), + } + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := MergeWithOverwrite(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created != src.Created { + t.Fatalf("Created not merged in properly: dst.Created(%v) != src.Created(%v)", dst.Created, src.Created) + } +} diff --git a/vendor/github.com/imdario/mergo/issue50_test.go b/vendor/github.com/imdario/mergo/issue50_test.go new file mode 100644 index 0000000..89aa363 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue50_test.go @@ -0,0 +1,18 @@ +package mergo + +import ( + "testing" + "time" +) + +type testStruct struct { + time.Duration +} + +func TestIssue50Merge(t *testing.T) { + to := testStruct{} + from := testStruct{} + if err := Merge(&to, from); err != nil { + t.Fail() + } +} diff --git a/vendor/github.com/imdario/mergo/issue52_test.go b/vendor/github.com/imdario/mergo/issue52_test.go new file mode 100644 index 0000000..62cd9fa --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue52_test.go @@ -0,0 +1,99 @@ +package mergo + +import ( + "reflect" + "testing" + "time" +) + +type structWithTime struct { + Birth time.Time +} + +type timeTransfomer struct { + overwrite bool +} + +func (t timeTransfomer) Transformer(typ reflect.Type) func(dst, src reflect.Value) error { + if typ == reflect.TypeOf(time.Time{}) { + return func(dst, src reflect.Value) error { + if dst.CanSet() { + if t.overwrite { + isZero := src.MethodByName("IsZero") + result := isZero.Call([]reflect.Value{}) + if !result[0].Bool() { + dst.Set(src) + } + } else { + isZero := dst.MethodByName("IsZero") + result := isZero.Call([]reflect.Value{}) + if result[0].Bool() { + dst.Set(src) + } + } + } + return nil + } + } + return nil +} + +func TestOverwriteZeroSrcTime(t *testing.T) { + now := time.Now() + dst := structWithTime{now} + src := structWithTime{} + if err := MergeWithOverwrite(&dst, src); err != nil { + t.FailNow() + } + if !dst.Birth.IsZero() { + t.Fatalf("dst should have been overwritten: dst.Birth(%v) != now(%v)", dst.Birth, now) + } +} + +func TestOverwriteZeroSrcTimeWithTransformer(t *testing.T) { + now := time.Now() + dst := structWithTime{now} + src := structWithTime{} + if err := MergeWithOverwrite(&dst, src, WithTransformers(timeTransfomer{true})); err != nil { + t.FailNow() + } + if dst.Birth.IsZero() { + t.Fatalf("dst should not have been overwritten: dst.Birth(%v) != now(%v)", dst.Birth, now) + } +} + +func TestOverwriteZeroDstTime(t *testing.T) { + now := time.Now() + dst := structWithTime{} + src := structWithTime{now} + if err := MergeWithOverwrite(&dst, src); err != nil { + t.FailNow() + } + if dst.Birth.IsZero() { + t.Fatalf("dst should have been overwritten: dst.Birth(%v) != zero(%v)", dst.Birth, time.Time{}) + } +} + +func TestZeroDstTime(t *testing.T) { + now := time.Now() + dst := structWithTime{} + src := structWithTime{now} + if err := Merge(&dst, src); err != nil { + t.FailNow() + } + if !dst.Birth.IsZero() { + t.Fatalf("dst should not have been overwritten: dst.Birth(%v) != zero(%v)", dst.Birth, time.Time{}) + } +} + +func TestZeroDstTimeWithTransformer(t *testing.T) { + now := time.Now() + dst := structWithTime{} + src := structWithTime{now} + if err := Merge(&dst, src, WithTransformers(timeTransfomer{})); err != nil { + t.FailNow() + } + if dst.Birth.IsZero() { + t.Fatalf("dst should have been overwritten: dst.Birth(%v) != now(%v)", dst.Birth, now) + } +} diff --git a/vendor/github.com/imdario/mergo/issue61_test.go b/vendor/github.com/imdario/mergo/issue61_test.go new file mode 100644 index 0000000..8efa5e4 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue61_test.go @@ -0,0 +1,20 @@ +package mergo + +import ( + "reflect" + "testing" +) + +func TestIssue61MergeNilMap(t *testing.T) { + type T struct { + I map[string][]string + } + t1 := T{} + t2 := T{I: map[string][]string{"hi": {"there"}}} + if err := Merge(&t1, t2); err != nil { + t.Fail() + } + if !reflect.DeepEqual(t2, T{I: map[string][]string{"hi": {"there"}}}) { + t.FailNow() + } +} diff --git a/vendor/github.com/imdario/mergo/issue64_test.go b/vendor/github.com/imdario/mergo/issue64_test.go new file mode 100644 index 0000000..32382be --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue64_test.go @@ -0,0 +1,38 @@ +package mergo + +import ( + "testing" +) + +type Student struct { + Name string + Books []string +} + +var testData = []struct { + S1 Student + S2 Student + ExpectedSlice []string +}{ + {Student{"Jack", []string{"a", "B"}}, Student{"Tom", []string{"1"}}, []string{"a", "B"}}, + {Student{"Jack", []string{"a", "B"}}, Student{"Tom", []string{}}, []string{"a", "B"}}, + {Student{"Jack", []string{}}, Student{"Tom", []string{"1"}}, []string{"1"}}, + {Student{"Jack", []string{}}, Student{"Tom", []string{}}, []string{}}, +} + +func TestIssue64MergeSliceWithOverride(t *testing.T) { + for _, data := range testData { + err := Merge(&data.S2, data.S1, WithOverride) + if err != nil { + t.Errorf("Error while merging %s", err) + } + if len(data.S2.Books) != len(data.ExpectedSlice) { + t.Fatalf("Got %d elements in slice, but expected %d", len(data.S2.Books), len(data.ExpectedSlice)) + } + for i, val := range data.S2.Books { + if val != data.ExpectedSlice[i] { + t.Fatalf("Expected %s, but got %s while merging slice with override", data.ExpectedSlice[i], val) + } + } + } +} diff --git a/vendor/github.com/imdario/mergo/issue66_test.go b/vendor/github.com/imdario/mergo/issue66_test.go new file mode 100644 index 0000000..9e4bcce --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue66_test.go @@ -0,0 +1,48 @@ +package mergo + +import ( + "testing" +) + +type PrivateSliceTest66 struct { + PublicStrings []string + privateStrings []string +} + +func TestPrivateSlice(t *testing.T) { + p1 := PrivateSliceTest66{ + PublicStrings: []string{"one", "two", "three"}, + privateStrings: []string{"four", "five"}, + } + p2 := PrivateSliceTest66{ + PublicStrings: []string{"six", "seven"}, + } + if err := Merge(&p1, p2); err != nil { + t.Fatalf("Error during the merge: %v", err) + } + if len(p1.PublicStrings) != 3 { + t.Error("5 elements should be in 'PublicStrings' field") + } + if len(p1.privateStrings) != 2 { + t.Error("2 elements should be in 'privateStrings' field") + } +} + +func TestPrivateSliceWithAppendSlice(t *testing.T) { + p1 := PrivateSliceTest66{ + PublicStrings: []string{"one", "two", "three"}, + privateStrings: []string{"four", "five"}, + } + p2 := PrivateSliceTest66{ + PublicStrings: []string{"six", "seven"}, + } + if err := Merge(&p1, p2, WithAppendSlice); err != nil { + t.Fatalf("Error during the merge: %v", err) + } + if len(p1.PublicStrings) != 5 { + t.Error("5 elements should be in 'PublicStrings' field") + } + if len(p1.privateStrings) != 2 { + t.Error("2 elements should be in 'privateStrings' field") + } +} diff --git a/vendor/github.com/imdario/mergo/map.go b/vendor/github.com/imdario/mergo/map.go new file mode 100644 index 0000000..6ea38e6 --- /dev/null +++ b/vendor/github.com/imdario/mergo/map.go @@ -0,0 +1,174 @@ +// Copyright 2014 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "fmt" + "reflect" + "unicode" + "unicode/utf8" +) + +func changeInitialCase(s string, mapper func(rune) rune) string { + if s == "" { + return s + } + r, n := utf8.DecodeRuneInString(s) + return string(mapper(r)) + s[n:] +} + +func isExported(field reflect.StructField) bool { + r, _ := utf8.DecodeRuneInString(field.Name) + return r >= 'A' && r <= 'Z' +} + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) { + overwrite := config.Overwrite + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + zeroValue := reflect.Value{} + switch dst.Kind() { + case reflect.Map: + dstMap := dst.Interface().(map[string]interface{}) + for i, n := 0, src.NumField(); i < n; i++ { + srcType := src.Type() + field := srcType.Field(i) + if !isExported(field) { + continue + } + fieldName := field.Name + fieldName = changeInitialCase(fieldName, unicode.ToLower) + if v, ok := dstMap[fieldName]; !ok || (isEmptyValue(reflect.ValueOf(v)) || overwrite) { + dstMap[fieldName] = src.Field(i).Interface() + } + } + case reflect.Ptr: + if dst.IsNil() { + v := reflect.New(dst.Type().Elem()) + dst.Set(v) + } + dst = dst.Elem() + fallthrough + case reflect.Struct: + srcMap := src.Interface().(map[string]interface{}) + for key := range srcMap { + srcValue := srcMap[key] + fieldName := changeInitialCase(key, unicode.ToUpper) + dstElement := dst.FieldByName(fieldName) + if dstElement == zeroValue { + // We discard it because the field doesn't exist. + continue + } + srcElement := reflect.ValueOf(srcValue) + dstKind := dstElement.Kind() + srcKind := srcElement.Kind() + if srcKind == reflect.Ptr && dstKind != reflect.Ptr { + srcElement = srcElement.Elem() + srcKind = reflect.TypeOf(srcElement.Interface()).Kind() + } else if dstKind == reflect.Ptr { + // Can this work? I guess it can't. + if srcKind != reflect.Ptr && srcElement.CanAddr() { + srcPtr := srcElement.Addr() + srcElement = reflect.ValueOf(srcPtr) + srcKind = reflect.Ptr + } + } + + if !srcElement.IsValid() { + continue + } + if srcKind == dstKind { + if err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil { + return + } + } else if dstKind == reflect.Interface && dstElement.Kind() == reflect.Interface { + if err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil { + return + } + } else if srcKind == reflect.Map { + if err = deepMap(dstElement, srcElement, visited, depth+1, config); err != nil { + return + } + } else { + return fmt.Errorf("type mismatch on %s field: found %v, expected %v", fieldName, srcKind, dstKind) + } + } + } + return +} + +// Map sets fields' values in dst from src. +// src can be a map with string keys or a struct. dst must be the opposite: +// if src is a map, dst must be a valid pointer to struct. If src is a struct, +// dst must be map[string]interface{}. +// It won't merge unexported (private) fields and will do recursively +// any exported field. +// If dst is a map, keys will be src fields' names in lower camel case. +// Missing key in src that doesn't match a field in dst will be skipped. This +// doesn't apply if dst is a map. +// This is separated method from Merge because it is cleaner and it keeps sane +// semantics: merging equal types, mapping different (restricted) types. +func Map(dst, src interface{}, opts ...func(*Config)) error { + return _map(dst, src, opts...) +} + +// MapWithOverwrite will do the same as Map except that non-empty dst attributes will be overridden by +// non-empty src attribute values. +// Deprecated: Use Map(…) with WithOverride +func MapWithOverwrite(dst, src interface{}, opts ...func(*Config)) error { + return _map(dst, src, append(opts, WithOverride)...) +} + +func _map(dst, src interface{}, opts ...func(*Config)) error { + var ( + vDst, vSrc reflect.Value + err error + ) + config := &Config{} + + for _, opt := range opts { + opt(config) + } + + if vDst, vSrc, err = resolveValues(dst, src); err != nil { + return err + } + // To be friction-less, we redirect equal-type arguments + // to deepMerge. Only because arguments can be anything. + if vSrc.Kind() == vDst.Kind() { + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config) + } + switch vSrc.Kind() { + case reflect.Struct: + if vDst.Kind() != reflect.Map { + return ErrExpectedMapAsDestination + } + case reflect.Map: + if vDst.Kind() != reflect.Struct { + return ErrExpectedStructAsDestination + } + default: + return ErrNotSupported + } + return deepMap(vDst, vSrc, make(map[uintptr]*visit), 0, config) +} diff --git a/vendor/github.com/imdario/mergo/merge.go b/vendor/github.com/imdario/mergo/merge.go new file mode 100644 index 0000000..706b220 --- /dev/null +++ b/vendor/github.com/imdario/mergo/merge.go @@ -0,0 +1,245 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "reflect" +) + +func hasExportedField(dst reflect.Value) (exported bool) { + for i, n := 0, dst.NumField(); i < n; i++ { + field := dst.Type().Field(i) + if field.Anonymous && dst.Field(i).Kind() == reflect.Struct { + exported = exported || hasExportedField(dst.Field(i)) + } else { + exported = exported || len(field.PkgPath) == 0 + } + } + return +} + +type Config struct { + Overwrite bool + AppendSlice bool + Transformers Transformers +} + +type Transformers interface { + Transformer(reflect.Type) func(dst, src reflect.Value) error +} + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) { + overwrite := config.Overwrite + + if !src.IsValid() { + return + } + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + + if config.Transformers != nil && !isEmptyValue(dst) { + if fn := config.Transformers.Transformer(dst.Type()); fn != nil { + err = fn(dst, src) + return + } + } + + switch dst.Kind() { + case reflect.Struct: + if hasExportedField(dst) { + for i, n := 0, dst.NumField(); i < n; i++ { + if err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1, config); err != nil { + return + } + } + } else { + if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) { + dst.Set(src) + } + } + case reflect.Map: + if dst.IsNil() && !src.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + for _, key := range src.MapKeys() { + srcElement := src.MapIndex(key) + if !srcElement.IsValid() { + continue + } + dstElement := dst.MapIndex(key) + switch srcElement.Kind() { + case reflect.Chan, reflect.Func, reflect.Map, reflect.Interface, reflect.Slice: + if srcElement.IsNil() { + continue + } + fallthrough + default: + if !srcElement.CanInterface() { + continue + } + switch reflect.TypeOf(srcElement.Interface()).Kind() { + case reflect.Struct: + fallthrough + case reflect.Ptr: + fallthrough + case reflect.Map: + srcMapElm := srcElement + dstMapElm := dstElement + if srcMapElm.CanInterface() { + srcMapElm = reflect.ValueOf(srcMapElm.Interface()) + if dstMapElm.IsValid() { + dstMapElm = reflect.ValueOf(dstMapElm.Interface()) + } + } + if err = deepMerge(dstMapElm, srcMapElm, visited, depth+1, config); err != nil { + return + } + case reflect.Slice: + srcSlice := reflect.ValueOf(srcElement.Interface()) + + var dstSlice reflect.Value + if !dstElement.IsValid() || dstElement.IsNil() { + dstSlice = reflect.MakeSlice(srcSlice.Type(), 0, srcSlice.Len()) + } else { + dstSlice = reflect.ValueOf(dstElement.Interface()) + } + + if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice { + dstSlice = srcSlice + } else if config.AppendSlice { + dstSlice = reflect.AppendSlice(dstSlice, srcSlice) + } + dst.SetMapIndex(key, dstSlice) + } + } + if dstElement.IsValid() && reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map { + continue + } + + if srcElement.IsValid() && (overwrite || (!dstElement.IsValid() || isEmptyValue(dstElement))) { + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + dst.SetMapIndex(key, srcElement) + } + } + case reflect.Slice: + if !dst.CanSet() { + break + } + if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice { + dst.Set(src) + } else if config.AppendSlice { + dst.Set(reflect.AppendSlice(dst, src)) + } + case reflect.Ptr: + fallthrough + case reflect.Interface: + if src.IsNil() { + break + } + if src.Kind() != reflect.Interface { + if dst.IsNil() || overwrite { + if dst.CanSet() && (overwrite || isEmptyValue(dst)) { + dst.Set(src) + } + } else if src.Kind() == reflect.Ptr { + if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil { + return + } + } else if dst.Elem().Type() == src.Type() { + if err = deepMerge(dst.Elem(), src, visited, depth+1, config); err != nil { + return + } + } else { + return ErrDifferentArgumentsTypes + } + break + } + if dst.IsNil() || overwrite { + if dst.CanSet() && (overwrite || isEmptyValue(dst)) { + dst.Set(src) + } + } else if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil { + return + } + default: + if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) { + dst.Set(src) + } + } + return +} + +// Merge will fill any empty for value type attributes on the dst struct using corresponding +// src attributes if they themselves are not empty. dst and src must be valid same-type structs +// and dst must be a pointer to struct. +// It won't merge unexported (private) fields and will do recursively any exported field. +func Merge(dst, src interface{}, opts ...func(*Config)) error { + return merge(dst, src, opts...) +} + +// MergeWithOverwrite will do the same as Merge except that non-empty dst attributes will be overriden by +// non-empty src attribute values. +// Deprecated: use Merge(…) with WithOverride +func MergeWithOverwrite(dst, src interface{}, opts ...func(*Config)) error { + return merge(dst, src, append(opts, WithOverride)...) +} + +// WithTransformers adds transformers to merge, allowing to customize the merging of some types. +func WithTransformers(transformers Transformers) func(*Config) { + return func(config *Config) { + config.Transformers = transformers + } +} + +// WithOverride will make merge override non-empty dst attributes with non-empty src attributes values. +func WithOverride(config *Config) { + config.Overwrite = true +} + +// WithAppendSlice will make merge append slices instead of overwriting it +func WithAppendSlice(config *Config) { + config.AppendSlice = true +} + +func merge(dst, src interface{}, opts ...func(*Config)) error { + var ( + vDst, vSrc reflect.Value + err error + ) + + config := &Config{} + + for _, opt := range opts { + opt(config) + } + + if vDst, vSrc, err = resolveValues(dst, src); err != nil { + return err + } + if vDst.Type() != vSrc.Type() { + return ErrDifferentArgumentsTypes + } + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config) +} diff --git a/vendor/github.com/imdario/mergo/merge_appendslice_test.go b/vendor/github.com/imdario/mergo/merge_appendslice_test.go new file mode 100644 index 0000000..a780f34 --- /dev/null +++ b/vendor/github.com/imdario/mergo/merge_appendslice_test.go @@ -0,0 +1,33 @@ +package mergo + +import ( + "testing" +) + +var testDataS = []struct { + S1 Student + S2 Student + ExpectedSlice []string +}{ + {Student{"Jack", []string{"a", "B"}}, Student{"Tom", []string{"1"}}, []string{"1", "a", "B"}}, + {Student{"Jack", []string{"a", "B"}}, Student{"Tom", []string{}}, []string{"a", "B"}}, + {Student{"Jack", []string{}}, Student{"Tom", []string{"1"}}, []string{"1"}}, + {Student{"Jack", []string{}}, Student{"Tom", []string{}}, []string{}}, +} + +func TestMergeSliceWithOverrideWithAppendSlice(t *testing.T) { + for _, data := range testDataS { + err := Merge(&data.S2, data.S1, WithOverride, WithAppendSlice) + if err != nil { + t.Errorf("Error while merging %s", err) + } + if len(data.S2.Books) != len(data.ExpectedSlice) { + t.Fatalf("Got %d elements in slice, but expected %d", len(data.S2.Books), len(data.ExpectedSlice)) + } + for i, val := range data.S2.Books { + if val != data.ExpectedSlice[i] { + t.Fatalf("Expected %s, but got %s while merging slice with override", data.ExpectedSlice[i], val) + } + } + } +} diff --git a/vendor/github.com/imdario/mergo/merge_test.go b/vendor/github.com/imdario/mergo/merge_test.go new file mode 100644 index 0000000..5bf808a --- /dev/null +++ b/vendor/github.com/imdario/mergo/merge_test.go @@ -0,0 +1,50 @@ +package mergo + +import ( + "reflect" + "testing" +) + +type transformer struct { + m map[reflect.Type]func(dst, src reflect.Value) error +} + +func (s *transformer) Transformer(t reflect.Type) func(dst, src reflect.Value) error { + if fn, ok := s.m[t]; ok { + return fn + } + return nil +} + +type foo struct { + s string + Bar *bar +} + +type bar struct { + i int + s map[string]string +} + +func TestMergeWithTransformerNilStruct(t *testing.T) { + a := foo{s: "foo"} + b := foo{Bar: &bar{i: 2, s: map[string]string{"foo": "bar"}}} + if err := Merge(&a, &b, WithOverride, WithTransformers(&transformer{ + m: map[reflect.Type]func(dst, src reflect.Value) error{ + reflect.TypeOf(&bar{}): func(dst, src reflect.Value) error { + // Do sthg with Elem + t.Log(dst.Elem().FieldByName("i")) + t.Log(src.Elem()) + return nil + }, + }, + })); err != nil { + t.Fatal(err) + } + if a.s != "foo" { + t.Fatalf("b not merged in properly: a.s.Value(%s) != expected(%s)", a.s, "foo") + } + if a.Bar == nil { + t.Fatalf("b not merged in properly: a.Bar shouldn't be nil") + } +} diff --git a/vendor/github.com/imdario/mergo/mergo.go b/vendor/github.com/imdario/mergo/mergo.go new file mode 100644 index 0000000..a82fea2 --- /dev/null +++ b/vendor/github.com/imdario/mergo/mergo.go @@ -0,0 +1,97 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "errors" + "reflect" +) + +// Errors reported by Mergo when it finds invalid arguments. +var ( + ErrNilArguments = errors.New("src and dst must not be nil") + ErrDifferentArgumentsTypes = errors.New("src and dst must be of same type") + ErrNotSupported = errors.New("only structs and maps are supported") + ErrExpectedMapAsDestination = errors.New("dst was expected to be a map") + ErrExpectedStructAsDestination = errors.New("dst was expected to be a struct") +) + +// During deepMerge, must keep track of checks that are +// in progress. The comparison algorithm assumes that all +// checks in progress are true when it reencounters them. +// Visited are stored in a map indexed by 17 * a1 + a2; +type visit struct { + ptr uintptr + typ reflect.Type + next *visit +} + +// From src/pkg/encoding/json/encode.go. +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + if v.IsNil() { + return true + } + return isEmptyValue(v.Elem()) + case reflect.Func: + return v.IsNil() + case reflect.Invalid: + return true + } + return false +} + +func resolveValues(dst, src interface{}) (vDst, vSrc reflect.Value, err error) { + if dst == nil || src == nil { + err = ErrNilArguments + return + } + vDst = reflect.ValueOf(dst).Elem() + if vDst.Kind() != reflect.Struct && vDst.Kind() != reflect.Map { + err = ErrNotSupported + return + } + vSrc = reflect.ValueOf(src) + // We check if vSrc is a pointer to dereference it. + if vSrc.Kind() == reflect.Ptr { + vSrc = vSrc.Elem() + } + return +} + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deeper(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + return // TODO refactor +} diff --git a/vendor/github.com/imdario/mergo/mergo_test.go b/vendor/github.com/imdario/mergo/mergo_test.go new file mode 100644 index 0000000..d777538 --- /dev/null +++ b/vendor/github.com/imdario/mergo/mergo_test.go @@ -0,0 +1,733 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mergo + +import ( + "io/ioutil" + "reflect" + "testing" + "time" + + "gopkg.in/yaml.v2" +) + +type simpleTest struct { + Value int +} + +type complexTest struct { + St simpleTest + sz int + ID string +} + +type mapTest struct { + M map[int]int +} + +type ifcTest struct { + I interface{} +} + +type moreComplextText struct { + Ct complexTest + St simpleTest + Nt simpleTest +} + +type pointerTest struct { + C *simpleTest +} + +type sliceTest struct { + S []int +} + +func TestKb(t *testing.T) { + type testStruct struct { + Name string + KeyValue map[string]interface{} + } + + akv := make(map[string]interface{}) + akv["Key1"] = "not value 1" + akv["Key2"] = "value2" + a := testStruct{} + a.Name = "A" + a.KeyValue = akv + + bkv := make(map[string]interface{}) + bkv["Key1"] = "value1" + bkv["Key3"] = "value3" + b := testStruct{} + b.Name = "B" + b.KeyValue = bkv + + ekv := make(map[string]interface{}) + ekv["Key1"] = "value1" + ekv["Key2"] = "value2" + ekv["Key3"] = "value3" + expected := testStruct{} + expected.Name = "B" + expected.KeyValue = ekv + + Merge(&b, a) + + if !reflect.DeepEqual(b, expected) { + t.Errorf("Actual: %#v did not match \nExpected: %#v", b, expected) + } +} + +func TestNil(t *testing.T) { + if err := Merge(nil, nil); err != ErrNilArguments { + t.Fail() + } +} + +func TestDifferentTypes(t *testing.T) { + a := simpleTest{42} + b := 42 + if err := Merge(&a, b); err != ErrDifferentArgumentsTypes { + t.Fail() + } +} + +func TestSimpleStruct(t *testing.T) { + a := simpleTest{} + b := simpleTest{42} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.Value != 42 { + t.Fatalf("b not merged in properly: a.Value(%d) != b.Value(%d)", a.Value, b.Value) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestComplexStruct(t *testing.T) { + a := complexTest{} + a.ID = "athing" + b := complexTest{simpleTest{42}, 1, "bthing"} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.St.Value != 42 { + t.Fatalf("b not merged in properly: a.St.Value(%d) != b.St.Value(%d)", a.St.Value, b.St.Value) + } + if a.sz == 1 { + t.Fatalf("a's private field sz not preserved from merge: a.sz(%d) == b.sz(%d)", a.sz, b.sz) + } + if a.ID == b.ID { + t.Fatalf("a's field ID merged unexpectedly: a.ID(%s) == b.ID(%s)", a.ID, b.ID) + } +} + +func TestComplexStructWithOverwrite(t *testing.T) { + a := complexTest{simpleTest{1}, 1, "do-not-overwrite-with-empty-value"} + b := complexTest{simpleTest{42}, 2, ""} + + expect := complexTest{simpleTest{42}, 1, "do-not-overwrite-with-empty-value"} + if err := MergeWithOverwrite(&a, b); err != nil { + t.FailNow() + } + + if !reflect.DeepEqual(a, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", a, expect) + } +} + +func TestPointerStruct(t *testing.T) { + s1 := simpleTest{} + s2 := simpleTest{19} + a := pointerTest{&s1} + b := pointerTest{&s2} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.C.Value != b.C.Value { + t.Fatalf("b not merged in properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + } +} + +type embeddingStruct struct { + embeddedStruct +} + +type embeddedStruct struct { + A string +} + +func TestEmbeddedStruct(t *testing.T) { + tests := []struct { + src embeddingStruct + dst embeddingStruct + expected embeddingStruct + }{ + { + src: embeddingStruct{ + embeddedStruct{"foo"}, + }, + dst: embeddingStruct{ + embeddedStruct{""}, + }, + expected: embeddingStruct{ + embeddedStruct{"foo"}, + }, + }, + { + src: embeddingStruct{ + embeddedStruct{""}, + }, + dst: embeddingStruct{ + embeddedStruct{"bar"}, + }, + expected: embeddingStruct{ + embeddedStruct{"bar"}, + }, + }, + { + src: embeddingStruct{ + embeddedStruct{"foo"}, + }, + dst: embeddingStruct{ + embeddedStruct{"bar"}, + }, + expected: embeddingStruct{ + embeddedStruct{"bar"}, + }, + }, + } + + for _, test := range tests { + err := Merge(&test.dst, test.src) + if err != nil { + t.Errorf("unexpected error: %v", err) + continue + } + if !reflect.DeepEqual(test.dst, test.expected) { + t.Errorf("unexpected output\nexpected:\n%+v\nsaw:\n%+v\n", test.expected, test.dst) + } + } +} + +func TestPointerStructNil(t *testing.T) { + a := pointerTest{nil} + b := pointerTest{&simpleTest{19}} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.C.Value != b.C.Value { + t.Fatalf("b not merged in a properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + } +} + +func testSlice(t *testing.T, a []int, b []int, e []int, opts ...func(*Config)) { + t.Helper() + bc := b + + sa := sliceTest{a} + sb := sliceTest{b} + if err := Merge(&sa, sb, opts...); err != nil { + t.FailNow() + } + if !reflect.DeepEqual(sb.S, bc) { + t.Fatalf("Source slice was modified %d != %d", sb.S, bc) + } + if !reflect.DeepEqual(sa.S, e) { + t.Fatalf("b not merged in a proper way %d != %d", sa.S, e) + } + + ma := map[string][]int{"S": a} + mb := map[string][]int{"S": b} + if err := Merge(&ma, mb, opts...); err != nil { + t.FailNow() + } + if !reflect.DeepEqual(mb["S"], bc) { + t.Fatalf("map value: Source slice was modified %d != %d", mb["S"], bc) + } + if !reflect.DeepEqual(ma["S"], e) { + t.Fatalf("map value: b not merged in a proper way %d != %d", ma["S"], e) + } + + if a == nil { + // test case with missing dst key + ma := map[string][]int{} + mb := map[string][]int{"S": b} + if err := Merge(&ma, mb); err != nil { + t.FailNow() + } + if !reflect.DeepEqual(mb["S"], bc) { + t.Fatalf("missing dst key: Source slice was modified %d != %d", mb["S"], bc) + } + if !reflect.DeepEqual(ma["S"], e) { + t.Fatalf("missing dst key: b not merged in a proper way %d != %d", ma["S"], e) + } + } + + if b == nil { + // test case with missing src key + ma := map[string][]int{"S": a} + mb := map[string][]int{} + if err := Merge(&ma, mb); err != nil { + t.FailNow() + } + if !reflect.DeepEqual(mb["S"], bc) { + t.Fatalf("missing src key: Source slice was modified %d != %d", mb["S"], bc) + } + if !reflect.DeepEqual(ma["S"], e) { + t.Fatalf("missing src key: b not merged in a proper way %d != %d", ma["S"], e) + } + } +} + +func TestSlice(t *testing.T) { + testSlice(t, nil, []int{1, 2, 3}, []int{1, 2, 3}) + testSlice(t, []int{}, []int{1, 2, 3}, []int{1, 2, 3}) + testSlice(t, []int{1}, []int{2, 3}, []int{1}) + testSlice(t, []int{1}, []int{}, []int{1}) + testSlice(t, []int{1}, nil, []int{1}) + testSlice(t, nil, []int{1, 2, 3}, []int{1, 2, 3}, WithAppendSlice) + testSlice(t, []int{}, []int{1, 2, 3}, []int{1, 2, 3}, WithAppendSlice) + testSlice(t, []int{1}, []int{2, 3}, []int{1, 2, 3}, WithAppendSlice) + testSlice(t, []int{1}, []int{}, []int{1}, WithAppendSlice) + testSlice(t, []int{1}, nil, []int{1}, WithAppendSlice) +} + +func TestEmptyMaps(t *testing.T) { + a := mapTest{} + b := mapTest{ + map[int]int{}, + } + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestEmptyToEmptyMaps(t *testing.T) { + a := mapTest{} + b := mapTest{} + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestEmptyToNotEmptyMaps(t *testing.T) { + a := mapTest{map[int]int{ + 1: 2, + 3: 4, + }} + aa := mapTest{map[int]int{ + 1: 2, + 3: 4, + }} + b := mapTest{ + map[int]int{}, + } + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, aa) { + t.FailNow() + } +} + +func TestMapsWithOverwrite(t *testing.T) { + m := map[string]simpleTest{ + "a": {}, // overwritten by 16 + "b": {42}, // not overwritten by empty value + "c": {13}, // overwritten by 12 + "d": {61}, + } + n := map[string]simpleTest{ + "a": {16}, + "b": {}, + "c": {12}, + "e": {14}, + } + expect := map[string]simpleTest{ + "a": {16}, + "b": {}, + "c": {12}, + "d": {61}, + "e": {14}, + } + + if err := MergeWithOverwrite(&m, n); err != nil { + t.Fatalf(err.Error()) + } + + if !reflect.DeepEqual(m, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", m, expect) + } +} + +func TestMaps(t *testing.T) { + m := map[string]simpleTest{ + "a": {}, + "b": {42}, + "c": {13}, + "d": {61}, + } + n := map[string]simpleTest{ + "a": {16}, + "b": {}, + "c": {12}, + "e": {14}, + } + expect := map[string]simpleTest{ + "a": {0}, + "b": {42}, + "c": {13}, + "d": {61}, + "e": {14}, + } + + if err := Merge(&m, n); err != nil { + t.Fatalf(err.Error()) + } + + if !reflect.DeepEqual(m, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", m, expect) + } + if m["a"].Value != 0 { + t.Fatalf(`n merged in m because I solved non-addressable map values TODO: m["a"].Value(%d) != n["a"].Value(%d)`, m["a"].Value, n["a"].Value) + } + if m["b"].Value != 42 { + t.Fatalf(`n wrongly merged in m: m["b"].Value(%d) != n["b"].Value(%d)`, m["b"].Value, n["b"].Value) + } + if m["c"].Value != 13 { + t.Fatalf(`n overwritten in m: m["c"].Value(%d) != n["c"].Value(%d)`, m["c"].Value, n["c"].Value) + } +} + +func TestMapsWithNilPointer(t *testing.T) { + m := map[string]*simpleTest{ + "a": nil, + "b": nil, + } + n := map[string]*simpleTest{ + "b": nil, + "c": nil, + } + expect := map[string]*simpleTest{ + "a": nil, + "b": nil, + "c": nil, + } + + if err := Merge(&m, n, WithOverride); err != nil { + t.Fatalf(err.Error()) + } + + if !reflect.DeepEqual(m, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", m, expect) + } +} + +func TestYAMLMaps(t *testing.T) { + thing := loadYAML("testdata/thing.yml") + license := loadYAML("testdata/license.yml") + ft := thing["fields"].(map[interface{}]interface{}) + fl := license["fields"].(map[interface{}]interface{}) + // license has one extra field (site) and another already existing in thing (author) that Mergo won't override. + expectedLength := len(ft) + len(fl) - 1 + if err := Merge(&license, thing); err != nil { + t.Fatal(err.Error()) + } + currentLength := len(license["fields"].(map[interface{}]interface{})) + if currentLength != expectedLength { + t.Fatalf(`thing not merged in license properly, license must have %d elements instead of %d`, expectedLength, currentLength) + } + fields := license["fields"].(map[interface{}]interface{}) + if _, ok := fields["id"]; !ok { + t.Fatalf(`thing not merged in license properly, license must have a new id field from thing`) + } +} + +func TestTwoPointerValues(t *testing.T) { + a := &simpleTest{} + b := &simpleTest{42} + if err := Merge(a, b); err != nil { + t.Fatalf(`Boom. You crossed the streams: %s`, err) + } +} + +func TestMap(t *testing.T) { + a := complexTest{} + a.ID = "athing" + c := moreComplextText{a, simpleTest{}, simpleTest{}} + b := map[string]interface{}{ + "ct": map[string]interface{}{ + "st": map[string]interface{}{ + "value": 42, + }, + "sz": 1, + "id": "bthing", + }, + "st": &simpleTest{144}, // Mapping a reference + "zt": simpleTest{299}, // Mapping a missing field (zt doesn't exist) + "nt": simpleTest{3}, + } + if err := Map(&c, b); err != nil { + t.FailNow() + } + m := b["ct"].(map[string]interface{}) + n := m["st"].(map[string]interface{}) + o := b["st"].(*simpleTest) + p := b["nt"].(simpleTest) + if c.Ct.St.Value != 42 { + t.Fatalf("b not merged in properly: c.Ct.St.Value(%d) != b.Ct.St.Value(%d)", c.Ct.St.Value, n["value"]) + } + if c.St.Value != 144 { + t.Fatalf("b not merged in properly: c.St.Value(%d) != b.St.Value(%d)", c.St.Value, o.Value) + } + if c.Nt.Value != 3 { + t.Fatalf("b not merged in properly: c.Nt.Value(%d) != b.Nt.Value(%d)", c.St.Value, p.Value) + } + if c.Ct.sz == 1 { + t.Fatalf("a's private field sz not preserved from merge: c.Ct.sz(%d) == b.Ct.sz(%d)", c.Ct.sz, m["sz"]) + } + if c.Ct.ID == m["id"] { + t.Fatalf("a's field ID merged unexpectedly: c.Ct.ID(%s) == b.Ct.ID(%s)", c.Ct.ID, m["id"]) + } +} + +func TestSimpleMap(t *testing.T) { + a := simpleTest{} + b := map[string]interface{}{ + "value": 42, + } + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.Value != 42 { + t.Fatalf("b not merged in properly: a.Value(%d) != b.Value(%v)", a.Value, b["value"]) + } +} + +func TestIfcMap(t *testing.T) { + a := ifcTest{} + b := ifcTest{42} + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.I != 42 { + t.Fatalf("b not merged in properly: a.I(%d) != b.I(%d)", a.I, b.I) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestIfcMapNoOverwrite(t *testing.T) { + a := ifcTest{13} + b := ifcTest{42} + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.I != 13 { + t.Fatalf("a not left alone: a.I(%d) == b.I(%d)", a.I, b.I) + } +} + +func TestIfcMapWithOverwrite(t *testing.T) { + a := ifcTest{13} + b := ifcTest{42} + if err := MapWithOverwrite(&a, b); err != nil { + t.FailNow() + } + if a.I != 42 { + t.Fatalf("b not merged in properly: a.I(%d) != b.I(%d)", a.I, b.I) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +type pointerMapTest struct { + A int + hidden int + B *simpleTest +} + +func TestBackAndForth(t *testing.T) { + pt := pointerMapTest{42, 1, &simpleTest{66}} + m := make(map[string]interface{}) + if err := Map(&m, pt); err != nil { + t.FailNow() + } + var ( + v interface{} + ok bool + ) + if v, ok = m["a"]; v.(int) != pt.A || !ok { + t.Fatalf("pt not merged in properly: m[`a`](%d) != pt.A(%d)", v, pt.A) + } + if v, ok = m["b"]; !ok { + t.Fatalf("pt not merged in properly: B is missing in m") + } + var st *simpleTest + if st = v.(*simpleTest); st.Value != 66 { + t.Fatalf("something went wrong while mapping pt on m, B wasn't copied") + } + bpt := pointerMapTest{} + if err := Map(&bpt, m); err != nil { + t.Fatal(err) + } + if bpt.A != pt.A { + t.Fatalf("pt not merged in properly: bpt.A(%d) != pt.A(%d)", bpt.A, pt.A) + } + if bpt.hidden == pt.hidden { + t.Fatalf("pt unexpectedly merged: bpt.hidden(%d) == pt.hidden(%d)", bpt.hidden, pt.hidden) + } + if bpt.B.Value != pt.B.Value { + t.Fatalf("pt not merged in properly: bpt.B.Value(%d) != pt.B.Value(%d)", bpt.B.Value, pt.B.Value) + } +} + +func TestEmbeddedPointerUnpacking(t *testing.T) { + tests := []struct{ input pointerMapTest }{ + {pointerMapTest{42, 1, nil}}, + {pointerMapTest{42, 1, &simpleTest{66}}}, + } + newValue := 77 + m := map[string]interface{}{ + "b": map[string]interface{}{ + "value": newValue, + }, + } + for _, test := range tests { + pt := test.input + if err := MapWithOverwrite(&pt, m); err != nil { + t.FailNow() + } + if pt.B.Value != newValue { + t.Fatalf("pt not mapped properly: pt.A.Value(%d) != m[`b`][`value`](%d)", pt.B.Value, newValue) + } + + } +} + +type structWithTimePointer struct { + Birth *time.Time +} + +func TestTime(t *testing.T) { + now := time.Now() + dataStruct := structWithTimePointer{ + Birth: &now, + } + dataMap := map[string]interface{}{ + "Birth": &now, + } + b := structWithTimePointer{} + if err := Merge(&b, dataStruct); err != nil { + t.FailNow() + } + if b.Birth.IsZero() { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataStruct['Birth'](%v)", b.Birth, dataStruct.Birth) + } + if b.Birth != dataStruct.Birth { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataStruct['Birth'](%v)", b.Birth, dataStruct.Birth) + } + b = structWithTimePointer{} + if err := Map(&b, dataMap); err != nil { + t.FailNow() + } + if b.Birth.IsZero() { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataMap['Birth'](%v)", b.Birth, dataMap["Birth"]) + } +} + +type simpleNested struct { + A int +} + +type structWithNestedPtrValueMap struct { + NestedPtrValue map[string]*simpleNested +} + +func TestNestedPtrValueInMap(t *testing.T) { + src := &structWithNestedPtrValueMap{ + NestedPtrValue: map[string]*simpleNested{ + "x": { + A: 1, + }, + }, + } + dst := &structWithNestedPtrValueMap{ + NestedPtrValue: map[string]*simpleNested{ + "x": {}, + }, + } + if err := Map(dst, src); err != nil { + t.FailNow() + } + if dst.NestedPtrValue["x"].A == 0 { + t.Fatalf("Nested Ptr value not merged in properly: dst.NestedPtrValue[\"x\"].A(%v) != src.NestedPtrValue[\"x\"].A(%v)", dst.NestedPtrValue["x"].A, src.NestedPtrValue["x"].A) + } +} + +func loadYAML(path string) (m map[string]interface{}) { + m = make(map[string]interface{}) + raw, _ := ioutil.ReadFile(path) + _ = yaml.Unmarshal(raw, &m) + return +} + +type structWithMap struct { + m map[string]structWithUnexportedProperty +} + +type structWithUnexportedProperty struct { + s string +} + +func TestUnexportedProperty(t *testing.T) { + a := structWithMap{map[string]structWithUnexportedProperty{ + "key": {"hello"}, + }} + b := structWithMap{map[string]structWithUnexportedProperty{ + "key": {"hi"}, + }} + defer func() { + if r := recover(); r != nil { + t.Errorf("Should not have panicked") + } + }() + Merge(&a, b) +} + +type structWithBoolPointer struct { + C *bool +} + +func TestBooleanPointer(t *testing.T) { + bt, bf := true, false + src := structWithBoolPointer{ + &bt, + } + dst := structWithBoolPointer{ + &bf, + } + if err := Merge(&dst, src); err != nil { + t.FailNow() + } + if dst.C == src.C { + t.Fatalf("dst.C should be a different pointer than src.C") + } + if *dst.C != *src.C { + t.Fatalf("dst.C should be true") + } +} diff --git a/vendor/github.com/imdario/mergo/pr80_test.go b/vendor/github.com/imdario/mergo/pr80_test.go new file mode 100644 index 0000000..0b3220f --- /dev/null +++ b/vendor/github.com/imdario/mergo/pr80_test.go @@ -0,0 +1,18 @@ +package mergo + +import ( + "testing" +) + +type mapInterface map[string]interface{} + +func TestMergeMapsEmptyString(t *testing.T) { + a := mapInterface{"s": ""} + b := mapInterface{"s": "foo"} + if err := Merge(&a, b); err != nil { + t.Fatal(err) + } + if a["s"] != "foo" { + t.Fatalf("b not merged in properly: a.s.Value(%s) != expected(%s)", a["s"], "foo") + } +} diff --git a/vendor/github.com/imdario/mergo/pr81_test.go b/vendor/github.com/imdario/mergo/pr81_test.go new file mode 100644 index 0000000..e90e923 --- /dev/null +++ b/vendor/github.com/imdario/mergo/pr81_test.go @@ -0,0 +1,42 @@ +package mergo + +import ( + "testing" +) + +func TestMapInterfaceWithMultipleLayer(t *testing.T) { + m1 := map[string]interface{}{ + "k1": map[string]interface{}{ + "k1.1": "v1", + }, + } + + m2 := map[string]interface{}{ + "k1": map[string]interface{}{ + "k1.1": "v2", + "k1.2": "v3", + }, + } + + if err := Map(&m1, m2, WithOverride); err != nil { + t.Fatalf("Error merging: %v", err) + } + + // Check overwrite of sub map works + expected := "v2" + actual := m1["k1"].(map[string]interface{})["k1.1"].(string) + if actual != expected { + t.Fatalf("Expected %v but got %v", + expected, + actual) + } + + // Check new key is merged + expected = "v3" + actual = m1["k1"].(map[string]interface{})["k1.2"].(string) + if actual != expected { + t.Fatalf("Expected %v but got %v", + expected, + actual) + } +} diff --git a/vendor/github.com/imdario/mergo/testdata/license.yml b/vendor/github.com/imdario/mergo/testdata/license.yml new file mode 100644 index 0000000..2f1ad00 --- /dev/null +++ b/vendor/github.com/imdario/mergo/testdata/license.yml @@ -0,0 +1,4 @@ +import: ../../../../fossene/db/schema/thing.yml +fields: + site: string + author: root diff --git a/vendor/github.com/imdario/mergo/testdata/thing.yml b/vendor/github.com/imdario/mergo/testdata/thing.yml new file mode 100644 index 0000000..1a71041 --- /dev/null +++ b/vendor/github.com/imdario/mergo/testdata/thing.yml @@ -0,0 +1,6 @@ +fields: + id: int + name: string + parent: ref "datu:thing" + status: enum(draft, public, private) + author: updater diff --git a/vendor/github.com/urfave/cli/.flake8 b/vendor/github.com/urfave/cli/.flake8 new file mode 100644 index 0000000..6deafc2 --- /dev/null +++ b/vendor/github.com/urfave/cli/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 120 diff --git a/vendor/github.com/urfave/cli/.gitignore b/vendor/github.com/urfave/cli/.gitignore new file mode 100644 index 0000000..faf70c4 --- /dev/null +++ b/vendor/github.com/urfave/cli/.gitignore @@ -0,0 +1,2 @@ +*.coverprofile +node_modules/ diff --git a/vendor/github.com/urfave/cli/.travis.yml b/vendor/github.com/urfave/cli/.travis.yml new file mode 100644 index 0000000..cf8d098 --- /dev/null +++ b/vendor/github.com/urfave/cli/.travis.yml @@ -0,0 +1,27 @@ +language: go +sudo: false +dist: trusty +osx_image: xcode8.3 +go: 1.8.x + +os: +- linux +- osx + +cache: + directories: + - node_modules + +before_script: +- go get github.com/urfave/gfmrun/... || true +- go get golang.org/x/tools/cmd/goimports +- if [ ! -f node_modules/.bin/markdown-toc ] ; then + npm install markdown-toc ; + fi + +script: +- ./runtests gen +- ./runtests vet +- ./runtests test +- ./runtests gfmrun +- ./runtests toc diff --git a/vendor/github.com/urfave/cli/CHANGELOG.md b/vendor/github.com/urfave/cli/CHANGELOG.md new file mode 100644 index 0000000..401eae5 --- /dev/null +++ b/vendor/github.com/urfave/cli/CHANGELOG.md @@ -0,0 +1,435 @@ +# Change Log + +**ATTN**: This project uses [semantic versioning](http://semver.org/). + +## [Unreleased] + +## 1.20.0 - 2017-08-10 + +### Fixed + +* `HandleExitCoder` is now correctly iterates over all errors in + a `MultiError`. The exit code is the exit code of the last error or `1` if + there are no `ExitCoder`s in the `MultiError`. +* Fixed YAML file loading on Windows (previously would fail validate the file path) +* Subcommand `Usage`, `Description`, `ArgsUsage`, `OnUsageError` correctly + propogated +* `ErrWriter` is now passed downwards through command structure to avoid the + need to redefine it +* Pass `Command` context into `OnUsageError` rather than parent context so that + all fields are avaiable +* Errors occuring in `Before` funcs are no longer double printed +* Use `UsageText` in the help templates for commands and subcommands if + defined; otherwise build the usage as before (was previously ignoring this + field) +* `IsSet` and `GlobalIsSet` now correctly return whether a flag is set if + a program calls `Set` or `GlobalSet` directly after flag parsing (would + previously only return `true` if the flag was set during parsing) + +### Changed + +* No longer exit the program on command/subcommand error if the error raised is + not an `OsExiter`. This exiting behavior was introduced in 1.19.0, but was + determined to be a regression in functionality. See [the + PR](https://github.com/urfave/cli/pull/595) for discussion. + +### Added + +* `CommandsByName` type was added to make it easy to sort `Command`s by name, + alphabetically +* `altsrc` now handles loading of string and int arrays from TOML +* Support for definition of custom help templates for `App` via + `CustomAppHelpTemplate` +* Support for arbitrary key/value fields on `App` to be used with + `CustomAppHelpTemplate` via `ExtraInfo` +* `HelpFlag`, `VersionFlag`, and `BashCompletionFlag` changed to explictly be + `cli.Flag`s allowing for the use of custom flags satisfying the `cli.Flag` + interface to be used. + + +## [1.19.1] - 2016-11-21 + +### Fixed + +- Fixes regression introduced in 1.19.0 where using an `ActionFunc` as + the `Action` for a command would cause it to error rather than calling the + function. Should not have a affected declarative cases using `func(c + *cli.Context) err)`. +- Shell completion now handles the case where the user specifies + `--generate-bash-completion` immediately after a flag that takes an argument. + Previously it call the application with `--generate-bash-completion` as the + flag value. + +## [1.19.0] - 2016-11-19 +### Added +- `FlagsByName` was added to make it easy to sort flags (e.g. `sort.Sort(cli.FlagsByName(app.Flags))`) +- A `Description` field was added to `App` for a more detailed description of + the application (similar to the existing `Description` field on `Command`) +- Flag type code generation via `go generate` +- Write to stderr and exit 1 if action returns non-nil error +- Added support for TOML to the `altsrc` loader +- `SkipArgReorder` was added to allow users to skip the argument reordering. + This is useful if you want to consider all "flags" after an argument as + arguments rather than flags (the default behavior of the stdlib `flag` + library). This is backported functionality from the [removal of the flag + reordering](https://github.com/urfave/cli/pull/398) in the unreleased version + 2 +- For formatted errors (those implementing `ErrorFormatter`), the errors will + be formatted during output. Compatible with `pkg/errors`. + +### Changed +- Raise minimum tested/supported Go version to 1.2+ + +### Fixed +- Consider empty environment variables as set (previously environment variables + with the equivalent of `""` would be skipped rather than their value used). +- Return an error if the value in a given environment variable cannot be parsed + as the flag type. Previously these errors were silently swallowed. +- Print full error when an invalid flag is specified (which includes the invalid flag) +- `App.Writer` defaults to `stdout` when `nil` +- If no action is specified on a command or app, the help is now printed instead of `panic`ing +- `App.Metadata` is initialized automatically now (previously was `nil` unless initialized) +- Correctly show help message if `-h` is provided to a subcommand +- `context.(Global)IsSet` now respects environment variables. Previously it + would return `false` if a flag was specified in the environment rather than + as an argument +- Removed deprecation warnings to STDERR to avoid them leaking to the end-user +- `altsrc`s import paths were updated to use `gopkg.in/urfave/cli.v1`. This + fixes issues that occurred when `gopkg.in/urfave/cli.v1` was imported as well + as `altsrc` where Go would complain that the types didn't match + +## [1.18.1] - 2016-08-28 +### Fixed +- Removed deprecation warnings to STDERR to avoid them leaking to the end-user (backported) + +## [1.18.0] - 2016-06-27 +### Added +- `./runtests` test runner with coverage tracking by default +- testing on OS X +- testing on Windows +- `UintFlag`, `Uint64Flag`, and `Int64Flag` types and supporting code + +### Changed +- Use spaces for alignment in help/usage output instead of tabs, making the + output alignment consistent regardless of tab width + +### Fixed +- Printing of command aliases in help text +- Printing of visible flags for both struct and struct pointer flags +- Display the `help` subcommand when using `CommandCategories` +- No longer swallows `panic`s that occur within the `Action`s themselves when + detecting the signature of the `Action` field + +## [1.17.1] - 2016-08-28 +### Fixed +- Removed deprecation warnings to STDERR to avoid them leaking to the end-user + +## [1.17.0] - 2016-05-09 +### Added +- Pluggable flag-level help text rendering via `cli.DefaultFlagStringFunc` +- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool` +- Support for hiding commands by setting `Hidden: true` -- this will hide the + commands in help output + +### Changed +- `Float64Flag`, `IntFlag`, and `DurationFlag` default values are no longer + quoted in help text output. +- All flag types now include `(default: {value})` strings following usage when a + default value can be (reasonably) detected. +- `IntSliceFlag` and `StringSliceFlag` usage strings are now more consistent + with non-slice flag types +- Apps now exit with a code of 3 if an unknown subcommand is specified + (previously they printed "No help topic for...", but still exited 0. This + makes it easier to script around apps built using `cli` since they can trust + that a 0 exit code indicated a successful execution. +- cleanups based on [Go Report Card + feedback](https://goreportcard.com/report/github.com/urfave/cli) + +## [1.16.1] - 2016-08-28 +### Fixed +- Removed deprecation warnings to STDERR to avoid them leaking to the end-user + +## [1.16.0] - 2016-05-02 +### Added +- `Hidden` field on all flag struct types to omit from generated help text + +### Changed +- `BashCompletionFlag` (`--enable-bash-completion`) is now omitted from +generated help text via the `Hidden` field + +### Fixed +- handling of error values in `HandleAction` and `HandleExitCoder` + +## [1.15.0] - 2016-04-30 +### Added +- This file! +- Support for placeholders in flag usage strings +- `App.Metadata` map for arbitrary data/state management +- `Set` and `GlobalSet` methods on `*cli.Context` for altering values after +parsing. +- Support for nested lookup of dot-delimited keys in structures loaded from +YAML. + +### Changed +- The `App.Action` and `Command.Action` now prefer a return signature of +`func(*cli.Context) error`, as defined by `cli.ActionFunc`. If a non-nil +`error` is returned, there may be two outcomes: + - If the error fulfills `cli.ExitCoder`, then `os.Exit` will be called + automatically + - Else the error is bubbled up and returned from `App.Run` +- Specifying an `Action` with the legacy return signature of +`func(*cli.Context)` will produce a deprecation message to stderr +- Specifying an `Action` that is not a `func` type will produce a non-zero exit +from `App.Run` +- Specifying an `Action` func that has an invalid (input) signature will +produce a non-zero exit from `App.Run` + +### Deprecated +- +`cli.App.RunAndExitOnError`, which should now be done by returning an error +that fulfills `cli.ExitCoder` to `cli.App.Run`. +- the legacy signature for +`cli.App.Action` of `func(*cli.Context)`, which should now have a return +signature of `func(*cli.Context) error`, as defined by `cli.ActionFunc`. + +### Fixed +- Added missing `*cli.Context.GlobalFloat64` method + +## [1.14.0] - 2016-04-03 (backfilled 2016-04-25) +### Added +- Codebeat badge +- Support for categorization via `CategorizedHelp` and `Categories` on app. + +### Changed +- Use `filepath.Base` instead of `path.Base` in `Name` and `HelpName`. + +### Fixed +- Ensure version is not shown in help text when `HideVersion` set. + +## [1.13.0] - 2016-03-06 (backfilled 2016-04-25) +### Added +- YAML file input support. +- `NArg` method on context. + +## [1.12.0] - 2016-02-17 (backfilled 2016-04-25) +### Added +- Custom usage error handling. +- Custom text support in `USAGE` section of help output. +- Improved help messages for empty strings. +- AppVeyor CI configuration. + +### Changed +- Removed `panic` from default help printer func. +- De-duping and optimizations. + +### Fixed +- Correctly handle `Before`/`After` at command level when no subcommands. +- Case of literal `-` argument causing flag reordering. +- Environment variable hints on Windows. +- Docs updates. + +## [1.11.1] - 2015-12-21 (backfilled 2016-04-25) +### Changed +- Use `path.Base` in `Name` and `HelpName` +- Export `GetName` on flag types. + +### Fixed +- Flag parsing when skipping is enabled. +- Test output cleanup. +- Move completion check to account for empty input case. + +## [1.11.0] - 2015-11-15 (backfilled 2016-04-25) +### Added +- Destination scan support for flags. +- Testing against `tip` in Travis CI config. + +### Changed +- Go version in Travis CI config. + +### Fixed +- Removed redundant tests. +- Use correct example naming in tests. + +## [1.10.2] - 2015-10-29 (backfilled 2016-04-25) +### Fixed +- Remove unused var in bash completion. + +## [1.10.1] - 2015-10-21 (backfilled 2016-04-25) +### Added +- Coverage and reference logos in README. + +### Fixed +- Use specified values in help and version parsing. +- Only display app version and help message once. + +## [1.10.0] - 2015-10-06 (backfilled 2016-04-25) +### Added +- More tests for existing functionality. +- `ArgsUsage` at app and command level for help text flexibility. + +### Fixed +- Honor `HideHelp` and `HideVersion` in `App.Run`. +- Remove juvenile word from README. + +## [1.9.0] - 2015-09-08 (backfilled 2016-04-25) +### Added +- `FullName` on command with accompanying help output update. +- Set default `$PROG` in bash completion. + +### Changed +- Docs formatting. + +### Fixed +- Removed self-referential imports in tests. + +## [1.8.0] - 2015-06-30 (backfilled 2016-04-25) +### Added +- Support for `Copyright` at app level. +- `Parent` func at context level to walk up context lineage. + +### Fixed +- Global flag processing at top level. + +## [1.7.1] - 2015-06-11 (backfilled 2016-04-25) +### Added +- Aggregate errors from `Before`/`After` funcs. +- Doc comments on flag structs. +- Include non-global flags when checking version and help. +- Travis CI config updates. + +### Fixed +- Ensure slice type flags have non-nil values. +- Collect global flags from the full command hierarchy. +- Docs prose. + +## [1.7.0] - 2015-05-03 (backfilled 2016-04-25) +### Changed +- `HelpPrinter` signature includes output writer. + +### Fixed +- Specify go 1.1+ in docs. +- Set `Writer` when running command as app. + +## [1.6.0] - 2015-03-23 (backfilled 2016-04-25) +### Added +- Multiple author support. +- `NumFlags` at context level. +- `Aliases` at command level. + +### Deprecated +- `ShortName` at command level. + +### Fixed +- Subcommand help output. +- Backward compatible support for deprecated `Author` and `Email` fields. +- Docs regarding `Names`/`Aliases`. + +## [1.5.0] - 2015-02-20 (backfilled 2016-04-25) +### Added +- `After` hook func support at app and command level. + +### Fixed +- Use parsed context when running command as subcommand. +- Docs prose. + +## [1.4.1] - 2015-01-09 (backfilled 2016-04-25) +### Added +- Support for hiding `-h / --help` flags, but not `help` subcommand. +- Stop flag parsing after `--`. + +### Fixed +- Help text for generic flags to specify single value. +- Use double quotes in output for defaults. +- Use `ParseInt` instead of `ParseUint` for int environment var values. +- Use `0` as base when parsing int environment var values. + +## [1.4.0] - 2014-12-12 (backfilled 2016-04-25) +### Added +- Support for environment variable lookup "cascade". +- Support for `Stdout` on app for output redirection. + +### Fixed +- Print command help instead of app help in `ShowCommandHelp`. + +## [1.3.1] - 2014-11-13 (backfilled 2016-04-25) +### Added +- Docs and example code updates. + +### Changed +- Default `-v / --version` flag made optional. + +## [1.3.0] - 2014-08-10 (backfilled 2016-04-25) +### Added +- `FlagNames` at context level. +- Exposed `VersionPrinter` var for more control over version output. +- Zsh completion hook. +- `AUTHOR` section in default app help template. +- Contribution guidelines. +- `DurationFlag` type. + +## [1.2.0] - 2014-08-02 +### Added +- Support for environment variable defaults on flags plus tests. + +## [1.1.0] - 2014-07-15 +### Added +- Bash completion. +- Optional hiding of built-in help command. +- Optional skipping of flag parsing at command level. +- `Author`, `Email`, and `Compiled` metadata on app. +- `Before` hook func support at app and command level. +- `CommandNotFound` func support at app level. +- Command reference available on context. +- `GenericFlag` type. +- `Float64Flag` type. +- `BoolTFlag` type. +- `IsSet` flag helper on context. +- More flag lookup funcs at context level. +- More tests & docs. + +### Changed +- Help template updates to account for presence/absence of flags. +- Separated subcommand help template. +- Exposed `HelpPrinter` var for more control over help output. + +## [1.0.0] - 2013-11-01 +### Added +- `help` flag in default app flag set and each command flag set. +- Custom handling of argument parsing errors. +- Command lookup by name at app level. +- `StringSliceFlag` type and supporting `StringSlice` type. +- `IntSliceFlag` type and supporting `IntSlice` type. +- Slice type flag lookups by name at context level. +- Export of app and command help functions. +- More tests & docs. + +## 0.1.0 - 2013-07-22 +### Added +- Initial implementation. + +[Unreleased]: https://github.com/urfave/cli/compare/v1.18.0...HEAD +[1.18.0]: https://github.com/urfave/cli/compare/v1.17.0...v1.18.0 +[1.17.0]: https://github.com/urfave/cli/compare/v1.16.0...v1.17.0 +[1.16.0]: https://github.com/urfave/cli/compare/v1.15.0...v1.16.0 +[1.15.0]: https://github.com/urfave/cli/compare/v1.14.0...v1.15.0 +[1.14.0]: https://github.com/urfave/cli/compare/v1.13.0...v1.14.0 +[1.13.0]: https://github.com/urfave/cli/compare/v1.12.0...v1.13.0 +[1.12.0]: https://github.com/urfave/cli/compare/v1.11.1...v1.12.0 +[1.11.1]: https://github.com/urfave/cli/compare/v1.11.0...v1.11.1 +[1.11.0]: https://github.com/urfave/cli/compare/v1.10.2...v1.11.0 +[1.10.2]: https://github.com/urfave/cli/compare/v1.10.1...v1.10.2 +[1.10.1]: https://github.com/urfave/cli/compare/v1.10.0...v1.10.1 +[1.10.0]: https://github.com/urfave/cli/compare/v1.9.0...v1.10.0 +[1.9.0]: https://github.com/urfave/cli/compare/v1.8.0...v1.9.0 +[1.8.0]: https://github.com/urfave/cli/compare/v1.7.1...v1.8.0 +[1.7.1]: https://github.com/urfave/cli/compare/v1.7.0...v1.7.1 +[1.7.0]: https://github.com/urfave/cli/compare/v1.6.0...v1.7.0 +[1.6.0]: https://github.com/urfave/cli/compare/v1.5.0...v1.6.0 +[1.5.0]: https://github.com/urfave/cli/compare/v1.4.1...v1.5.0 +[1.4.1]: https://github.com/urfave/cli/compare/v1.4.0...v1.4.1 +[1.4.0]: https://github.com/urfave/cli/compare/v1.3.1...v1.4.0 +[1.3.1]: https://github.com/urfave/cli/compare/v1.3.0...v1.3.1 +[1.3.0]: https://github.com/urfave/cli/compare/v1.2.0...v1.3.0 +[1.2.0]: https://github.com/urfave/cli/compare/v1.1.0...v1.2.0 +[1.1.0]: https://github.com/urfave/cli/compare/v1.0.0...v1.1.0 +[1.0.0]: https://github.com/urfave/cli/compare/v0.1.0...v1.0.0 diff --git a/vendor/github.com/urfave/cli/LICENSE b/vendor/github.com/urfave/cli/LICENSE new file mode 100644 index 0000000..42a597e --- /dev/null +++ b/vendor/github.com/urfave/cli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Jeremy Saenz & Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/urfave/cli/README.md b/vendor/github.com/urfave/cli/README.md new file mode 100644 index 0000000..2bbbd8e --- /dev/null +++ b/vendor/github.com/urfave/cli/README.md @@ -0,0 +1,1381 @@ +cli +=== + +[![Build Status](https://travis-ci.org/urfave/cli.svg?branch=master)](https://travis-ci.org/urfave/cli) +[![Windows Build Status](https://ci.appveyor.com/api/projects/status/rtgk5xufi932pb2v?svg=true)](https://ci.appveyor.com/project/urfave/cli) +[![GoDoc](https://godoc.org/github.com/urfave/cli?status.svg)](https://godoc.org/github.com/urfave/cli) +[![codebeat](https://codebeat.co/badges/0a8f30aa-f975-404b-b878-5fab3ae1cc5f)](https://codebeat.co/projects/github-com-urfave-cli) +[![Go Report Card](https://goreportcard.com/badge/urfave/cli)](https://goreportcard.com/report/urfave/cli) +[![top level coverage](https://gocover.io/_badge/github.com/urfave/cli?0 "top level coverage")](http://gocover.io/github.com/urfave/cli) / +[![altsrc coverage](https://gocover.io/_badge/github.com/urfave/cli/altsrc?0 "altsrc coverage")](http://gocover.io/github.com/urfave/cli/altsrc) + +**Notice:** This is the library formerly known as +`github.com/codegangsta/cli` -- Github will automatically redirect requests +to this repository, but we recommend updating your references for clarity. + +cli is a simple, fast, and fun package for building command line apps in Go. The +goal is to enable developers to write fast and distributable command line +applications in an expressive way. + + + +- [Overview](#overview) +- [Installation](#installation) + * [Supported platforms](#supported-platforms) + * [Using the `v2` branch](#using-the-v2-branch) + * [Pinning to the `v1` releases](#pinning-to-the-v1-releases) +- [Getting Started](#getting-started) +- [Examples](#examples) + * [Arguments](#arguments) + * [Flags](#flags) + + [Placeholder Values](#placeholder-values) + + [Alternate Names](#alternate-names) + + [Ordering](#ordering) + + [Values from the Environment](#values-from-the-environment) + + [Values from alternate input sources (YAML, TOML, and others)](#values-from-alternate-input-sources-yaml-toml-and-others) + * [Subcommands](#subcommands) + * [Subcommands categories](#subcommands-categories) + * [Exit code](#exit-code) + * [Bash Completion](#bash-completion) + + [Enabling](#enabling) + + [Distribution](#distribution) + + [Customization](#customization) + * [Generated Help Text](#generated-help-text) + + [Customization](#customization-1) + * [Version Flag](#version-flag) + + [Customization](#customization-2) + + [Full API Example](#full-api-example) +- [Contribution Guidelines](#contribution-guidelines) + + + +## Overview + +Command line apps are usually so tiny that there is absolutely no reason why +your code should *not* be self-documenting. Things like generating help text and +parsing command flags/options should not hinder productivity when writing a +command line app. + +**This is where cli comes into play.** cli makes command line programming fun, +organized, and expressive! + +## Installation + +Make sure you have a working Go environment. Go version 1.2+ is supported. [See +the install instructions for Go](http://golang.org/doc/install.html). + +To install cli, simply run: +``` +$ go get github.com/urfave/cli +``` + +Make sure your `PATH` includes the `$GOPATH/bin` directory so your commands can +be easily used: +``` +export PATH=$PATH:$GOPATH/bin +``` + +### Supported platforms + +cli is tested against multiple versions of Go on Linux, and against the latest +released version of Go on OS X and Windows. For full details, see +[`./.travis.yml`](./.travis.yml) and [`./appveyor.yml`](./appveyor.yml). + +### Using the `v2` branch + +**Warning**: The `v2` branch is currently unreleased and considered unstable. + +There is currently a long-lived branch named `v2` that is intended to land as +the new `master` branch once development there has settled down. The current +`master` branch (mirrored as `v1`) is being manually merged into `v2` on +an irregular human-based schedule, but generally if one wants to "upgrade" to +`v2` *now* and accept the volatility (read: "awesomeness") that comes along with +that, please use whatever version pinning of your preference, such as via +`gopkg.in`: + +``` +$ go get gopkg.in/urfave/cli.v2 +``` + +``` go +... +import ( + "gopkg.in/urfave/cli.v2" // imports as package "cli" +) +... +``` + +### Pinning to the `v1` releases + +Similarly to the section above describing use of the `v2` branch, if one wants +to avoid any unexpected compatibility pains once `v2` becomes `master`, then +pinning to `v1` is an acceptable option, e.g.: + +``` +$ go get gopkg.in/urfave/cli.v1 +``` + +``` go +... +import ( + "gopkg.in/urfave/cli.v1" // imports as package "cli" +) +... +``` + +This will pull the latest tagged `v1` release (e.g. `v1.18.1` at the time of writing). + +## Getting Started + +One of the philosophies behind cli is that an API should be playful and full of +discovery. So a cli app can be as little as one line of code in `main()`. + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + cli.NewApp().Run(os.Args) +} +``` + +This app will run and show help text, but is not very useful. Let's give an +action to execute and some help documentation: + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + app.Name = "boom" + app.Usage = "make an explosive entrance" + app.Action = func(c *cli.Context) error { + fmt.Println("boom! I say!") + return nil + } + + app.Run(os.Args) +} +``` + +Running this already gives you a ton of functionality, plus support for things +like subcommands and flags, which are covered below. + +## Examples + +Being a programmer can be a lonely job. Thankfully by the power of automation +that is not the case! Let's create a greeter app to fend off our demons of +loneliness! + +Start by creating a directory named `greet`, and within it, add a file, +`greet.go` with the following code in it: + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + app.Name = "greet" + app.Usage = "fight the loneliness!" + app.Action = func(c *cli.Context) error { + fmt.Println("Hello friend!") + return nil + } + + app.Run(os.Args) +} +``` + +Install our command to the `$GOPATH/bin` directory: + +``` +$ go install +``` + +Finally run our new command: + +``` +$ greet +Hello friend! +``` + +cli also generates neat help text: + +``` +$ greet help +NAME: + greet - fight the loneliness! + +USAGE: + greet [global options] command [command options] [arguments...] + +VERSION: + 0.0.0 + +COMMANDS: + help, h Shows a list of commands or help for one command + +GLOBAL OPTIONS + --version Shows version information +``` + +### Arguments + +You can lookup arguments by calling the `Args` function on `cli.Context`, e.g.: + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Action = func(c *cli.Context) error { + fmt.Printf("Hello %q", c.Args().Get(0)) + return nil + } + + app.Run(os.Args) +} +``` + +### Flags + +Setting and querying flags is simple. + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang", + Value: "english", + Usage: "language for the greeting", + }, + } + + app.Action = func(c *cli.Context) error { + name := "Nefertiti" + if c.NArg() > 0 { + name = c.Args().Get(0) + } + if c.String("lang") == "spanish" { + fmt.Println("Hola", name) + } else { + fmt.Println("Hello", name) + } + return nil + } + + app.Run(os.Args) +} +``` + +You can also set a destination variable for a flag, to which the content will be +scanned. + + +``` go +package main + +import ( + "os" + "fmt" + + "github.com/urfave/cli" +) + +func main() { + var language string + + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang", + Value: "english", + Usage: "language for the greeting", + Destination: &language, + }, + } + + app.Action = func(c *cli.Context) error { + name := "someone" + if c.NArg() > 0 { + name = c.Args()[0] + } + if language == "spanish" { + fmt.Println("Hola", name) + } else { + fmt.Println("Hello", name) + } + return nil + } + + app.Run(os.Args) +} +``` + +See full list of flags at http://godoc.org/github.com/urfave/cli + +#### Placeholder Values + +Sometimes it's useful to specify a flag's value within the usage string itself. +Such placeholders are indicated with back quotes. + +For example this: + + +```go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag{ + cli.StringFlag{ + Name: "config, c", + Usage: "Load configuration from `FILE`", + }, + } + + app.Run(os.Args) +} +``` + +Will result in help output like: + +``` +--config FILE, -c FILE Load configuration from FILE +``` + +Note that only the first placeholder is used. Subsequent back-quoted words will +be left as-is. + +#### Alternate Names + +You can set alternate (or short) names for flags by providing a comma-delimited +list for the `Name`. e.g. + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang, l", + Value: "english", + Usage: "language for the greeting", + }, + } + + app.Run(os.Args) +} +``` + +That flag can then be set with `--lang spanish` or `-l spanish`. Note that +giving two different forms of the same flag in the same command invocation is an +error. + +#### Ordering + +Flags for the application and commands are shown in the order they are defined. +However, it's possible to sort them from outside this library by using `FlagsByName` +or `CommandsByName` with `sort`. + +For example this: + + +``` go +package main + +import ( + "os" + "sort" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang, l", + Value: "english", + Usage: "Language for the greeting", + }, + cli.StringFlag{ + Name: "config, c", + Usage: "Load configuration from `FILE`", + }, + } + + app.Commands = []cli.Command{ + { + Name: "complete", + Aliases: []string{"c"}, + Usage: "complete a task on the list", + Action: func(c *cli.Context) error { + return nil + }, + }, + { + Name: "add", + Aliases: []string{"a"}, + Usage: "add a task to the list", + Action: func(c *cli.Context) error { + return nil + }, + }, + } + + sort.Sort(cli.FlagsByName(app.Flags)) + sort.Sort(cli.CommandsByName(app.Commands)) + + app.Run(os.Args) +} +``` + +Will result in help output like: + +``` +--config FILE, -c FILE Load configuration from FILE +--lang value, -l value Language for the greeting (default: "english") +``` + +#### Values from the Environment + +You can also have the default value set from the environment via `EnvVar`. e.g. + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang, l", + Value: "english", + Usage: "language for the greeting", + EnvVar: "APP_LANG", + }, + } + + app.Run(os.Args) +} +``` + +The `EnvVar` may also be given as a comma-delimited "cascade", where the first +environment variable that resolves is used as the default. + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Flags = []cli.Flag { + cli.StringFlag{ + Name: "lang, l", + Value: "english", + Usage: "language for the greeting", + EnvVar: "LEGACY_COMPAT_LANG,APP_LANG,LANG", + }, + } + + app.Run(os.Args) +} +``` + +#### Values from alternate input sources (YAML, TOML, and others) + +There is a separate package altsrc that adds support for getting flag values +from other file input sources. + +Currently supported input source formats: +* YAML +* TOML + +In order to get values for a flag from an alternate input source the following +code would be added to wrap an existing cli.Flag like below: + +``` go + altsrc.NewIntFlag(cli.IntFlag{Name: "test"}) +``` + +Initialization must also occur for these flags. Below is an example initializing +getting data from a yaml file below. + +``` go + command.Before = altsrc.InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) +``` + +The code above will use the "load" string as a flag name to get the file name of +a yaml file from the cli.Context. It will then use that file name to initialize +the yaml input source for any flags that are defined on that command. As a note +the "load" flag used would also have to be defined on the command flags in order +for this code snipped to work. + +Currently only the aboved specified formats are supported but developers can +add support for other input sources by implementing the +altsrc.InputSourceContext for their given sources. + +Here is a more complete sample of a command using YAML support: + + +``` go +package notmain + +import ( + "fmt" + "os" + + "github.com/urfave/cli" + "github.com/urfave/cli/altsrc" +) + +func main() { + app := cli.NewApp() + + flags := []cli.Flag{ + altsrc.NewIntFlag(cli.IntFlag{Name: "test"}), + cli.StringFlag{Name: "load"}, + } + + app.Action = func(c *cli.Context) error { + fmt.Println("yaml ist rad") + return nil + } + + app.Before = altsrc.InitInputSourceWithContext(flags, altsrc.NewYamlSourceFromFlagFunc("load")) + app.Flags = flags + + app.Run(os.Args) +} +``` + +### Subcommands + +Subcommands can be defined for a more git-like command line app. + + +```go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Commands = []cli.Command{ + { + Name: "add", + Aliases: []string{"a"}, + Usage: "add a task to the list", + Action: func(c *cli.Context) error { + fmt.Println("added task: ", c.Args().First()) + return nil + }, + }, + { + Name: "complete", + Aliases: []string{"c"}, + Usage: "complete a task on the list", + Action: func(c *cli.Context) error { + fmt.Println("completed task: ", c.Args().First()) + return nil + }, + }, + { + Name: "template", + Aliases: []string{"t"}, + Usage: "options for task templates", + Subcommands: []cli.Command{ + { + Name: "add", + Usage: "add a new template", + Action: func(c *cli.Context) error { + fmt.Println("new task template: ", c.Args().First()) + return nil + }, + }, + { + Name: "remove", + Usage: "remove an existing template", + Action: func(c *cli.Context) error { + fmt.Println("removed task template: ", c.Args().First()) + return nil + }, + }, + }, + }, + } + + app.Run(os.Args) +} +``` + +### Subcommands categories + +For additional organization in apps that have many subcommands, you can +associate a category for each command to group them together in the help +output. + +E.g. + +```go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + + app.Commands = []cli.Command{ + { + Name: "noop", + }, + { + Name: "add", + Category: "template", + }, + { + Name: "remove", + Category: "template", + }, + } + + app.Run(os.Args) +} +``` + +Will include: + +``` +COMMANDS: + noop + + Template actions: + add + remove +``` + +### Exit code + +Calling `App.Run` will not automatically call `os.Exit`, which means that by +default the exit code will "fall through" to being `0`. An explicit exit code +may be set by returning a non-nil error that fulfills `cli.ExitCoder`, *or* a +`cli.MultiError` that includes an error that fulfills `cli.ExitCoder`, e.g.: + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + app.Flags = []cli.Flag{ + cli.BoolTFlag{ + Name: "ginger-crouton", + Usage: "is it in the soup?", + }, + } + app.Action = func(ctx *cli.Context) error { + if !ctx.Bool("ginger-crouton") { + return cli.NewExitError("it is not in the soup", 86) + } + return nil + } + + app.Run(os.Args) +} +``` + +### Bash Completion + +You can enable completion commands by setting the `EnableBashCompletion` +flag on the `App` object. By default, this setting will only auto-complete to +show an app's subcommands, but you can write your own completion methods for +the App or its subcommands. + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +func main() { + tasks := []string{"cook", "clean", "laundry", "eat", "sleep", "code"} + + app := cli.NewApp() + app.EnableBashCompletion = true + app.Commands = []cli.Command{ + { + Name: "complete", + Aliases: []string{"c"}, + Usage: "complete a task on the list", + Action: func(c *cli.Context) error { + fmt.Println("completed task: ", c.Args().First()) + return nil + }, + BashComplete: func(c *cli.Context) { + // This will complete if no args are passed + if c.NArg() > 0 { + return + } + for _, t := range tasks { + fmt.Println(t) + } + }, + }, + } + + app.Run(os.Args) +} +``` + +#### Enabling + +Source the `autocomplete/bash_autocomplete` file in your `.bashrc` file while +setting the `PROG` variable to the name of your program: + +`PROG=myprogram source /.../cli/autocomplete/bash_autocomplete` + +#### Distribution + +Copy `autocomplete/bash_autocomplete` into `/etc/bash_completion.d/` and rename +it to the name of the program you wish to add autocomplete support for (or +automatically install it there if you are distributing a package). Don't forget +to source the file to make it active in the current shell. + +``` +sudo cp src/bash_autocomplete /etc/bash_completion.d/ +source /etc/bash_completion.d/ +``` + +Alternatively, you can just document that users should source the generic +`autocomplete/bash_autocomplete` in their bash configuration with `$PROG` set +to the name of their program (as above). + +#### Customization + +The default bash completion flag (`--generate-bash-completion`) is defined as +`cli.BashCompletionFlag`, and may be redefined if desired, e.g.: + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + cli.BashCompletionFlag = cli.BoolFlag{ + Name: "compgen", + Hidden: true, + } + + app := cli.NewApp() + app.EnableBashCompletion = true + app.Commands = []cli.Command{ + { + Name: "wat", + }, + } + app.Run(os.Args) +} +``` + +### Generated Help Text + +The default help flag (`-h/--help`) is defined as `cli.HelpFlag` and is checked +by the cli internals in order to print generated help text for the app, command, +or subcommand, and break execution. + +#### Customization + +All of the help text generation may be customized, and at multiple levels. The +templates are exposed as variables `AppHelpTemplate`, `CommandHelpTemplate`, and +`SubcommandHelpTemplate` which may be reassigned or augmented, and full override +is possible by assigning a compatible func to the `cli.HelpPrinter` variable, +e.g.: + + +``` go +package main + +import ( + "fmt" + "io" + "os" + + "github.com/urfave/cli" +) + +func main() { + // EXAMPLE: Append to an existing template + cli.AppHelpTemplate = fmt.Sprintf(`%s + +WEBSITE: http://awesometown.example.com + +SUPPORT: support@awesometown.example.com + +`, cli.AppHelpTemplate) + + // EXAMPLE: Override a template + cli.AppHelpTemplate = `NAME: + {{.Name}} - {{.Usage}} +USAGE: + {{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}} + {{if len .Authors}} +AUTHOR: + {{range .Authors}}{{ . }}{{end}} + {{end}}{{if .Commands}} +COMMANDS: +{{range .Commands}}{{if not .HideHelp}} {{join .Names ", "}}{{ "\t"}}{{.Usage}}{{ "\n" }}{{end}}{{end}}{{end}}{{if .VisibleFlags}} +GLOBAL OPTIONS: + {{range .VisibleFlags}}{{.}} + {{end}}{{end}}{{if .Copyright }} +COPYRIGHT: + {{.Copyright}} + {{end}}{{if .Version}} +VERSION: + {{.Version}} + {{end}} +` + + // EXAMPLE: Replace the `HelpPrinter` func + cli.HelpPrinter = func(w io.Writer, templ string, data interface{}) { + fmt.Println("Ha HA. I pwnd the help!!1") + } + + cli.NewApp().Run(os.Args) +} +``` + +The default flag may be customized to something other than `-h/--help` by +setting `cli.HelpFlag`, e.g.: + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + cli.HelpFlag = cli.BoolFlag{ + Name: "halp, haaaaalp", + Usage: "HALP", + EnvVar: "SHOW_HALP,HALPPLZ", + } + + cli.NewApp().Run(os.Args) +} +``` + +### Version Flag + +The default version flag (`-v/--version`) is defined as `cli.VersionFlag`, which +is checked by the cli internals in order to print the `App.Version` via +`cli.VersionPrinter` and break execution. + +#### Customization + +The default flag may be customized to something other than `-v/--version` by +setting `cli.VersionFlag`, e.g.: + + +``` go +package main + +import ( + "os" + + "github.com/urfave/cli" +) + +func main() { + cli.VersionFlag = cli.BoolFlag{ + Name: "print-version, V", + Usage: "print only the version", + } + + app := cli.NewApp() + app.Name = "partay" + app.Version = "19.99.0" + app.Run(os.Args) +} +``` + +Alternatively, the version printer at `cli.VersionPrinter` may be overridden, e.g.: + + +``` go +package main + +import ( + "fmt" + "os" + + "github.com/urfave/cli" +) + +var ( + Revision = "fafafaf" +) + +func main() { + cli.VersionPrinter = func(c *cli.Context) { + fmt.Printf("version=%s revision=%s\n", c.App.Version, Revision) + } + + app := cli.NewApp() + app.Name = "partay" + app.Version = "19.99.0" + app.Run(os.Args) +} +``` + +#### Full API Example + +**Notice**: This is a contrived (functioning) example meant strictly for API +demonstration purposes. Use of one's imagination is encouraged. + + +``` go +package main + +import ( + "errors" + "flag" + "fmt" + "io" + "io/ioutil" + "os" + "time" + + "github.com/urfave/cli" +) + +func init() { + cli.AppHelpTemplate += "\nCUSTOMIZED: you bet ur muffins\n" + cli.CommandHelpTemplate += "\nYMMV\n" + cli.SubcommandHelpTemplate += "\nor something\n" + + cli.HelpFlag = cli.BoolFlag{Name: "halp"} + cli.BashCompletionFlag = cli.BoolFlag{Name: "compgen", Hidden: true} + cli.VersionFlag = cli.BoolFlag{Name: "print-version, V"} + + cli.HelpPrinter = func(w io.Writer, templ string, data interface{}) { + fmt.Fprintf(w, "best of luck to you\n") + } + cli.VersionPrinter = func(c *cli.Context) { + fmt.Fprintf(c.App.Writer, "version=%s\n", c.App.Version) + } + cli.OsExiter = func(c int) { + fmt.Fprintf(cli.ErrWriter, "refusing to exit %d\n", c) + } + cli.ErrWriter = ioutil.Discard + cli.FlagStringer = func(fl cli.Flag) string { + return fmt.Sprintf("\t\t%s", fl.GetName()) + } +} + +type hexWriter struct{} + +func (w *hexWriter) Write(p []byte) (int, error) { + for _, b := range p { + fmt.Printf("%x", b) + } + fmt.Printf("\n") + + return len(p), nil +} + +type genericType struct{ + s string +} + +func (g *genericType) Set(value string) error { + g.s = value + return nil +} + +func (g *genericType) String() string { + return g.s +} + +func main() { + app := cli.NewApp() + app.Name = "kənˈtrīv" + app.Version = "19.99.0" + app.Compiled = time.Now() + app.Authors = []cli.Author{ + cli.Author{ + Name: "Example Human", + Email: "human@example.com", + }, + } + app.Copyright = "(c) 1999 Serious Enterprise" + app.HelpName = "contrive" + app.Usage = "demonstrate available API" + app.UsageText = "contrive - demonstrating the available API" + app.ArgsUsage = "[args and such]" + app.Commands = []cli.Command{ + cli.Command{ + Name: "doo", + Aliases: []string{"do"}, + Category: "motion", + Usage: "do the doo", + UsageText: "doo - does the dooing", + Description: "no really, there is a lot of dooing to be done", + ArgsUsage: "[arrgh]", + Flags: []cli.Flag{ + cli.BoolFlag{Name: "forever, forevvarr"}, + }, + Subcommands: cli.Commands{ + cli.Command{ + Name: "wop", + Action: wopAction, + }, + }, + SkipFlagParsing: false, + HideHelp: false, + Hidden: false, + HelpName: "doo!", + BashComplete: func(c *cli.Context) { + fmt.Fprintf(c.App.Writer, "--better\n") + }, + Before: func(c *cli.Context) error { + fmt.Fprintf(c.App.Writer, "brace for impact\n") + return nil + }, + After: func(c *cli.Context) error { + fmt.Fprintf(c.App.Writer, "did we lose anyone?\n") + return nil + }, + Action: func(c *cli.Context) error { + c.Command.FullName() + c.Command.HasName("wop") + c.Command.Names() + c.Command.VisibleFlags() + fmt.Fprintf(c.App.Writer, "dodododododoodododddooooododododooo\n") + if c.Bool("forever") { + c.Command.Run(c) + } + return nil + }, + OnUsageError: func(c *cli.Context, err error, isSubcommand bool) error { + fmt.Fprintf(c.App.Writer, "for shame\n") + return err + }, + }, + } + app.Flags = []cli.Flag{ + cli.BoolFlag{Name: "fancy"}, + cli.BoolTFlag{Name: "fancier"}, + cli.DurationFlag{Name: "howlong, H", Value: time.Second * 3}, + cli.Float64Flag{Name: "howmuch"}, + cli.GenericFlag{Name: "wat", Value: &genericType{}}, + cli.Int64Flag{Name: "longdistance"}, + cli.Int64SliceFlag{Name: "intervals"}, + cli.IntFlag{Name: "distance"}, + cli.IntSliceFlag{Name: "times"}, + cli.StringFlag{Name: "dance-move, d"}, + cli.StringSliceFlag{Name: "names, N"}, + cli.UintFlag{Name: "age"}, + cli.Uint64Flag{Name: "bigage"}, + } + app.EnableBashCompletion = true + app.HideHelp = false + app.HideVersion = false + app.BashComplete = func(c *cli.Context) { + fmt.Fprintf(c.App.Writer, "lipstick\nkiss\nme\nlipstick\nringo\n") + } + app.Before = func(c *cli.Context) error { + fmt.Fprintf(c.App.Writer, "HEEEERE GOES\n") + return nil + } + app.After = func(c *cli.Context) error { + fmt.Fprintf(c.App.Writer, "Phew!\n") + return nil + } + app.CommandNotFound = func(c *cli.Context, command string) { + fmt.Fprintf(c.App.Writer, "Thar be no %q here.\n", command) + } + app.OnUsageError = func(c *cli.Context, err error, isSubcommand bool) error { + if isSubcommand { + return err + } + + fmt.Fprintf(c.App.Writer, "WRONG: %#v\n", err) + return nil + } + app.Action = func(c *cli.Context) error { + cli.DefaultAppComplete(c) + cli.HandleExitCoder(errors.New("not an exit coder, though")) + cli.ShowAppHelp(c) + cli.ShowCommandCompletions(c, "nope") + cli.ShowCommandHelp(c, "also-nope") + cli.ShowCompletions(c) + cli.ShowSubcommandHelp(c) + cli.ShowVersion(c) + + categories := c.App.Categories() + categories.AddCommand("sounds", cli.Command{ + Name: "bloop", + }) + + for _, category := range c.App.Categories() { + fmt.Fprintf(c.App.Writer, "%s\n", category.Name) + fmt.Fprintf(c.App.Writer, "%#v\n", category.Commands) + fmt.Fprintf(c.App.Writer, "%#v\n", category.VisibleCommands()) + } + + fmt.Printf("%#v\n", c.App.Command("doo")) + if c.Bool("infinite") { + c.App.Run([]string{"app", "doo", "wop"}) + } + + if c.Bool("forevar") { + c.App.RunAsSubcommand(c) + } + c.App.Setup() + fmt.Printf("%#v\n", c.App.VisibleCategories()) + fmt.Printf("%#v\n", c.App.VisibleCommands()) + fmt.Printf("%#v\n", c.App.VisibleFlags()) + + fmt.Printf("%#v\n", c.Args().First()) + if len(c.Args()) > 0 { + fmt.Printf("%#v\n", c.Args()[1]) + } + fmt.Printf("%#v\n", c.Args().Present()) + fmt.Printf("%#v\n", c.Args().Tail()) + + set := flag.NewFlagSet("contrive", 0) + nc := cli.NewContext(c.App, set, c) + + fmt.Printf("%#v\n", nc.Args()) + fmt.Printf("%#v\n", nc.Bool("nope")) + fmt.Printf("%#v\n", nc.BoolT("nerp")) + fmt.Printf("%#v\n", nc.Duration("howlong")) + fmt.Printf("%#v\n", nc.Float64("hay")) + fmt.Printf("%#v\n", nc.Generic("bloop")) + fmt.Printf("%#v\n", nc.Int64("bonk")) + fmt.Printf("%#v\n", nc.Int64Slice("burnks")) + fmt.Printf("%#v\n", nc.Int("bips")) + fmt.Printf("%#v\n", nc.IntSlice("blups")) + fmt.Printf("%#v\n", nc.String("snurt")) + fmt.Printf("%#v\n", nc.StringSlice("snurkles")) + fmt.Printf("%#v\n", nc.Uint("flub")) + fmt.Printf("%#v\n", nc.Uint64("florb")) + fmt.Printf("%#v\n", nc.GlobalBool("global-nope")) + fmt.Printf("%#v\n", nc.GlobalBoolT("global-nerp")) + fmt.Printf("%#v\n", nc.GlobalDuration("global-howlong")) + fmt.Printf("%#v\n", nc.GlobalFloat64("global-hay")) + fmt.Printf("%#v\n", nc.GlobalGeneric("global-bloop")) + fmt.Printf("%#v\n", nc.GlobalInt("global-bips")) + fmt.Printf("%#v\n", nc.GlobalIntSlice("global-blups")) + fmt.Printf("%#v\n", nc.GlobalString("global-snurt")) + fmt.Printf("%#v\n", nc.GlobalStringSlice("global-snurkles")) + + fmt.Printf("%#v\n", nc.FlagNames()) + fmt.Printf("%#v\n", nc.GlobalFlagNames()) + fmt.Printf("%#v\n", nc.GlobalIsSet("wat")) + fmt.Printf("%#v\n", nc.GlobalSet("wat", "nope")) + fmt.Printf("%#v\n", nc.NArg()) + fmt.Printf("%#v\n", nc.NumFlags()) + fmt.Printf("%#v\n", nc.Parent()) + + nc.Set("wat", "also-nope") + + ec := cli.NewExitError("ohwell", 86) + fmt.Fprintf(c.App.Writer, "%d", ec.ExitCode()) + fmt.Printf("made it!\n") + return ec + } + + if os.Getenv("HEXY") != "" { + app.Writer = &hexWriter{} + app.ErrWriter = &hexWriter{} + } + + app.Metadata = map[string]interface{}{ + "layers": "many", + "explicable": false, + "whatever-values": 19.99, + } + + app.Run(os.Args) +} + +func wopAction(c *cli.Context) error { + fmt.Fprintf(c.App.Writer, ":wave: over here, eh\n") + return nil +} +``` + +## Contribution Guidelines + +Feel free to put up a pull request to fix a bug or maybe add a feature. I will +give it a code review and make sure that it does not break backwards +compatibility. If I or any other collaborators agree that it is in line with +the vision of the project, we will work with you to get the code into +a mergeable state and merge it into the master branch. + +If you have contributed something significant to the project, we will most +likely add you as a collaborator. As a collaborator you are given the ability +to merge others pull requests. It is very important that new code does not +break existing code, so be careful about what code you do choose to merge. + +If you feel like you have contributed to the project but have not yet been +added as a collaborator, we probably forgot to add you, please open an issue. diff --git a/vendor/github.com/urfave/cli/altsrc/altsrc.go b/vendor/github.com/urfave/cli/altsrc/altsrc.go new file mode 100644 index 0000000..ac34bf6 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/altsrc.go @@ -0,0 +1,3 @@ +package altsrc + +//go:generate python ../generate-flag-types altsrc -i ../flag-types.json -o flag_generated.go diff --git a/vendor/github.com/urfave/cli/altsrc/flag.go b/vendor/github.com/urfave/cli/altsrc/flag.go new file mode 100644 index 0000000..84ef009 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/flag.go @@ -0,0 +1,261 @@ +package altsrc + +import ( + "fmt" + "strconv" + "strings" + "syscall" + + "gopkg.in/urfave/cli.v1" +) + +// FlagInputSourceExtension is an extension interface of cli.Flag that +// allows a value to be set on the existing parsed flags. +type FlagInputSourceExtension interface { + cli.Flag + ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error +} + +// ApplyInputSourceValues iterates over all provided flags and +// executes ApplyInputSourceValue on flags implementing the +// FlagInputSourceExtension interface to initialize these flags +// to an alternate input source. +func ApplyInputSourceValues(context *cli.Context, inputSourceContext InputSourceContext, flags []cli.Flag) error { + for _, f := range flags { + inputSourceExtendedFlag, isType := f.(FlagInputSourceExtension) + if isType { + err := inputSourceExtendedFlag.ApplyInputSourceValue(context, inputSourceContext) + if err != nil { + return err + } + } + } + + return nil +} + +// InitInputSource is used to to setup an InputSourceContext on a cli.Command Before method. It will create a new +// input source based on the func provided. If there is no error it will then apply the new input source to any flags +// that are supported by the input source +func InitInputSource(flags []cli.Flag, createInputSource func() (InputSourceContext, error)) cli.BeforeFunc { + return func(context *cli.Context) error { + inputSource, err := createInputSource() + if err != nil { + return fmt.Errorf("Unable to create input source: inner error: \n'%v'", err.Error()) + } + + return ApplyInputSourceValues(context, inputSource, flags) + } +} + +// InitInputSourceWithContext is used to to setup an InputSourceContext on a cli.Command Before method. It will create a new +// input source based on the func provided with potentially using existing cli.Context values to initialize itself. If there is +// no error it will then apply the new input source to any flags that are supported by the input source +func InitInputSourceWithContext(flags []cli.Flag, createInputSource func(context *cli.Context) (InputSourceContext, error)) cli.BeforeFunc { + return func(context *cli.Context) error { + inputSource, err := createInputSource(context) + if err != nil { + return fmt.Errorf("Unable to create input source with context: inner error: \n'%v'", err.Error()) + } + + return ApplyInputSourceValues(context, inputSource, flags) + } +} + +// ApplyInputSourceValue applies a generic value to the flagSet if required +func (f *GenericFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !context.IsSet(f.Name) && !isEnvVarSet(f.EnvVar) { + value, err := isc.Generic(f.GenericFlag.Name) + if err != nil { + return err + } + if value != nil { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, value.String()) + }) + } + } + } + + return nil +} + +// ApplyInputSourceValue applies a StringSlice value to the flagSet if required +func (f *StringSliceFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !context.IsSet(f.Name) && !isEnvVarSet(f.EnvVar) { + value, err := isc.StringSlice(f.StringSliceFlag.Name) + if err != nil { + return err + } + if value != nil { + var sliceValue cli.StringSlice = value + eachName(f.Name, func(name string) { + underlyingFlag := f.set.Lookup(f.Name) + if underlyingFlag != nil { + underlyingFlag.Value = &sliceValue + } + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a IntSlice value if required +func (f *IntSliceFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !context.IsSet(f.Name) && !isEnvVarSet(f.EnvVar) { + value, err := isc.IntSlice(f.IntSliceFlag.Name) + if err != nil { + return err + } + if value != nil { + var sliceValue cli.IntSlice = value + eachName(f.Name, func(name string) { + underlyingFlag := f.set.Lookup(f.Name) + if underlyingFlag != nil { + underlyingFlag.Value = &sliceValue + } + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a Bool value to the flagSet if required +func (f *BoolFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !context.IsSet(f.Name) && !isEnvVarSet(f.EnvVar) { + value, err := isc.Bool(f.BoolFlag.Name) + if err != nil { + return err + } + if value { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, strconv.FormatBool(value)) + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a BoolT value to the flagSet if required +func (f *BoolTFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !context.IsSet(f.Name) && !isEnvVarSet(f.EnvVar) { + value, err := isc.BoolT(f.BoolTFlag.Name) + if err != nil { + return err + } + if !value { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, strconv.FormatBool(value)) + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a String value to the flagSet if required +func (f *StringFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !(context.IsSet(f.Name) || isEnvVarSet(f.EnvVar)) { + value, err := isc.String(f.StringFlag.Name) + if err != nil { + return err + } + if value != "" { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, value) + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a int value to the flagSet if required +func (f *IntFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !(context.IsSet(f.Name) || isEnvVarSet(f.EnvVar)) { + value, err := isc.Int(f.IntFlag.Name) + if err != nil { + return err + } + if value > 0 { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, strconv.FormatInt(int64(value), 10)) + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a Duration value to the flagSet if required +func (f *DurationFlag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !(context.IsSet(f.Name) || isEnvVarSet(f.EnvVar)) { + value, err := isc.Duration(f.DurationFlag.Name) + if err != nil { + return err + } + if value > 0 { + eachName(f.Name, func(name string) { + f.set.Set(f.Name, value.String()) + }) + } + } + } + return nil +} + +// ApplyInputSourceValue applies a Float64 value to the flagSet if required +func (f *Float64Flag) ApplyInputSourceValue(context *cli.Context, isc InputSourceContext) error { + if f.set != nil { + if !(context.IsSet(f.Name) || isEnvVarSet(f.EnvVar)) { + value, err := isc.Float64(f.Float64Flag.Name) + if err != nil { + return err + } + if value > 0 { + floatStr := float64ToString(value) + eachName(f.Name, func(name string) { + f.set.Set(f.Name, floatStr) + }) + } + } + } + return nil +} + +func isEnvVarSet(envVars string) bool { + for _, envVar := range strings.Split(envVars, ",") { + envVar = strings.TrimSpace(envVar) + if _, ok := syscall.Getenv(envVar); ok { + // TODO: Can't use this for bools as + // set means that it was true or false based on + // Bool flag type, should work for other types + return true + } + } + + return false +} + +func float64ToString(f float64) string { + return fmt.Sprintf("%v", f) +} + +func eachName(longName string, fn func(string)) { + parts := strings.Split(longName, ",") + for _, name := range parts { + name = strings.Trim(name, " ") + fn(name) + } +} diff --git a/vendor/github.com/urfave/cli/altsrc/flag_generated.go b/vendor/github.com/urfave/cli/altsrc/flag_generated.go new file mode 100644 index 0000000..0aeb0b0 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/flag_generated.go @@ -0,0 +1,347 @@ +package altsrc + +import ( + "flag" + + "gopkg.in/urfave/cli.v1" +) + +// WARNING: This file is generated! + +// BoolFlag is the flag type that wraps cli.BoolFlag to allow +// for other values to be specified +type BoolFlag struct { + cli.BoolFlag + set *flag.FlagSet +} + +// NewBoolFlag creates a new BoolFlag +func NewBoolFlag(fl cli.BoolFlag) *BoolFlag { + return &BoolFlag{BoolFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped BoolFlag.Apply +func (f *BoolFlag) Apply(set *flag.FlagSet) { + f.set = set + f.BoolFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped BoolFlag.ApplyWithError +func (f *BoolFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.BoolFlag.ApplyWithError(set) +} + +// BoolTFlag is the flag type that wraps cli.BoolTFlag to allow +// for other values to be specified +type BoolTFlag struct { + cli.BoolTFlag + set *flag.FlagSet +} + +// NewBoolTFlag creates a new BoolTFlag +func NewBoolTFlag(fl cli.BoolTFlag) *BoolTFlag { + return &BoolTFlag{BoolTFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped BoolTFlag.Apply +func (f *BoolTFlag) Apply(set *flag.FlagSet) { + f.set = set + f.BoolTFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped BoolTFlag.ApplyWithError +func (f *BoolTFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.BoolTFlag.ApplyWithError(set) +} + +// DurationFlag is the flag type that wraps cli.DurationFlag to allow +// for other values to be specified +type DurationFlag struct { + cli.DurationFlag + set *flag.FlagSet +} + +// NewDurationFlag creates a new DurationFlag +func NewDurationFlag(fl cli.DurationFlag) *DurationFlag { + return &DurationFlag{DurationFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped DurationFlag.Apply +func (f *DurationFlag) Apply(set *flag.FlagSet) { + f.set = set + f.DurationFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped DurationFlag.ApplyWithError +func (f *DurationFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.DurationFlag.ApplyWithError(set) +} + +// Float64Flag is the flag type that wraps cli.Float64Flag to allow +// for other values to be specified +type Float64Flag struct { + cli.Float64Flag + set *flag.FlagSet +} + +// NewFloat64Flag creates a new Float64Flag +func NewFloat64Flag(fl cli.Float64Flag) *Float64Flag { + return &Float64Flag{Float64Flag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped Float64Flag.Apply +func (f *Float64Flag) Apply(set *flag.FlagSet) { + f.set = set + f.Float64Flag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped Float64Flag.ApplyWithError +func (f *Float64Flag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.Float64Flag.ApplyWithError(set) +} + +// GenericFlag is the flag type that wraps cli.GenericFlag to allow +// for other values to be specified +type GenericFlag struct { + cli.GenericFlag + set *flag.FlagSet +} + +// NewGenericFlag creates a new GenericFlag +func NewGenericFlag(fl cli.GenericFlag) *GenericFlag { + return &GenericFlag{GenericFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped GenericFlag.Apply +func (f *GenericFlag) Apply(set *flag.FlagSet) { + f.set = set + f.GenericFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped GenericFlag.ApplyWithError +func (f *GenericFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.GenericFlag.ApplyWithError(set) +} + +// Int64Flag is the flag type that wraps cli.Int64Flag to allow +// for other values to be specified +type Int64Flag struct { + cli.Int64Flag + set *flag.FlagSet +} + +// NewInt64Flag creates a new Int64Flag +func NewInt64Flag(fl cli.Int64Flag) *Int64Flag { + return &Int64Flag{Int64Flag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped Int64Flag.Apply +func (f *Int64Flag) Apply(set *flag.FlagSet) { + f.set = set + f.Int64Flag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped Int64Flag.ApplyWithError +func (f *Int64Flag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.Int64Flag.ApplyWithError(set) +} + +// IntFlag is the flag type that wraps cli.IntFlag to allow +// for other values to be specified +type IntFlag struct { + cli.IntFlag + set *flag.FlagSet +} + +// NewIntFlag creates a new IntFlag +func NewIntFlag(fl cli.IntFlag) *IntFlag { + return &IntFlag{IntFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped IntFlag.Apply +func (f *IntFlag) Apply(set *flag.FlagSet) { + f.set = set + f.IntFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped IntFlag.ApplyWithError +func (f *IntFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.IntFlag.ApplyWithError(set) +} + +// IntSliceFlag is the flag type that wraps cli.IntSliceFlag to allow +// for other values to be specified +type IntSliceFlag struct { + cli.IntSliceFlag + set *flag.FlagSet +} + +// NewIntSliceFlag creates a new IntSliceFlag +func NewIntSliceFlag(fl cli.IntSliceFlag) *IntSliceFlag { + return &IntSliceFlag{IntSliceFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped IntSliceFlag.Apply +func (f *IntSliceFlag) Apply(set *flag.FlagSet) { + f.set = set + f.IntSliceFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped IntSliceFlag.ApplyWithError +func (f *IntSliceFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.IntSliceFlag.ApplyWithError(set) +} + +// Int64SliceFlag is the flag type that wraps cli.Int64SliceFlag to allow +// for other values to be specified +type Int64SliceFlag struct { + cli.Int64SliceFlag + set *flag.FlagSet +} + +// NewInt64SliceFlag creates a new Int64SliceFlag +func NewInt64SliceFlag(fl cli.Int64SliceFlag) *Int64SliceFlag { + return &Int64SliceFlag{Int64SliceFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped Int64SliceFlag.Apply +func (f *Int64SliceFlag) Apply(set *flag.FlagSet) { + f.set = set + f.Int64SliceFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped Int64SliceFlag.ApplyWithError +func (f *Int64SliceFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.Int64SliceFlag.ApplyWithError(set) +} + +// StringFlag is the flag type that wraps cli.StringFlag to allow +// for other values to be specified +type StringFlag struct { + cli.StringFlag + set *flag.FlagSet +} + +// NewStringFlag creates a new StringFlag +func NewStringFlag(fl cli.StringFlag) *StringFlag { + return &StringFlag{StringFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped StringFlag.Apply +func (f *StringFlag) Apply(set *flag.FlagSet) { + f.set = set + f.StringFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped StringFlag.ApplyWithError +func (f *StringFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.StringFlag.ApplyWithError(set) +} + +// StringSliceFlag is the flag type that wraps cli.StringSliceFlag to allow +// for other values to be specified +type StringSliceFlag struct { + cli.StringSliceFlag + set *flag.FlagSet +} + +// NewStringSliceFlag creates a new StringSliceFlag +func NewStringSliceFlag(fl cli.StringSliceFlag) *StringSliceFlag { + return &StringSliceFlag{StringSliceFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped StringSliceFlag.Apply +func (f *StringSliceFlag) Apply(set *flag.FlagSet) { + f.set = set + f.StringSliceFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped StringSliceFlag.ApplyWithError +func (f *StringSliceFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.StringSliceFlag.ApplyWithError(set) +} + +// Uint64Flag is the flag type that wraps cli.Uint64Flag to allow +// for other values to be specified +type Uint64Flag struct { + cli.Uint64Flag + set *flag.FlagSet +} + +// NewUint64Flag creates a new Uint64Flag +func NewUint64Flag(fl cli.Uint64Flag) *Uint64Flag { + return &Uint64Flag{Uint64Flag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped Uint64Flag.Apply +func (f *Uint64Flag) Apply(set *flag.FlagSet) { + f.set = set + f.Uint64Flag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped Uint64Flag.ApplyWithError +func (f *Uint64Flag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.Uint64Flag.ApplyWithError(set) +} + +// UintFlag is the flag type that wraps cli.UintFlag to allow +// for other values to be specified +type UintFlag struct { + cli.UintFlag + set *flag.FlagSet +} + +// NewUintFlag creates a new UintFlag +func NewUintFlag(fl cli.UintFlag) *UintFlag { + return &UintFlag{UintFlag: fl, set: nil} +} + +// Apply saves the flagSet for later usage calls, then calls the +// wrapped UintFlag.Apply +func (f *UintFlag) Apply(set *flag.FlagSet) { + f.set = set + f.UintFlag.Apply(set) +} + +// ApplyWithError saves the flagSet for later usage calls, then calls the +// wrapped UintFlag.ApplyWithError +func (f *UintFlag) ApplyWithError(set *flag.FlagSet) error { + f.set = set + return f.UintFlag.ApplyWithError(set) +} diff --git a/vendor/github.com/urfave/cli/altsrc/flag_test.go b/vendor/github.com/urfave/cli/altsrc/flag_test.go new file mode 100644 index 0000000..cd18294 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/flag_test.go @@ -0,0 +1,336 @@ +package altsrc + +import ( + "flag" + "fmt" + "os" + "strings" + "testing" + "time" + + "gopkg.in/urfave/cli.v1" +) + +type testApplyInputSource struct { + Flag FlagInputSourceExtension + FlagName string + FlagSetName string + Expected string + ContextValueString string + ContextValue flag.Value + EnvVarValue string + EnvVarName string + MapValue interface{} +} + +func TestGenericApplyInputSourceValue(t *testing.T) { + v := &Parser{"abc", "def"} + c := runTest(t, testApplyInputSource{ + Flag: NewGenericFlag(cli.GenericFlag{Name: "test", Value: &Parser{}}), + FlagName: "test", + MapValue: v, + }) + expect(t, v, c.Generic("test")) +} + +func TestGenericApplyInputSourceMethodContextSet(t *testing.T) { + p := &Parser{"abc", "def"} + c := runTest(t, testApplyInputSource{ + Flag: NewGenericFlag(cli.GenericFlag{Name: "test", Value: &Parser{}}), + FlagName: "test", + MapValue: &Parser{"efg", "hig"}, + ContextValueString: p.String(), + }) + expect(t, p, c.Generic("test")) +} + +func TestGenericApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewGenericFlag(cli.GenericFlag{Name: "test", Value: &Parser{}, EnvVar: "TEST"}), + FlagName: "test", + MapValue: &Parser{"efg", "hij"}, + EnvVarName: "TEST", + EnvVarValue: "abc,def", + }) + expect(t, &Parser{"abc", "def"}, c.Generic("test")) +} + +func TestStringSliceApplyInputSourceValue(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringSliceFlag(cli.StringSliceFlag{Name: "test"}), + FlagName: "test", + MapValue: []interface{}{"hello", "world"}, + }) + expect(t, c.StringSlice("test"), []string{"hello", "world"}) +} + +func TestStringSliceApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringSliceFlag(cli.StringSliceFlag{Name: "test"}), + FlagName: "test", + MapValue: []interface{}{"hello", "world"}, + ContextValueString: "ohno", + }) + expect(t, c.StringSlice("test"), []string{"ohno"}) +} + +func TestStringSliceApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringSliceFlag(cli.StringSliceFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: []interface{}{"hello", "world"}, + EnvVarName: "TEST", + EnvVarValue: "oh,no", + }) + expect(t, c.StringSlice("test"), []string{"oh", "no"}) +} + +func TestIntSliceApplyInputSourceValue(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntSliceFlag(cli.IntSliceFlag{Name: "test"}), + FlagName: "test", + MapValue: []interface{}{1, 2}, + }) + expect(t, c.IntSlice("test"), []int{1, 2}) +} + +func TestIntSliceApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntSliceFlag(cli.IntSliceFlag{Name: "test"}), + FlagName: "test", + MapValue: []interface{}{1, 2}, + ContextValueString: "3", + }) + expect(t, c.IntSlice("test"), []int{3}) +} + +func TestIntSliceApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntSliceFlag(cli.IntSliceFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: []interface{}{1, 2}, + EnvVarName: "TEST", + EnvVarValue: "3,4", + }) + expect(t, c.IntSlice("test"), []int{3, 4}) +} + +func TestBoolApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolFlag(cli.BoolFlag{Name: "test"}), + FlagName: "test", + MapValue: true, + }) + expect(t, true, c.Bool("test")) +} + +func TestBoolApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolFlag(cli.BoolFlag{Name: "test"}), + FlagName: "test", + MapValue: false, + ContextValueString: "true", + }) + expect(t, true, c.Bool("test")) +} + +func TestBoolApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolFlag(cli.BoolFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: false, + EnvVarName: "TEST", + EnvVarValue: "true", + }) + expect(t, true, c.Bool("test")) +} + +func TestBoolTApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolTFlag(cli.BoolTFlag{Name: "test"}), + FlagName: "test", + MapValue: false, + }) + expect(t, false, c.BoolT("test")) +} + +func TestBoolTApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolTFlag(cli.BoolTFlag{Name: "test"}), + FlagName: "test", + MapValue: true, + ContextValueString: "false", + }) + expect(t, false, c.BoolT("test")) +} + +func TestBoolTApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewBoolTFlag(cli.BoolTFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: true, + EnvVarName: "TEST", + EnvVarValue: "false", + }) + expect(t, false, c.BoolT("test")) +} + +func TestStringApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringFlag(cli.StringFlag{Name: "test"}), + FlagName: "test", + MapValue: "hello", + }) + expect(t, "hello", c.String("test")) +} + +func TestStringApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringFlag(cli.StringFlag{Name: "test"}), + FlagName: "test", + MapValue: "hello", + ContextValueString: "goodbye", + }) + expect(t, "goodbye", c.String("test")) +} + +func TestStringApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewStringFlag(cli.StringFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: "hello", + EnvVarName: "TEST", + EnvVarValue: "goodbye", + }) + expect(t, "goodbye", c.String("test")) +} + +func TestIntApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntFlag(cli.IntFlag{Name: "test"}), + FlagName: "test", + MapValue: 15, + }) + expect(t, 15, c.Int("test")) +} + +func TestIntApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntFlag(cli.IntFlag{Name: "test"}), + FlagName: "test", + MapValue: 15, + ContextValueString: "7", + }) + expect(t, 7, c.Int("test")) +} + +func TestIntApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewIntFlag(cli.IntFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: 15, + EnvVarName: "TEST", + EnvVarValue: "12", + }) + expect(t, 12, c.Int("test")) +} + +func TestDurationApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewDurationFlag(cli.DurationFlag{Name: "test"}), + FlagName: "test", + MapValue: time.Duration(30 * time.Second), + }) + expect(t, time.Duration(30*time.Second), c.Duration("test")) +} + +func TestDurationApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewDurationFlag(cli.DurationFlag{Name: "test"}), + FlagName: "test", + MapValue: time.Duration(30 * time.Second), + ContextValueString: time.Duration(15 * time.Second).String(), + }) + expect(t, time.Duration(15*time.Second), c.Duration("test")) +} + +func TestDurationApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewDurationFlag(cli.DurationFlag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: time.Duration(30 * time.Second), + EnvVarName: "TEST", + EnvVarValue: time.Duration(15 * time.Second).String(), + }) + expect(t, time.Duration(15*time.Second), c.Duration("test")) +} + +func TestFloat64ApplyInputSourceMethodSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewFloat64Flag(cli.Float64Flag{Name: "test"}), + FlagName: "test", + MapValue: 1.3, + }) + expect(t, 1.3, c.Float64("test")) +} + +func TestFloat64ApplyInputSourceMethodContextSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewFloat64Flag(cli.Float64Flag{Name: "test"}), + FlagName: "test", + MapValue: 1.3, + ContextValueString: fmt.Sprintf("%v", 1.4), + }) + expect(t, 1.4, c.Float64("test")) +} + +func TestFloat64ApplyInputSourceMethodEnvVarSet(t *testing.T) { + c := runTest(t, testApplyInputSource{ + Flag: NewFloat64Flag(cli.Float64Flag{Name: "test", EnvVar: "TEST"}), + FlagName: "test", + MapValue: 1.3, + EnvVarName: "TEST", + EnvVarValue: fmt.Sprintf("%v", 1.4), + }) + expect(t, 1.4, c.Float64("test")) +} + +func runTest(t *testing.T, test testApplyInputSource) *cli.Context { + inputSource := &MapInputSource{valueMap: map[interface{}]interface{}{test.FlagName: test.MapValue}} + set := flag.NewFlagSet(test.FlagSetName, flag.ContinueOnError) + c := cli.NewContext(nil, set, nil) + if test.EnvVarName != "" && test.EnvVarValue != "" { + os.Setenv(test.EnvVarName, test.EnvVarValue) + defer os.Setenv(test.EnvVarName, "") + } + + test.Flag.Apply(set) + if test.ContextValue != nil { + flag := set.Lookup(test.FlagName) + flag.Value = test.ContextValue + } + if test.ContextValueString != "" { + set.Set(test.FlagName, test.ContextValueString) + } + test.Flag.ApplyInputSourceValue(c, inputSource) + + return c +} + +type Parser [2]string + +func (p *Parser) Set(value string) error { + parts := strings.Split(value, ",") + if len(parts) != 2 { + return fmt.Errorf("invalid format") + } + + (*p)[0] = parts[0] + (*p)[1] = parts[1] + + return nil +} + +func (p *Parser) String() string { + return fmt.Sprintf("%s,%s", p[0], p[1]) +} diff --git a/vendor/github.com/urfave/cli/altsrc/helpers_test.go b/vendor/github.com/urfave/cli/altsrc/helpers_test.go new file mode 100644 index 0000000..3b7f7e9 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/helpers_test.go @@ -0,0 +1,18 @@ +package altsrc + +import ( + "reflect" + "testing" +) + +func expect(t *testing.T, a interface{}, b interface{}) { + if !reflect.DeepEqual(b, a) { + t.Errorf("Expected %#v (type %v) - Got %#v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} + +func refute(t *testing.T, a interface{}, b interface{}) { + if a == b { + t.Errorf("Did not expect %v (type %v) - Got %v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} diff --git a/vendor/github.com/urfave/cli/altsrc/input_source_context.go b/vendor/github.com/urfave/cli/altsrc/input_source_context.go new file mode 100644 index 0000000..276dcda --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/input_source_context.go @@ -0,0 +1,21 @@ +package altsrc + +import ( + "time" + + "gopkg.in/urfave/cli.v1" +) + +// InputSourceContext is an interface used to allow +// other input sources to be implemented as needed. +type InputSourceContext interface { + Int(name string) (int, error) + Duration(name string) (time.Duration, error) + Float64(name string) (float64, error) + String(name string) (string, error) + StringSlice(name string) ([]string, error) + IntSlice(name string) ([]int, error) + Generic(name string) (cli.Generic, error) + Bool(name string) (bool, error) + BoolT(name string) (bool, error) +} diff --git a/vendor/github.com/urfave/cli/altsrc/map_input_source.go b/vendor/github.com/urfave/cli/altsrc/map_input_source.go new file mode 100644 index 0000000..b3169e0 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/map_input_source.go @@ -0,0 +1,262 @@ +package altsrc + +import ( + "fmt" + "reflect" + "strings" + "time" + + "gopkg.in/urfave/cli.v1" +) + +// MapInputSource implements InputSourceContext to return +// data from the map that is loaded. +type MapInputSource struct { + valueMap map[interface{}]interface{} +} + +// nestedVal checks if the name has '.' delimiters. +// If so, it tries to traverse the tree by the '.' delimited sections to find +// a nested value for the key. +func nestedVal(name string, tree map[interface{}]interface{}) (interface{}, bool) { + if sections := strings.Split(name, "."); len(sections) > 1 { + node := tree + for _, section := range sections[:len(sections)-1] { + if child, ok := node[section]; !ok { + return nil, false + } else { + if ctype, ok := child.(map[interface{}]interface{}); !ok { + return nil, false + } else { + node = ctype + } + } + } + if val, ok := node[sections[len(sections)-1]]; ok { + return val, true + } + } + return nil, false +} + +// Int returns an int from the map if it exists otherwise returns 0 +func (fsm *MapInputSource) Int(name string) (int, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(int) + if !isType { + return 0, incorrectTypeForFlagError(name, "int", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(int) + if !isType { + return 0, incorrectTypeForFlagError(name, "int", nestedGenericValue) + } + return otherValue, nil + } + + return 0, nil +} + +// Duration returns a duration from the map if it exists otherwise returns 0 +func (fsm *MapInputSource) Duration(name string) (time.Duration, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(time.Duration) + if !isType { + return 0, incorrectTypeForFlagError(name, "duration", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(time.Duration) + if !isType { + return 0, incorrectTypeForFlagError(name, "duration", nestedGenericValue) + } + return otherValue, nil + } + + return 0, nil +} + +// Float64 returns an float64 from the map if it exists otherwise returns 0 +func (fsm *MapInputSource) Float64(name string) (float64, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(float64) + if !isType { + return 0, incorrectTypeForFlagError(name, "float64", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(float64) + if !isType { + return 0, incorrectTypeForFlagError(name, "float64", nestedGenericValue) + } + return otherValue, nil + } + + return 0, nil +} + +// String returns a string from the map if it exists otherwise returns an empty string +func (fsm *MapInputSource) String(name string) (string, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(string) + if !isType { + return "", incorrectTypeForFlagError(name, "string", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(string) + if !isType { + return "", incorrectTypeForFlagError(name, "string", nestedGenericValue) + } + return otherValue, nil + } + + return "", nil +} + +// StringSlice returns an []string from the map if it exists otherwise returns nil +func (fsm *MapInputSource) StringSlice(name string) ([]string, error) { + otherGenericValue, exists := fsm.valueMap[name] + if !exists { + otherGenericValue, exists = nestedVal(name, fsm.valueMap) + if !exists { + return nil, nil + } + } + + otherValue, isType := otherGenericValue.([]interface{}) + if !isType { + return nil, incorrectTypeForFlagError(name, "[]interface{}", otherGenericValue) + } + + var stringSlice = make([]string, 0, len(otherValue)) + for i, v := range otherValue { + stringValue, isType := v.(string) + + if !isType { + return nil, incorrectTypeForFlagError(fmt.Sprintf("%s[%d]", name, i), "string", v) + } + + stringSlice = append(stringSlice, stringValue) + } + + return stringSlice, nil +} + +// IntSlice returns an []int from the map if it exists otherwise returns nil +func (fsm *MapInputSource) IntSlice(name string) ([]int, error) { + otherGenericValue, exists := fsm.valueMap[name] + if !exists { + otherGenericValue, exists = nestedVal(name, fsm.valueMap) + if !exists { + return nil, nil + } + } + + otherValue, isType := otherGenericValue.([]interface{}) + if !isType { + return nil, incorrectTypeForFlagError(name, "[]interface{}", otherGenericValue) + } + + var intSlice = make([]int, 0, len(otherValue)) + for i, v := range otherValue { + intValue, isType := v.(int) + + if !isType { + return nil, incorrectTypeForFlagError(fmt.Sprintf("%s[%d]", name, i), "int", v) + } + + intSlice = append(intSlice, intValue) + } + + return intSlice, nil +} + +// Generic returns an cli.Generic from the map if it exists otherwise returns nil +func (fsm *MapInputSource) Generic(name string) (cli.Generic, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(cli.Generic) + if !isType { + return nil, incorrectTypeForFlagError(name, "cli.Generic", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(cli.Generic) + if !isType { + return nil, incorrectTypeForFlagError(name, "cli.Generic", nestedGenericValue) + } + return otherValue, nil + } + + return nil, nil +} + +// Bool returns an bool from the map otherwise returns false +func (fsm *MapInputSource) Bool(name string) (bool, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(bool) + if !isType { + return false, incorrectTypeForFlagError(name, "bool", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(bool) + if !isType { + return false, incorrectTypeForFlagError(name, "bool", nestedGenericValue) + } + return otherValue, nil + } + + return false, nil +} + +// BoolT returns an bool from the map otherwise returns true +func (fsm *MapInputSource) BoolT(name string) (bool, error) { + otherGenericValue, exists := fsm.valueMap[name] + if exists { + otherValue, isType := otherGenericValue.(bool) + if !isType { + return true, incorrectTypeForFlagError(name, "bool", otherGenericValue) + } + return otherValue, nil + } + nestedGenericValue, exists := nestedVal(name, fsm.valueMap) + if exists { + otherValue, isType := nestedGenericValue.(bool) + if !isType { + return true, incorrectTypeForFlagError(name, "bool", nestedGenericValue) + } + return otherValue, nil + } + + return true, nil +} + +func incorrectTypeForFlagError(name, expectedTypeName string, value interface{}) error { + valueType := reflect.TypeOf(value) + valueTypeName := "" + if valueType != nil { + valueTypeName = valueType.Name() + } + + return fmt.Errorf("Mismatched type for flag '%s'. Expected '%s' but actual is '%s'", name, expectedTypeName, valueTypeName) +} diff --git a/vendor/github.com/urfave/cli/altsrc/toml_command_test.go b/vendor/github.com/urfave/cli/altsrc/toml_command_test.go new file mode 100644 index 0000000..a5053d4 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/toml_command_test.go @@ -0,0 +1,310 @@ +// Disabling building of toml support in cases where golang is 1.0 or 1.1 +// as the encoding library is not implemented or supported. + +// +build go1.2 + +package altsrc + +import ( + "flag" + "io/ioutil" + "os" + "testing" + + "gopkg.in/urfave/cli.v1" +) + +func TestCommandTomFileTest(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("test = 15"), 0666) + defer os.Remove("current.toml") + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestGlobalEnvVarWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("test = 15"), 0666) + defer os.Remove("current.toml") + + os.Setenv("THE_TEST", "10") + defer os.Setenv("THE_TEST", "") + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 10) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestGlobalEnvVarWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("[top]\ntest = 15"), 0666) + defer os.Remove("current.toml") + + os.Setenv("THE_TEST", "10") + defer os.Setenv("THE_TEST", "") + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 10) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestSpecifiedFlagWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("test = 15"), 0666) + defer os.Remove("current.toml") + + test := []string{"test-cmd", "--load", "current.toml", "--test", "7"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 7) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestSpecifiedFlagWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte(`[top] + test = 15`), 0666) + defer os.Remove("current.toml") + + test := []string{"test-cmd", "--load", "current.toml", "--top.test", "7"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 7) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestDefaultValueFileWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("test = 15"), 0666) + defer os.Remove("current.toml") + + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", Value: 7}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileTestDefaultValueFileWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("[top]\ntest = 15"), 0666) + defer os.Remove("current.toml") + + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", Value: 7}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileFlagHasDefaultGlobalEnvTomlSetGlobalEnvWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("test = 15"), 0666) + defer os.Remove("current.toml") + + os.Setenv("THE_TEST", "11") + defer os.Setenv("THE_TEST", "") + + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 11) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", Value: 7, EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandTomlFileFlagHasDefaultGlobalEnvTomlSetGlobalEnvWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.toml", []byte("[top]\ntest = 15"), 0666) + defer os.Remove("current.toml") + + os.Setenv("THE_TEST", "11") + defer os.Setenv("THE_TEST", "") + + test := []string{"test-cmd", "--load", "current.toml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 11) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", Value: 7, EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewTomlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} diff --git a/vendor/github.com/urfave/cli/altsrc/toml_file_loader.go b/vendor/github.com/urfave/cli/altsrc/toml_file_loader.go new file mode 100644 index 0000000..37870fc --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/toml_file_loader.go @@ -0,0 +1,113 @@ +// Disabling building of toml support in cases where golang is 1.0 or 1.1 +// as the encoding library is not implemented or supported. + +// +build go1.2 + +package altsrc + +import ( + "fmt" + "reflect" + + "github.com/BurntSushi/toml" + "gopkg.in/urfave/cli.v1" +) + +type tomlMap struct { + Map map[interface{}]interface{} +} + +func unmarshalMap(i interface{}) (ret map[interface{}]interface{}, err error) { + ret = make(map[interface{}]interface{}) + m := i.(map[string]interface{}) + for key, val := range m { + v := reflect.ValueOf(val) + switch v.Kind() { + case reflect.Bool: + ret[key] = val.(bool) + case reflect.String: + ret[key] = val.(string) + case reflect.Int: + ret[key] = int(val.(int)) + case reflect.Int8: + ret[key] = int(val.(int8)) + case reflect.Int16: + ret[key] = int(val.(int16)) + case reflect.Int32: + ret[key] = int(val.(int32)) + case reflect.Int64: + ret[key] = int(val.(int64)) + case reflect.Uint: + ret[key] = int(val.(uint)) + case reflect.Uint8: + ret[key] = int(val.(uint8)) + case reflect.Uint16: + ret[key] = int(val.(uint16)) + case reflect.Uint32: + ret[key] = int(val.(uint32)) + case reflect.Uint64: + ret[key] = int(val.(uint64)) + case reflect.Float32: + ret[key] = float64(val.(float32)) + case reflect.Float64: + ret[key] = float64(val.(float64)) + case reflect.Map: + if tmp, err := unmarshalMap(val); err == nil { + ret[key] = tmp + } else { + return nil, err + } + case reflect.Array, reflect.Slice: + ret[key] = val.([]interface{}) + default: + return nil, fmt.Errorf("Unsupported: type = %#v", v.Kind()) + } + } + return ret, nil +} + +func (self *tomlMap) UnmarshalTOML(i interface{}) error { + if tmp, err := unmarshalMap(i); err == nil { + self.Map = tmp + } else { + return err + } + return nil +} + +type tomlSourceContext struct { + FilePath string +} + +// NewTomlSourceFromFile creates a new TOML InputSourceContext from a filepath. +func NewTomlSourceFromFile(file string) (InputSourceContext, error) { + tsc := &tomlSourceContext{FilePath: file} + var results tomlMap = tomlMap{} + if err := readCommandToml(tsc.FilePath, &results); err != nil { + return nil, fmt.Errorf("Unable to load TOML file '%s': inner error: \n'%v'", tsc.FilePath, err.Error()) + } + return &MapInputSource{valueMap: results.Map}, nil +} + +// NewTomlSourceFromFlagFunc creates a new TOML InputSourceContext from a provided flag name and source context. +func NewTomlSourceFromFlagFunc(flagFileName string) func(context *cli.Context) (InputSourceContext, error) { + return func(context *cli.Context) (InputSourceContext, error) { + filePath := context.String(flagFileName) + return NewTomlSourceFromFile(filePath) + } +} + +func readCommandToml(filePath string, container interface{}) (err error) { + b, err := loadDataFrom(filePath) + if err != nil { + return err + } + + err = toml.Unmarshal(b, container) + if err != nil { + return err + } + + err = nil + return +} diff --git a/vendor/github.com/urfave/cli/altsrc/yaml_command_test.go b/vendor/github.com/urfave/cli/altsrc/yaml_command_test.go new file mode 100644 index 0000000..9d3f431 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/yaml_command_test.go @@ -0,0 +1,313 @@ +// Disabling building of yaml support in cases where golang is 1.0 or 1.1 +// as the encoding library is not implemented or supported. + +// +build go1.2 + +package altsrc + +import ( + "flag" + "io/ioutil" + "os" + "testing" + + "gopkg.in/urfave/cli.v1" +) + +func TestCommandYamlFileTest(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte("test: 15"), 0666) + defer os.Remove("current.yaml") + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestGlobalEnvVarWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte("test: 15"), 0666) + defer os.Remove("current.yaml") + + os.Setenv("THE_TEST", "10") + defer os.Setenv("THE_TEST", "") + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 10) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestGlobalEnvVarWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte(`top: + test: 15`), 0666) + defer os.Remove("current.yaml") + + os.Setenv("THE_TEST", "10") + defer os.Setenv("THE_TEST", "") + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 10) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestSpecifiedFlagWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte("test: 15"), 0666) + defer os.Remove("current.yaml") + + test := []string{"test-cmd", "--load", "current.yaml", "--test", "7"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 7) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestSpecifiedFlagWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte(`top: + test: 15`), 0666) + defer os.Remove("current.yaml") + + test := []string{"test-cmd", "--load", "current.yaml", "--top.test", "7"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 7) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestDefaultValueFileWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte("test: 15"), 0666) + defer os.Remove("current.yaml") + + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", Value: 7}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileTestDefaultValueFileWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte(`top: + test: 15`), 0666) + defer os.Remove("current.yaml") + + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 15) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", Value: 7}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileFlagHasDefaultGlobalEnvYamlSetGlobalEnvWins(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte("test: 15"), 0666) + defer os.Remove("current.yaml") + + os.Setenv("THE_TEST", "11") + defer os.Setenv("THE_TEST", "") + + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("test") + expect(t, val, 11) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "test", Value: 7, EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} + +func TestCommandYamlFileFlagHasDefaultGlobalEnvYamlSetGlobalEnvWinsNested(t *testing.T) { + app := cli.NewApp() + set := flag.NewFlagSet("test", 0) + ioutil.WriteFile("current.yaml", []byte(`top: + test: 15`), 0666) + defer os.Remove("current.yaml") + + os.Setenv("THE_TEST", "11") + defer os.Setenv("THE_TEST", "") + + test := []string{"test-cmd", "--load", "current.yaml"} + set.Parse(test) + + c := cli.NewContext(app, set, nil) + + command := &cli.Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(c *cli.Context) error { + val := c.Int("top.test") + expect(t, val, 11) + return nil + }, + Flags: []cli.Flag{ + NewIntFlag(cli.IntFlag{Name: "top.test", Value: 7, EnvVar: "THE_TEST"}), + cli.StringFlag{Name: "load"}}, + } + command.Before = InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load")) + err := command.Run(c) + + expect(t, err, nil) +} diff --git a/vendor/github.com/urfave/cli/altsrc/yaml_file_loader.go b/vendor/github.com/urfave/cli/altsrc/yaml_file_loader.go new file mode 100644 index 0000000..dd808d5 --- /dev/null +++ b/vendor/github.com/urfave/cli/altsrc/yaml_file_loader.go @@ -0,0 +1,92 @@ +// Disabling building of yaml support in cases where golang is 1.0 or 1.1 +// as the encoding library is not implemented or supported. + +// +build go1.2 + +package altsrc + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/url" + "os" + "runtime" + "strings" + + "gopkg.in/urfave/cli.v1" + + "gopkg.in/yaml.v2" +) + +type yamlSourceContext struct { + FilePath string +} + +// NewYamlSourceFromFile creates a new Yaml InputSourceContext from a filepath. +func NewYamlSourceFromFile(file string) (InputSourceContext, error) { + ysc := &yamlSourceContext{FilePath: file} + var results map[interface{}]interface{} + err := readCommandYaml(ysc.FilePath, &results) + if err != nil { + return nil, fmt.Errorf("Unable to load Yaml file '%s': inner error: \n'%v'", ysc.FilePath, err.Error()) + } + + return &MapInputSource{valueMap: results}, nil +} + +// NewYamlSourceFromFlagFunc creates a new Yaml InputSourceContext from a provided flag name and source context. +func NewYamlSourceFromFlagFunc(flagFileName string) func(context *cli.Context) (InputSourceContext, error) { + return func(context *cli.Context) (InputSourceContext, error) { + filePath := context.String(flagFileName) + return NewYamlSourceFromFile(filePath) + } +} + +func readCommandYaml(filePath string, container interface{}) (err error) { + b, err := loadDataFrom(filePath) + if err != nil { + return err + } + + err = yaml.Unmarshal(b, container) + if err != nil { + return err + } + + err = nil + return +} + +func loadDataFrom(filePath string) ([]byte, error) { + u, err := url.Parse(filePath) + if err != nil { + return nil, err + } + + if u.Host != "" { // i have a host, now do i support the scheme? + switch u.Scheme { + case "http", "https": + res, err := http.Get(filePath) + if err != nil { + return nil, err + } + return ioutil.ReadAll(res.Body) + default: + return nil, fmt.Errorf("scheme of %s is unsupported", filePath) + } + } else if u.Path != "" { // i dont have a host, but I have a path. I am a local file. + if _, notFoundFileErr := os.Stat(filePath); notFoundFileErr != nil { + return nil, fmt.Errorf("Cannot read from file: '%s' because it does not exist.", filePath) + } + return ioutil.ReadFile(filePath) + } else if runtime.GOOS == "windows" && strings.Contains(u.String(), "\\") { + // on Windows systems u.Path is always empty, so we need to check the string directly. + if _, notFoundFileErr := os.Stat(filePath); notFoundFileErr != nil { + return nil, fmt.Errorf("Cannot read from file: '%s' because it does not exist.", filePath) + } + return ioutil.ReadFile(filePath) + } else { + return nil, fmt.Errorf("unable to determine how to load from path %s", filePath) + } +} diff --git a/vendor/github.com/urfave/cli/app.go b/vendor/github.com/urfave/cli/app.go new file mode 100644 index 0000000..51fc45d --- /dev/null +++ b/vendor/github.com/urfave/cli/app.go @@ -0,0 +1,497 @@ +package cli + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "sort" + "time" +) + +var ( + changeLogURL = "https://github.com/urfave/cli/blob/master/CHANGELOG.md" + appActionDeprecationURL = fmt.Sprintf("%s#deprecated-cli-app-action-signature", changeLogURL) + runAndExitOnErrorDeprecationURL = fmt.Sprintf("%s#deprecated-cli-app-runandexitonerror", changeLogURL) + + contactSysadmin = "This is an error in the application. Please contact the distributor of this application if this is not you." + + errInvalidActionType = NewExitError("ERROR invalid Action type. "+ + fmt.Sprintf("Must be `func(*Context`)` or `func(*Context) error). %s", contactSysadmin)+ + fmt.Sprintf("See %s", appActionDeprecationURL), 2) +) + +// App is the main structure of a cli application. It is recommended that +// an app be created with the cli.NewApp() function +type App struct { + // The name of the program. Defaults to path.Base(os.Args[0]) + Name string + // Full name of command for help, defaults to Name + HelpName string + // Description of the program. + Usage string + // Text to override the USAGE section of help + UsageText string + // Description of the program argument format. + ArgsUsage string + // Version of the program + Version string + // Description of the program + Description string + // List of commands to execute + Commands []Command + // List of flags to parse + Flags []Flag + // Boolean to enable bash completion commands + EnableBashCompletion bool + // Boolean to hide built-in help command + HideHelp bool + // Boolean to hide built-in version flag and the VERSION section of help + HideVersion bool + // Populate on app startup, only gettable through method Categories() + categories CommandCategories + // An action to execute when the bash-completion flag is set + BashComplete BashCompleteFunc + // An action to execute before any subcommands are run, but after the context is ready + // If a non-nil error is returned, no subcommands are run + Before BeforeFunc + // An action to execute after any subcommands are run, but after the subcommand has finished + // It is run even if Action() panics + After AfterFunc + + // The action to execute when no subcommands are specified + // Expects a `cli.ActionFunc` but will accept the *deprecated* signature of `func(*cli.Context) {}` + // *Note*: support for the deprecated `Action` signature will be removed in a future version + Action interface{} + + // Execute this function if the proper command cannot be found + CommandNotFound CommandNotFoundFunc + // Execute this function if an usage error occurs + OnUsageError OnUsageErrorFunc + // Compilation date + Compiled time.Time + // List of all authors who contributed + Authors []Author + // Copyright of the binary if any + Copyright string + // Name of Author (Note: Use App.Authors, this is deprecated) + Author string + // Email of Author (Note: Use App.Authors, this is deprecated) + Email string + // Writer writer to write output to + Writer io.Writer + // ErrWriter writes error output + ErrWriter io.Writer + // Other custom info + Metadata map[string]interface{} + // Carries a function which returns app specific info. + ExtraInfo func() map[string]string + // CustomAppHelpTemplate the text template for app help topic. + // cli.go uses text/template to render templates. You can + // render custom help text by setting this variable. + CustomAppHelpTemplate string + + didSetup bool +} + +// Tries to find out when this binary was compiled. +// Returns the current time if it fails to find it. +func compileTime() time.Time { + info, err := os.Stat(os.Args[0]) + if err != nil { + return time.Now() + } + return info.ModTime() +} + +// NewApp creates a new cli Application with some reasonable defaults for Name, +// Usage, Version and Action. +func NewApp() *App { + return &App{ + Name: filepath.Base(os.Args[0]), + HelpName: filepath.Base(os.Args[0]), + Usage: "A new cli application", + UsageText: "", + Version: "0.0.0", + BashComplete: DefaultAppComplete, + Action: helpCommand.Action, + Compiled: compileTime(), + Writer: os.Stdout, + } +} + +// Setup runs initialization code to ensure all data structures are ready for +// `Run` or inspection prior to `Run`. It is internally called by `Run`, but +// will return early if setup has already happened. +func (a *App) Setup() { + if a.didSetup { + return + } + + a.didSetup = true + + if a.Author != "" || a.Email != "" { + a.Authors = append(a.Authors, Author{Name: a.Author, Email: a.Email}) + } + + newCmds := []Command{} + for _, c := range a.Commands { + if c.HelpName == "" { + c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name) + } + newCmds = append(newCmds, c) + } + a.Commands = newCmds + + if a.Command(helpCommand.Name) == nil && !a.HideHelp { + a.Commands = append(a.Commands, helpCommand) + if (HelpFlag != BoolFlag{}) { + a.appendFlag(HelpFlag) + } + } + + if !a.HideVersion { + a.appendFlag(VersionFlag) + } + + a.categories = CommandCategories{} + for _, command := range a.Commands { + a.categories = a.categories.AddCommand(command.Category, command) + } + sort.Sort(a.categories) + + if a.Metadata == nil { + a.Metadata = make(map[string]interface{}) + } + + if a.Writer == nil { + a.Writer = os.Stdout + } +} + +// Run is the entry point to the cli app. Parses the arguments slice and routes +// to the proper flag/args combination +func (a *App) Run(arguments []string) (err error) { + a.Setup() + + // handle the completion flag separately from the flagset since + // completion could be attempted after a flag, but before its value was put + // on the command line. this causes the flagset to interpret the completion + // flag name as the value of the flag before it which is undesirable + // note that we can only do this because the shell autocomplete function + // always appends the completion flag at the end of the command + shellComplete, arguments := checkShellCompleteFlag(a, arguments) + + // parse flags + set, err := flagSet(a.Name, a.Flags) + if err != nil { + return err + } + + set.SetOutput(ioutil.Discard) + err = set.Parse(arguments[1:]) + nerr := normalizeFlags(a.Flags, set) + context := NewContext(a, set, nil) + if nerr != nil { + fmt.Fprintln(a.Writer, nerr) + ShowAppHelp(context) + return nerr + } + context.shellComplete = shellComplete + + if checkCompletions(context) { + return nil + } + + if err != nil { + if a.OnUsageError != nil { + err := a.OnUsageError(context, err, false) + HandleExitCoder(err) + return err + } + fmt.Fprintf(a.Writer, "%s %s\n\n", "Incorrect Usage.", err.Error()) + ShowAppHelp(context) + return err + } + + if !a.HideHelp && checkHelp(context) { + ShowAppHelp(context) + return nil + } + + if !a.HideVersion && checkVersion(context) { + ShowVersion(context) + return nil + } + + if a.After != nil { + defer func() { + if afterErr := a.After(context); afterErr != nil { + if err != nil { + err = NewMultiError(err, afterErr) + } else { + err = afterErr + } + } + }() + } + + if a.Before != nil { + beforeErr := a.Before(context) + if beforeErr != nil { + ShowAppHelp(context) + HandleExitCoder(beforeErr) + err = beforeErr + return err + } + } + + args := context.Args() + if args.Present() { + name := args.First() + c := a.Command(name) + if c != nil { + return c.Run(context) + } + } + + if a.Action == nil { + a.Action = helpCommand.Action + } + + // Run default Action + err = HandleAction(a.Action, context) + + HandleExitCoder(err) + return err +} + +// RunAndExitOnError calls .Run() and exits non-zero if an error was returned +// +// Deprecated: instead you should return an error that fulfills cli.ExitCoder +// to cli.App.Run. This will cause the application to exit with the given eror +// code in the cli.ExitCoder +func (a *App) RunAndExitOnError() { + if err := a.Run(os.Args); err != nil { + fmt.Fprintln(a.errWriter(), err) + OsExiter(1) + } +} + +// RunAsSubcommand invokes the subcommand given the context, parses ctx.Args() to +// generate command-specific flags +func (a *App) RunAsSubcommand(ctx *Context) (err error) { + // append help to commands + if len(a.Commands) > 0 { + if a.Command(helpCommand.Name) == nil && !a.HideHelp { + a.Commands = append(a.Commands, helpCommand) + if (HelpFlag != BoolFlag{}) { + a.appendFlag(HelpFlag) + } + } + } + + newCmds := []Command{} + for _, c := range a.Commands { + if c.HelpName == "" { + c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name) + } + newCmds = append(newCmds, c) + } + a.Commands = newCmds + + // parse flags + set, err := flagSet(a.Name, a.Flags) + if err != nil { + return err + } + + set.SetOutput(ioutil.Discard) + err = set.Parse(ctx.Args().Tail()) + nerr := normalizeFlags(a.Flags, set) + context := NewContext(a, set, ctx) + + if nerr != nil { + fmt.Fprintln(a.Writer, nerr) + fmt.Fprintln(a.Writer) + if len(a.Commands) > 0 { + ShowSubcommandHelp(context) + } else { + ShowCommandHelp(ctx, context.Args().First()) + } + return nerr + } + + if checkCompletions(context) { + return nil + } + + if err != nil { + if a.OnUsageError != nil { + err = a.OnUsageError(context, err, true) + HandleExitCoder(err) + return err + } + fmt.Fprintf(a.Writer, "%s %s\n\n", "Incorrect Usage.", err.Error()) + ShowSubcommandHelp(context) + return err + } + + if len(a.Commands) > 0 { + if checkSubcommandHelp(context) { + return nil + } + } else { + if checkCommandHelp(ctx, context.Args().First()) { + return nil + } + } + + if a.After != nil { + defer func() { + afterErr := a.After(context) + if afterErr != nil { + HandleExitCoder(err) + if err != nil { + err = NewMultiError(err, afterErr) + } else { + err = afterErr + } + } + }() + } + + if a.Before != nil { + beforeErr := a.Before(context) + if beforeErr != nil { + HandleExitCoder(beforeErr) + err = beforeErr + return err + } + } + + args := context.Args() + if args.Present() { + name := args.First() + c := a.Command(name) + if c != nil { + return c.Run(context) + } + } + + // Run default Action + err = HandleAction(a.Action, context) + + HandleExitCoder(err) + return err +} + +// Command returns the named command on App. Returns nil if the command does not exist +func (a *App) Command(name string) *Command { + for _, c := range a.Commands { + if c.HasName(name) { + return &c + } + } + + return nil +} + +// Categories returns a slice containing all the categories with the commands they contain +func (a *App) Categories() CommandCategories { + return a.categories +} + +// VisibleCategories returns a slice of categories and commands that are +// Hidden=false +func (a *App) VisibleCategories() []*CommandCategory { + ret := []*CommandCategory{} + for _, category := range a.categories { + if visible := func() *CommandCategory { + for _, command := range category.Commands { + if !command.Hidden { + return category + } + } + return nil + }(); visible != nil { + ret = append(ret, visible) + } + } + return ret +} + +// VisibleCommands returns a slice of the Commands with Hidden=false +func (a *App) VisibleCommands() []Command { + ret := []Command{} + for _, command := range a.Commands { + if !command.Hidden { + ret = append(ret, command) + } + } + return ret +} + +// VisibleFlags returns a slice of the Flags with Hidden=false +func (a *App) VisibleFlags() []Flag { + return visibleFlags(a.Flags) +} + +func (a *App) hasFlag(flag Flag) bool { + for _, f := range a.Flags { + if flag == f { + return true + } + } + + return false +} + +func (a *App) errWriter() io.Writer { + + // When the app ErrWriter is nil use the package level one. + if a.ErrWriter == nil { + return ErrWriter + } + + return a.ErrWriter +} + +func (a *App) appendFlag(flag Flag) { + if !a.hasFlag(flag) { + a.Flags = append(a.Flags, flag) + } +} + +// Author represents someone who has contributed to a cli project. +type Author struct { + Name string // The Authors name + Email string // The Authors email +} + +// String makes Author comply to the Stringer interface, to allow an easy print in the templating process +func (a Author) String() string { + e := "" + if a.Email != "" { + e = " <" + a.Email + ">" + } + + return fmt.Sprintf("%v%v", a.Name, e) +} + +// HandleAction attempts to figure out which Action signature was used. If +// it's an ActionFunc or a func with the legacy signature for Action, the func +// is run! +func HandleAction(action interface{}, context *Context) (err error) { + if a, ok := action.(ActionFunc); ok { + return a(context) + } else if a, ok := action.(func(*Context) error); ok { + return a(context) + } else if a, ok := action.(func(*Context)); ok { // deprecated function signature + a(context) + return nil + } else { + return errInvalidActionType + } +} diff --git a/vendor/github.com/urfave/cli/app_test.go b/vendor/github.com/urfave/cli/app_test.go new file mode 100644 index 0000000..e14ddaf --- /dev/null +++ b/vendor/github.com/urfave/cli/app_test.go @@ -0,0 +1,1742 @@ +package cli + +import ( + "bytes" + "errors" + "flag" + "fmt" + "io" + "io/ioutil" + "os" + "reflect" + "strings" + "testing" +) + +var ( + lastExitCode = 0 + fakeOsExiter = func(rc int) { + lastExitCode = rc + } + fakeErrWriter = &bytes.Buffer{} +) + +func init() { + OsExiter = fakeOsExiter + ErrWriter = fakeErrWriter +} + +type opCounts struct { + Total, BashComplete, OnUsageError, Before, CommandNotFound, Action, After, SubCommand int +} + +func ExampleApp_Run() { + // set args for examples sake + os.Args = []string{"greet", "--name", "Jeremy"} + + app := NewApp() + app.Name = "greet" + app.Flags = []Flag{ + StringFlag{Name: "name", Value: "bob", Usage: "a name to say"}, + } + app.Action = func(c *Context) error { + fmt.Printf("Hello %v\n", c.String("name")) + return nil + } + app.UsageText = "app [first_arg] [second_arg]" + app.Author = "Harrison" + app.Email = "harrison@lolwut.com" + app.Authors = []Author{{Name: "Oliver Allen", Email: "oliver@toyshop.com"}} + app.Run(os.Args) + // Output: + // Hello Jeremy +} + +func ExampleApp_Run_subcommand() { + // set args for examples sake + os.Args = []string{"say", "hi", "english", "--name", "Jeremy"} + app := NewApp() + app.Name = "say" + app.Commands = []Command{ + { + Name: "hello", + Aliases: []string{"hi"}, + Usage: "use it to see a description", + Description: "This is how we describe hello the function", + Subcommands: []Command{ + { + Name: "english", + Aliases: []string{"en"}, + Usage: "sends a greeting in english", + Description: "greets someone in english", + Flags: []Flag{ + StringFlag{ + Name: "name", + Value: "Bob", + Usage: "Name of the person to greet", + }, + }, + Action: func(c *Context) error { + fmt.Println("Hello,", c.String("name")) + return nil + }, + }, + }, + }, + } + + app.Run(os.Args) + // Output: + // Hello, Jeremy +} + +func ExampleApp_Run_appHelp() { + // set args for examples sake + os.Args = []string{"greet", "help"} + + app := NewApp() + app.Name = "greet" + app.Version = "0.1.0" + app.Description = "This is how we describe greet the app" + app.Authors = []Author{ + {Name: "Harrison", Email: "harrison@lolwut.com"}, + {Name: "Oliver Allen", Email: "oliver@toyshop.com"}, + } + app.Flags = []Flag{ + StringFlag{Name: "name", Value: "bob", Usage: "a name to say"}, + } + app.Commands = []Command{ + { + Name: "describeit", + Aliases: []string{"d"}, + Usage: "use it to see a description", + Description: "This is how we describe describeit the function", + Action: func(c *Context) error { + fmt.Printf("i like to describe things") + return nil + }, + }, + } + app.Run(os.Args) + // Output: + // NAME: + // greet - A new cli application + // + // USAGE: + // greet [global options] command [command options] [arguments...] + // + // VERSION: + // 0.1.0 + // + // DESCRIPTION: + // This is how we describe greet the app + // + // AUTHORS: + // Harrison + // Oliver Allen + // + // COMMANDS: + // describeit, d use it to see a description + // help, h Shows a list of commands or help for one command + // + // GLOBAL OPTIONS: + // --name value a name to say (default: "bob") + // --help, -h show help + // --version, -v print the version +} + +func ExampleApp_Run_commandHelp() { + // set args for examples sake + os.Args = []string{"greet", "h", "describeit"} + + app := NewApp() + app.Name = "greet" + app.Flags = []Flag{ + StringFlag{Name: "name", Value: "bob", Usage: "a name to say"}, + } + app.Commands = []Command{ + { + Name: "describeit", + Aliases: []string{"d"}, + Usage: "use it to see a description", + Description: "This is how we describe describeit the function", + Action: func(c *Context) error { + fmt.Printf("i like to describe things") + return nil + }, + }, + } + app.Run(os.Args) + // Output: + // NAME: + // greet describeit - use it to see a description + // + // USAGE: + // greet describeit [arguments...] + // + // DESCRIPTION: + // This is how we describe describeit the function +} + +func ExampleApp_Run_noAction() { + app := App{} + app.Name = "greet" + app.Run([]string{"greet"}) + // Output: + // NAME: + // greet + // + // USAGE: + // [global options] command [command options] [arguments...] + // + // COMMANDS: + // help, h Shows a list of commands or help for one command + // + // GLOBAL OPTIONS: + // --help, -h show help + // --version, -v print the version +} + +func ExampleApp_Run_subcommandNoAction() { + app := App{} + app.Name = "greet" + app.Commands = []Command{ + { + Name: "describeit", + Aliases: []string{"d"}, + Usage: "use it to see a description", + Description: "This is how we describe describeit the function", + }, + } + app.Run([]string{"greet", "describeit"}) + // Output: + // NAME: + // describeit - use it to see a description + // + // USAGE: + // describeit [arguments...] + // + // DESCRIPTION: + // This is how we describe describeit the function + +} + +func ExampleApp_Run_bashComplete() { + // set args for examples sake + os.Args = []string{"greet", "--generate-bash-completion"} + + app := NewApp() + app.Name = "greet" + app.EnableBashCompletion = true + app.Commands = []Command{ + { + Name: "describeit", + Aliases: []string{"d"}, + Usage: "use it to see a description", + Description: "This is how we describe describeit the function", + Action: func(c *Context) error { + fmt.Printf("i like to describe things") + return nil + }, + }, { + Name: "next", + Usage: "next example", + Description: "more stuff to see when generating bash completion", + Action: func(c *Context) error { + fmt.Printf("the next example") + return nil + }, + }, + } + + app.Run(os.Args) + // Output: + // describeit + // d + // next + // help + // h +} + +func TestApp_Run(t *testing.T) { + s := "" + + app := NewApp() + app.Action = func(c *Context) error { + s = s + c.Args().First() + return nil + } + + err := app.Run([]string{"command", "foo"}) + expect(t, err, nil) + err = app.Run([]string{"command", "bar"}) + expect(t, err, nil) + expect(t, s, "foobar") +} + +var commandAppTests = []struct { + name string + expected bool +}{ + {"foobar", true}, + {"batbaz", true}, + {"b", true}, + {"f", true}, + {"bat", false}, + {"nothing", false}, +} + +func TestApp_Command(t *testing.T) { + app := NewApp() + fooCommand := Command{Name: "foobar", Aliases: []string{"f"}} + batCommand := Command{Name: "batbaz", Aliases: []string{"b"}} + app.Commands = []Command{ + fooCommand, + batCommand, + } + + for _, test := range commandAppTests { + expect(t, app.Command(test.name) != nil, test.expected) + } +} + +func TestApp_Setup_defaultsWriter(t *testing.T) { + app := &App{} + app.Setup() + expect(t, app.Writer, os.Stdout) +} + +func TestApp_CommandWithArgBeforeFlags(t *testing.T) { + var parsedOption, firstArg string + + app := NewApp() + command := Command{ + Name: "cmd", + Flags: []Flag{ + StringFlag{Name: "option", Value: "", Usage: "some option"}, + }, + Action: func(c *Context) error { + parsedOption = c.String("option") + firstArg = c.Args().First() + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "--option", "my-option"}) + + expect(t, parsedOption, "my-option") + expect(t, firstArg, "my-arg") +} + +func TestApp_RunAsSubcommandParseFlags(t *testing.T) { + var context *Context + + a := NewApp() + a.Commands = []Command{ + { + Name: "foo", + Action: func(c *Context) error { + context = c + return nil + }, + Flags: []Flag{ + StringFlag{ + Name: "lang", + Value: "english", + Usage: "language for the greeting", + }, + }, + Before: func(_ *Context) error { return nil }, + }, + } + a.Run([]string{"", "foo", "--lang", "spanish", "abcd"}) + + expect(t, context.Args().Get(0), "abcd") + expect(t, context.String("lang"), "spanish") +} + +func TestApp_RunAsSubCommandIncorrectUsage(t *testing.T) { + a := App{ + Flags: []Flag{ + StringFlag{Name: "--foo"}, + }, + Writer: bytes.NewBufferString(""), + } + + set := flag.NewFlagSet("", flag.ContinueOnError) + set.Parse([]string{"", "---foo"}) + c := &Context{flagSet: set} + + err := a.RunAsSubcommand(c) + + expect(t, err, errors.New("bad flag syntax: ---foo")) +} + +func TestApp_CommandWithFlagBeforeTerminator(t *testing.T) { + var parsedOption string + var args []string + + app := NewApp() + command := Command{ + Name: "cmd", + Flags: []Flag{ + StringFlag{Name: "option", Value: "", Usage: "some option"}, + }, + Action: func(c *Context) error { + parsedOption = c.String("option") + args = c.Args() + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "--option", "my-option", "--", "--notARealFlag"}) + + expect(t, parsedOption, "my-option") + expect(t, args[0], "my-arg") + expect(t, args[1], "--") + expect(t, args[2], "--notARealFlag") +} + +func TestApp_CommandWithDash(t *testing.T) { + var args []string + + app := NewApp() + command := Command{ + Name: "cmd", + Action: func(c *Context) error { + args = c.Args() + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "-"}) + + expect(t, args[0], "my-arg") + expect(t, args[1], "-") +} + +func TestApp_CommandWithNoFlagBeforeTerminator(t *testing.T) { + var args []string + + app := NewApp() + command := Command{ + Name: "cmd", + Action: func(c *Context) error { + args = c.Args() + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "--", "notAFlagAtAll"}) + + expect(t, args[0], "my-arg") + expect(t, args[1], "--") + expect(t, args[2], "notAFlagAtAll") +} + +func TestApp_VisibleCommands(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Name: "frob", + HelpName: "foo frob", + Action: func(_ *Context) error { return nil }, + }, + { + Name: "frib", + HelpName: "foo frib", + Hidden: true, + Action: func(_ *Context) error { return nil }, + }, + } + + app.Setup() + expected := []Command{ + app.Commands[0], + app.Commands[2], // help + } + actual := app.VisibleCommands() + expect(t, len(expected), len(actual)) + for i, actualCommand := range actual { + expectedCommand := expected[i] + + if expectedCommand.Action != nil { + // comparing func addresses is OK! + expect(t, fmt.Sprintf("%p", expectedCommand.Action), fmt.Sprintf("%p", actualCommand.Action)) + } + + // nil out funcs, as they cannot be compared + // (https://github.com/golang/go/issues/8554) + expectedCommand.Action = nil + actualCommand.Action = nil + + if !reflect.DeepEqual(expectedCommand, actualCommand) { + t.Errorf("expected\n%#v\n!=\n%#v", expectedCommand, actualCommand) + } + } +} + +func TestApp_Float64Flag(t *testing.T) { + var meters float64 + + app := NewApp() + app.Flags = []Flag{ + Float64Flag{Name: "height", Value: 1.5, Usage: "Set the height, in meters"}, + } + app.Action = func(c *Context) error { + meters = c.Float64("height") + return nil + } + + app.Run([]string{"", "--height", "1.93"}) + expect(t, meters, 1.93) +} + +func TestApp_ParseSliceFlags(t *testing.T) { + var parsedOption, firstArg string + var parsedIntSlice []int + var parsedStringSlice []string + + app := NewApp() + command := Command{ + Name: "cmd", + Flags: []Flag{ + IntSliceFlag{Name: "p", Value: &IntSlice{}, Usage: "set one or more ip addr"}, + StringSliceFlag{Name: "ip", Value: &StringSlice{}, Usage: "set one or more ports to open"}, + }, + Action: func(c *Context) error { + parsedIntSlice = c.IntSlice("p") + parsedStringSlice = c.StringSlice("ip") + parsedOption = c.String("option") + firstArg = c.Args().First() + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "-p", "22", "-p", "80", "-ip", "8.8.8.8", "-ip", "8.8.4.4"}) + + IntsEquals := func(a, b []int) bool { + if len(a) != len(b) { + return false + } + for i, v := range a { + if v != b[i] { + return false + } + } + return true + } + + StrsEquals := func(a, b []string) bool { + if len(a) != len(b) { + return false + } + for i, v := range a { + if v != b[i] { + return false + } + } + return true + } + var expectedIntSlice = []int{22, 80} + var expectedStringSlice = []string{"8.8.8.8", "8.8.4.4"} + + if !IntsEquals(parsedIntSlice, expectedIntSlice) { + t.Errorf("%v does not match %v", parsedIntSlice, expectedIntSlice) + } + + if !StrsEquals(parsedStringSlice, expectedStringSlice) { + t.Errorf("%v does not match %v", parsedStringSlice, expectedStringSlice) + } +} + +func TestApp_ParseSliceFlagsWithMissingValue(t *testing.T) { + var parsedIntSlice []int + var parsedStringSlice []string + + app := NewApp() + command := Command{ + Name: "cmd", + Flags: []Flag{ + IntSliceFlag{Name: "a", Usage: "set numbers"}, + StringSliceFlag{Name: "str", Usage: "set strings"}, + }, + Action: func(c *Context) error { + parsedIntSlice = c.IntSlice("a") + parsedStringSlice = c.StringSlice("str") + return nil + }, + } + app.Commands = []Command{command} + + app.Run([]string{"", "cmd", "my-arg", "-a", "2", "-str", "A"}) + + var expectedIntSlice = []int{2} + var expectedStringSlice = []string{"A"} + + if parsedIntSlice[0] != expectedIntSlice[0] { + t.Errorf("%v does not match %v", parsedIntSlice[0], expectedIntSlice[0]) + } + + if parsedStringSlice[0] != expectedStringSlice[0] { + t.Errorf("%v does not match %v", parsedIntSlice[0], expectedIntSlice[0]) + } +} + +func TestApp_DefaultStdout(t *testing.T) { + app := NewApp() + + if app.Writer != os.Stdout { + t.Error("Default output writer not set.") + } +} + +type mockWriter struct { + written []byte +} + +func (fw *mockWriter) Write(p []byte) (n int, err error) { + if fw.written == nil { + fw.written = p + } else { + fw.written = append(fw.written, p...) + } + + return len(p), nil +} + +func (fw *mockWriter) GetWritten() (b []byte) { + return fw.written +} + +func TestApp_SetStdout(t *testing.T) { + w := &mockWriter{} + + app := NewApp() + app.Name = "test" + app.Writer = w + + err := app.Run([]string{"help"}) + + if err != nil { + t.Fatalf("Run error: %s", err) + } + + if len(w.written) == 0 { + t.Error("App did not write output to desired writer.") + } +} + +func TestApp_BeforeFunc(t *testing.T) { + counts := &opCounts{} + beforeError := fmt.Errorf("fail") + var err error + + app := NewApp() + + app.Before = func(c *Context) error { + counts.Total++ + counts.Before = counts.Total + s := c.String("opt") + if s == "fail" { + return beforeError + } + + return nil + } + + app.Commands = []Command{ + { + Name: "sub", + Action: func(c *Context) error { + counts.Total++ + counts.SubCommand = counts.Total + return nil + }, + }, + } + + app.Flags = []Flag{ + StringFlag{Name: "opt"}, + } + + // run with the Before() func succeeding + err = app.Run([]string{"command", "--opt", "succeed", "sub"}) + + if err != nil { + t.Fatalf("Run error: %s", err) + } + + if counts.Before != 1 { + t.Errorf("Before() not executed when expected") + } + + if counts.SubCommand != 2 { + t.Errorf("Subcommand not executed when expected") + } + + // reset + counts = &opCounts{} + + // run with the Before() func failing + err = app.Run([]string{"command", "--opt", "fail", "sub"}) + + // should be the same error produced by the Before func + if err != beforeError { + t.Errorf("Run error expected, but not received") + } + + if counts.Before != 1 { + t.Errorf("Before() not executed when expected") + } + + if counts.SubCommand != 0 { + t.Errorf("Subcommand executed when NOT expected") + } + + // reset + counts = &opCounts{} + + afterError := errors.New("fail again") + app.After = func(_ *Context) error { + return afterError + } + + // run with the Before() func failing, wrapped by After() + err = app.Run([]string{"command", "--opt", "fail", "sub"}) + + // should be the same error produced by the Before func + if _, ok := err.(MultiError); !ok { + t.Errorf("MultiError expected, but not received") + } + + if counts.Before != 1 { + t.Errorf("Before() not executed when expected") + } + + if counts.SubCommand != 0 { + t.Errorf("Subcommand executed when NOT expected") + } +} + +func TestApp_AfterFunc(t *testing.T) { + counts := &opCounts{} + afterError := fmt.Errorf("fail") + var err error + + app := NewApp() + + app.After = func(c *Context) error { + counts.Total++ + counts.After = counts.Total + s := c.String("opt") + if s == "fail" { + return afterError + } + + return nil + } + + app.Commands = []Command{ + { + Name: "sub", + Action: func(c *Context) error { + counts.Total++ + counts.SubCommand = counts.Total + return nil + }, + }, + } + + app.Flags = []Flag{ + StringFlag{Name: "opt"}, + } + + // run with the After() func succeeding + err = app.Run([]string{"command", "--opt", "succeed", "sub"}) + + if err != nil { + t.Fatalf("Run error: %s", err) + } + + if counts.After != 2 { + t.Errorf("After() not executed when expected") + } + + if counts.SubCommand != 1 { + t.Errorf("Subcommand not executed when expected") + } + + // reset + counts = &opCounts{} + + // run with the Before() func failing + err = app.Run([]string{"command", "--opt", "fail", "sub"}) + + // should be the same error produced by the Before func + if err != afterError { + t.Errorf("Run error expected, but not received") + } + + if counts.After != 2 { + t.Errorf("After() not executed when expected") + } + + if counts.SubCommand != 1 { + t.Errorf("Subcommand not executed when expected") + } +} + +func TestAppNoHelpFlag(t *testing.T) { + oldFlag := HelpFlag + defer func() { + HelpFlag = oldFlag + }() + + HelpFlag = BoolFlag{} + + app := NewApp() + app.Writer = ioutil.Discard + err := app.Run([]string{"test", "-h"}) + + if err != flag.ErrHelp { + t.Errorf("expected error about missing help flag, but got: %s (%T)", err, err) + } +} + +func TestAppHelpPrinter(t *testing.T) { + oldPrinter := HelpPrinter + defer func() { + HelpPrinter = oldPrinter + }() + + var wasCalled = false + HelpPrinter = func(w io.Writer, template string, data interface{}) { + wasCalled = true + } + + app := NewApp() + app.Run([]string{"-h"}) + + if wasCalled == false { + t.Errorf("Help printer expected to be called, but was not") + } +} + +func TestApp_VersionPrinter(t *testing.T) { + oldPrinter := VersionPrinter + defer func() { + VersionPrinter = oldPrinter + }() + + var wasCalled = false + VersionPrinter = func(c *Context) { + wasCalled = true + } + + app := NewApp() + ctx := NewContext(app, nil, nil) + ShowVersion(ctx) + + if wasCalled == false { + t.Errorf("Version printer expected to be called, but was not") + } +} + +func TestApp_CommandNotFound(t *testing.T) { + counts := &opCounts{} + app := NewApp() + + app.CommandNotFound = func(c *Context, command string) { + counts.Total++ + counts.CommandNotFound = counts.Total + } + + app.Commands = []Command{ + { + Name: "bar", + Action: func(c *Context) error { + counts.Total++ + counts.SubCommand = counts.Total + return nil + }, + }, + } + + app.Run([]string{"command", "foo"}) + + expect(t, counts.CommandNotFound, 1) + expect(t, counts.SubCommand, 0) + expect(t, counts.Total, 1) +} + +func TestApp_OrderOfOperations(t *testing.T) { + counts := &opCounts{} + + resetCounts := func() { counts = &opCounts{} } + + app := NewApp() + app.EnableBashCompletion = true + app.BashComplete = func(c *Context) { + counts.Total++ + counts.BashComplete = counts.Total + } + + app.OnUsageError = func(c *Context, err error, isSubcommand bool) error { + counts.Total++ + counts.OnUsageError = counts.Total + return errors.New("hay OnUsageError") + } + + beforeNoError := func(c *Context) error { + counts.Total++ + counts.Before = counts.Total + return nil + } + + beforeError := func(c *Context) error { + counts.Total++ + counts.Before = counts.Total + return errors.New("hay Before") + } + + app.Before = beforeNoError + app.CommandNotFound = func(c *Context, command string) { + counts.Total++ + counts.CommandNotFound = counts.Total + } + + afterNoError := func(c *Context) error { + counts.Total++ + counts.After = counts.Total + return nil + } + + afterError := func(c *Context) error { + counts.Total++ + counts.After = counts.Total + return errors.New("hay After") + } + + app.After = afterNoError + app.Commands = []Command{ + { + Name: "bar", + Action: func(c *Context) error { + counts.Total++ + counts.SubCommand = counts.Total + return nil + }, + }, + } + + app.Action = func(c *Context) error { + counts.Total++ + counts.Action = counts.Total + return nil + } + + _ = app.Run([]string{"command", "--nope"}) + expect(t, counts.OnUsageError, 1) + expect(t, counts.Total, 1) + + resetCounts() + + _ = app.Run([]string{"command", "--generate-bash-completion"}) + expect(t, counts.BashComplete, 1) + expect(t, counts.Total, 1) + + resetCounts() + + oldOnUsageError := app.OnUsageError + app.OnUsageError = nil + _ = app.Run([]string{"command", "--nope"}) + expect(t, counts.Total, 0) + app.OnUsageError = oldOnUsageError + + resetCounts() + + _ = app.Run([]string{"command", "foo"}) + expect(t, counts.OnUsageError, 0) + expect(t, counts.Before, 1) + expect(t, counts.CommandNotFound, 0) + expect(t, counts.Action, 2) + expect(t, counts.After, 3) + expect(t, counts.Total, 3) + + resetCounts() + + app.Before = beforeError + _ = app.Run([]string{"command", "bar"}) + expect(t, counts.OnUsageError, 0) + expect(t, counts.Before, 1) + expect(t, counts.After, 2) + expect(t, counts.Total, 2) + app.Before = beforeNoError + + resetCounts() + + app.After = nil + _ = app.Run([]string{"command", "bar"}) + expect(t, counts.OnUsageError, 0) + expect(t, counts.Before, 1) + expect(t, counts.SubCommand, 2) + expect(t, counts.Total, 2) + app.After = afterNoError + + resetCounts() + + app.After = afterError + err := app.Run([]string{"command", "bar"}) + if err == nil { + t.Fatalf("expected a non-nil error") + } + expect(t, counts.OnUsageError, 0) + expect(t, counts.Before, 1) + expect(t, counts.SubCommand, 2) + expect(t, counts.After, 3) + expect(t, counts.Total, 3) + app.After = afterNoError + + resetCounts() + + oldCommands := app.Commands + app.Commands = nil + _ = app.Run([]string{"command"}) + expect(t, counts.OnUsageError, 0) + expect(t, counts.Before, 1) + expect(t, counts.Action, 2) + expect(t, counts.After, 3) + expect(t, counts.Total, 3) + app.Commands = oldCommands +} + +func TestApp_Run_CommandWithSubcommandHasHelpTopic(t *testing.T) { + var subcommandHelpTopics = [][]string{ + {"command", "foo", "--help"}, + {"command", "foo", "-h"}, + {"command", "foo", "help"}, + } + + for _, flagSet := range subcommandHelpTopics { + t.Logf("==> checking with flags %v", flagSet) + + app := NewApp() + buf := new(bytes.Buffer) + app.Writer = buf + + subCmdBar := Command{ + Name: "bar", + Usage: "does bar things", + } + subCmdBaz := Command{ + Name: "baz", + Usage: "does baz things", + } + cmd := Command{ + Name: "foo", + Description: "descriptive wall of text about how it does foo things", + Subcommands: []Command{subCmdBar, subCmdBaz}, + Action: func(c *Context) error { return nil }, + } + + app.Commands = []Command{cmd} + err := app.Run(flagSet) + + if err != nil { + t.Error(err) + } + + output := buf.String() + t.Logf("output: %q\n", buf.Bytes()) + + if strings.Contains(output, "No help topic for") { + t.Errorf("expect a help topic, got none: \n%q", output) + } + + for _, shouldContain := range []string{ + cmd.Name, cmd.Description, + subCmdBar.Name, subCmdBar.Usage, + subCmdBaz.Name, subCmdBaz.Usage, + } { + if !strings.Contains(output, shouldContain) { + t.Errorf("want help to contain %q, did not: \n%q", shouldContain, output) + } + } + } +} + +func TestApp_Run_SubcommandFullPath(t *testing.T) { + app := NewApp() + buf := new(bytes.Buffer) + app.Writer = buf + app.Name = "command" + subCmd := Command{ + Name: "bar", + Usage: "does bar things", + } + cmd := Command{ + Name: "foo", + Description: "foo commands", + Subcommands: []Command{subCmd}, + } + app.Commands = []Command{cmd} + + err := app.Run([]string{"command", "foo", "bar", "--help"}) + if err != nil { + t.Error(err) + } + + output := buf.String() + if !strings.Contains(output, "command foo bar - does bar things") { + t.Errorf("expected full path to subcommand: %s", output) + } + if !strings.Contains(output, "command foo bar [arguments...]") { + t.Errorf("expected full path to subcommand: %s", output) + } +} + +func TestApp_Run_SubcommandHelpName(t *testing.T) { + app := NewApp() + buf := new(bytes.Buffer) + app.Writer = buf + app.Name = "command" + subCmd := Command{ + Name: "bar", + HelpName: "custom", + Usage: "does bar things", + } + cmd := Command{ + Name: "foo", + Description: "foo commands", + Subcommands: []Command{subCmd}, + } + app.Commands = []Command{cmd} + + err := app.Run([]string{"command", "foo", "bar", "--help"}) + if err != nil { + t.Error(err) + } + + output := buf.String() + if !strings.Contains(output, "custom - does bar things") { + t.Errorf("expected HelpName for subcommand: %s", output) + } + if !strings.Contains(output, "custom [arguments...]") { + t.Errorf("expected HelpName to subcommand: %s", output) + } +} + +func TestApp_Run_CommandHelpName(t *testing.T) { + app := NewApp() + buf := new(bytes.Buffer) + app.Writer = buf + app.Name = "command" + subCmd := Command{ + Name: "bar", + Usage: "does bar things", + } + cmd := Command{ + Name: "foo", + HelpName: "custom", + Description: "foo commands", + Subcommands: []Command{subCmd}, + } + app.Commands = []Command{cmd} + + err := app.Run([]string{"command", "foo", "bar", "--help"}) + if err != nil { + t.Error(err) + } + + output := buf.String() + if !strings.Contains(output, "command foo bar - does bar things") { + t.Errorf("expected full path to subcommand: %s", output) + } + if !strings.Contains(output, "command foo bar [arguments...]") { + t.Errorf("expected full path to subcommand: %s", output) + } +} + +func TestApp_Run_CommandSubcommandHelpName(t *testing.T) { + app := NewApp() + buf := new(bytes.Buffer) + app.Writer = buf + app.Name = "base" + subCmd := Command{ + Name: "bar", + HelpName: "custom", + Usage: "does bar things", + } + cmd := Command{ + Name: "foo", + Description: "foo commands", + Subcommands: []Command{subCmd}, + } + app.Commands = []Command{cmd} + + err := app.Run([]string{"command", "foo", "--help"}) + if err != nil { + t.Error(err) + } + + output := buf.String() + if !strings.Contains(output, "base foo - foo commands") { + t.Errorf("expected full path to subcommand: %s", output) + } + if !strings.Contains(output, "base foo command [command options] [arguments...]") { + t.Errorf("expected full path to subcommand: %s", output) + } +} + +func TestApp_Run_Help(t *testing.T) { + var helpArguments = [][]string{{"boom", "--help"}, {"boom", "-h"}, {"boom", "help"}} + + for _, args := range helpArguments { + buf := new(bytes.Buffer) + + t.Logf("==> checking with arguments %v", args) + + app := NewApp() + app.Name = "boom" + app.Usage = "make an explosive entrance" + app.Writer = buf + app.Action = func(c *Context) error { + buf.WriteString("boom I say!") + return nil + } + + err := app.Run(args) + if err != nil { + t.Error(err) + } + + output := buf.String() + t.Logf("output: %q\n", buf.Bytes()) + + if !strings.Contains(output, "boom - make an explosive entrance") { + t.Errorf("want help to contain %q, did not: \n%q", "boom - make an explosive entrance", output) + } + } +} + +func TestApp_Run_Version(t *testing.T) { + var versionArguments = [][]string{{"boom", "--version"}, {"boom", "-v"}} + + for _, args := range versionArguments { + buf := new(bytes.Buffer) + + t.Logf("==> checking with arguments %v", args) + + app := NewApp() + app.Name = "boom" + app.Usage = "make an explosive entrance" + app.Version = "0.1.0" + app.Writer = buf + app.Action = func(c *Context) error { + buf.WriteString("boom I say!") + return nil + } + + err := app.Run(args) + if err != nil { + t.Error(err) + } + + output := buf.String() + t.Logf("output: %q\n", buf.Bytes()) + + if !strings.Contains(output, "0.1.0") { + t.Errorf("want version to contain %q, did not: \n%q", "0.1.0", output) + } + } +} + +func TestApp_Run_Categories(t *testing.T) { + app := NewApp() + app.Name = "categories" + app.HideHelp = true + app.Commands = []Command{ + { + Name: "command1", + Category: "1", + }, + { + Name: "command2", + Category: "1", + }, + { + Name: "command3", + Category: "2", + }, + } + buf := new(bytes.Buffer) + app.Writer = buf + + app.Run([]string{"categories"}) + + expect := CommandCategories{ + &CommandCategory{ + Name: "1", + Commands: []Command{ + app.Commands[0], + app.Commands[1], + }, + }, + &CommandCategory{ + Name: "2", + Commands: []Command{ + app.Commands[2], + }, + }, + } + if !reflect.DeepEqual(app.Categories(), expect) { + t.Fatalf("expected categories %#v, to equal %#v", app.Categories(), expect) + } + + output := buf.String() + t.Logf("output: %q\n", buf.Bytes()) + + if !strings.Contains(output, "1:\n command1") { + t.Errorf("want buffer to include category %q, did not: \n%q", "1:\n command1", output) + } +} + +func TestApp_VisibleCategories(t *testing.T) { + app := NewApp() + app.Name = "visible-categories" + app.HideHelp = true + app.Commands = []Command{ + { + Name: "command1", + Category: "1", + HelpName: "foo command1", + Hidden: true, + }, + { + Name: "command2", + Category: "2", + HelpName: "foo command2", + }, + { + Name: "command3", + Category: "3", + HelpName: "foo command3", + }, + } + + expected := []*CommandCategory{ + { + Name: "2", + Commands: []Command{ + app.Commands[1], + }, + }, + { + Name: "3", + Commands: []Command{ + app.Commands[2], + }, + }, + } + + app.Setup() + expect(t, expected, app.VisibleCategories()) + + app = NewApp() + app.Name = "visible-categories" + app.HideHelp = true + app.Commands = []Command{ + { + Name: "command1", + Category: "1", + HelpName: "foo command1", + Hidden: true, + }, + { + Name: "command2", + Category: "2", + HelpName: "foo command2", + Hidden: true, + }, + { + Name: "command3", + Category: "3", + HelpName: "foo command3", + }, + } + + expected = []*CommandCategory{ + { + Name: "3", + Commands: []Command{ + app.Commands[2], + }, + }, + } + + app.Setup() + expect(t, expected, app.VisibleCategories()) + + app = NewApp() + app.Name = "visible-categories" + app.HideHelp = true + app.Commands = []Command{ + { + Name: "command1", + Category: "1", + HelpName: "foo command1", + Hidden: true, + }, + { + Name: "command2", + Category: "2", + HelpName: "foo command2", + Hidden: true, + }, + { + Name: "command3", + Category: "3", + HelpName: "foo command3", + Hidden: true, + }, + } + + expected = []*CommandCategory{} + + app.Setup() + expect(t, expected, app.VisibleCategories()) +} + +func TestApp_Run_DoesNotOverwriteErrorFromBefore(t *testing.T) { + app := NewApp() + app.Action = func(c *Context) error { return nil } + app.Before = func(c *Context) error { return fmt.Errorf("before error") } + app.After = func(c *Context) error { return fmt.Errorf("after error") } + + err := app.Run([]string{"foo"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.Contains(err.Error(), "before error") { + t.Errorf("expected text of error from Before method, but got none in \"%v\"", err) + } + if !strings.Contains(err.Error(), "after error") { + t.Errorf("expected text of error from After method, but got none in \"%v\"", err) + } +} + +func TestApp_Run_SubcommandDoesNotOverwriteErrorFromBefore(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Subcommands: []Command{ + { + Name: "sub", + }, + }, + Name: "bar", + Before: func(c *Context) error { return fmt.Errorf("before error") }, + After: func(c *Context) error { return fmt.Errorf("after error") }, + }, + } + + err := app.Run([]string{"foo", "bar"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.Contains(err.Error(), "before error") { + t.Errorf("expected text of error from Before method, but got none in \"%v\"", err) + } + if !strings.Contains(err.Error(), "after error") { + t.Errorf("expected text of error from After method, but got none in \"%v\"", err) + } +} + +func TestApp_OnUsageError_WithWrongFlagValue(t *testing.T) { + app := NewApp() + app.Flags = []Flag{ + IntFlag{Name: "flag"}, + } + app.OnUsageError = func(c *Context, err error, isSubcommand bool) error { + if isSubcommand { + t.Errorf("Expect no subcommand") + } + if !strings.HasPrefix(err.Error(), "invalid value \"wrong\"") { + t.Errorf("Expect an invalid value error, but got \"%v\"", err) + } + return errors.New("intercepted: " + err.Error()) + } + app.Commands = []Command{ + { + Name: "bar", + }, + } + + err := app.Run([]string{"foo", "--flag=wrong"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.HasPrefix(err.Error(), "intercepted: invalid value") { + t.Errorf("Expect an intercepted error, but got \"%v\"", err) + } +} + +func TestApp_OnUsageError_WithWrongFlagValue_ForSubcommand(t *testing.T) { + app := NewApp() + app.Flags = []Flag{ + IntFlag{Name: "flag"}, + } + app.OnUsageError = func(c *Context, err error, isSubcommand bool) error { + if isSubcommand { + t.Errorf("Expect subcommand") + } + if !strings.HasPrefix(err.Error(), "invalid value \"wrong\"") { + t.Errorf("Expect an invalid value error, but got \"%v\"", err) + } + return errors.New("intercepted: " + err.Error()) + } + app.Commands = []Command{ + { + Name: "bar", + }, + } + + err := app.Run([]string{"foo", "--flag=wrong", "bar"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.HasPrefix(err.Error(), "intercepted: invalid value") { + t.Errorf("Expect an intercepted error, but got \"%v\"", err) + } +} + +// A custom flag that conforms to the relevant interfaces, but has none of the +// fields that the other flag types do. +type customBoolFlag struct { + Nombre string +} + +// Don't use the normal FlagStringer +func (c *customBoolFlag) String() string { + return "***" + c.Nombre + "***" +} + +func (c *customBoolFlag) GetName() string { + return c.Nombre +} + +func (c *customBoolFlag) Apply(set *flag.FlagSet) { + set.String(c.Nombre, c.Nombre, "") +} + +func TestCustomFlagsUnused(t *testing.T) { + app := NewApp() + app.Flags = []Flag{&customBoolFlag{"custom"}} + + err := app.Run([]string{"foo"}) + if err != nil { + t.Errorf("Run returned unexpected error: %v", err) + } +} + +func TestCustomFlagsUsed(t *testing.T) { + app := NewApp() + app.Flags = []Flag{&customBoolFlag{"custom"}} + + err := app.Run([]string{"foo", "--custom=bar"}) + if err != nil { + t.Errorf("Run returned unexpected error: %v", err) + } +} + +func TestCustomHelpVersionFlags(t *testing.T) { + app := NewApp() + + // Be sure to reset the global flags + defer func(helpFlag Flag, versionFlag Flag) { + HelpFlag = helpFlag + VersionFlag = versionFlag + }(HelpFlag, VersionFlag) + + HelpFlag = &customBoolFlag{"help-custom"} + VersionFlag = &customBoolFlag{"version-custom"} + + err := app.Run([]string{"foo", "--help-custom=bar"}) + if err != nil { + t.Errorf("Run returned unexpected error: %v", err) + } +} + +func TestHandleAction_WithNonFuncAction(t *testing.T) { + app := NewApp() + app.Action = 42 + fs, err := flagSet(app.Name, app.Flags) + if err != nil { + t.Errorf("error creating FlagSet: %s", err) + } + err = HandleAction(app.Action, NewContext(app, fs, nil)) + + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + exitErr, ok := err.(*ExitError) + + if !ok { + t.Fatalf("expected to receive a *ExitError") + } + + if !strings.HasPrefix(exitErr.Error(), "ERROR invalid Action type.") { + t.Fatalf("expected an unknown Action error, but got: %v", exitErr.Error()) + } + + if exitErr.ExitCode() != 2 { + t.Fatalf("expected error exit code to be 2, but got: %v", exitErr.ExitCode()) + } +} + +func TestHandleAction_WithInvalidFuncSignature(t *testing.T) { + app := NewApp() + app.Action = func() string { return "" } + fs, err := flagSet(app.Name, app.Flags) + if err != nil { + t.Errorf("error creating FlagSet: %s", err) + } + err = HandleAction(app.Action, NewContext(app, fs, nil)) + + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + exitErr, ok := err.(*ExitError) + + if !ok { + t.Fatalf("expected to receive a *ExitError") + } + + if !strings.HasPrefix(exitErr.Error(), "ERROR invalid Action type") { + t.Fatalf("expected an unknown Action error, but got: %v", exitErr.Error()) + } + + if exitErr.ExitCode() != 2 { + t.Fatalf("expected error exit code to be 2, but got: %v", exitErr.ExitCode()) + } +} + +func TestHandleAction_WithInvalidFuncReturnSignature(t *testing.T) { + app := NewApp() + app.Action = func(_ *Context) (int, error) { return 0, nil } + fs, err := flagSet(app.Name, app.Flags) + if err != nil { + t.Errorf("error creating FlagSet: %s", err) + } + err = HandleAction(app.Action, NewContext(app, fs, nil)) + + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + exitErr, ok := err.(*ExitError) + + if !ok { + t.Fatalf("expected to receive a *ExitError") + } + + if !strings.HasPrefix(exitErr.Error(), "ERROR invalid Action type") { + t.Fatalf("expected an invalid Action signature error, but got: %v", exitErr.Error()) + } + + if exitErr.ExitCode() != 2 { + t.Fatalf("expected error exit code to be 2, but got: %v", exitErr.ExitCode()) + } +} + +func TestHandleAction_WithUnknownPanic(t *testing.T) { + defer func() { refute(t, recover(), nil) }() + + var fn ActionFunc + + app := NewApp() + app.Action = func(ctx *Context) error { + fn(ctx) + return nil + } + fs, err := flagSet(app.Name, app.Flags) + if err != nil { + t.Errorf("error creating FlagSet: %s", err) + } + HandleAction(app.Action, NewContext(app, fs, nil)) +} + +func TestShellCompletionForIncompleteFlags(t *testing.T) { + app := NewApp() + app.Flags = []Flag{ + IntFlag{ + Name: "test-completion", + }, + } + app.EnableBashCompletion = true + app.BashComplete = func(ctx *Context) { + for _, command := range ctx.App.Commands { + if command.Hidden { + continue + } + + for _, name := range command.Names() { + fmt.Fprintln(ctx.App.Writer, name) + } + } + + for _, flag := range ctx.App.Flags { + for _, name := range strings.Split(flag.GetName(), ",") { + if name == BashCompletionFlag.GetName() { + continue + } + + switch name = strings.TrimSpace(name); len(name) { + case 0: + case 1: + fmt.Fprintln(ctx.App.Writer, "-"+name) + default: + fmt.Fprintln(ctx.App.Writer, "--"+name) + } + } + } + } + app.Action = func(ctx *Context) error { + return fmt.Errorf("should not get here") + } + err := app.Run([]string{"", "--test-completion", "--" + BashCompletionFlag.GetName()}) + if err != nil { + t.Errorf("app should not return an error: %s", err) + } +} + +func TestHandleActionActuallyWorksWithActions(t *testing.T) { + var f ActionFunc + called := false + f = func(c *Context) error { + called = true + return nil + } + + err := HandleAction(f, nil) + + if err != nil { + t.Errorf("Should not have errored: %v", err) + } + + if !called { + t.Errorf("Function was not called") + } +} diff --git a/vendor/github.com/urfave/cli/appveyor.yml b/vendor/github.com/urfave/cli/appveyor.yml new file mode 100644 index 0000000..1e1489c --- /dev/null +++ b/vendor/github.com/urfave/cli/appveyor.yml @@ -0,0 +1,26 @@ +version: "{build}" + +os: Windows Server 2016 + +image: Visual Studio 2017 + +clone_folder: c:\gopath\src\github.com\urfave\cli + +environment: + GOPATH: C:\gopath + GOVERSION: 1.8.x + PYTHON: C:\Python36-x64 + PYTHON_VERSION: 3.6.x + PYTHON_ARCH: 64 + +install: +- set PATH=%GOPATH%\bin;C:\go\bin;%PATH% +- go version +- go env +- go get github.com/urfave/gfmrun/... +- go get -v -t ./... + +build_script: +- python runtests vet +- python runtests test +- python runtests gfmrun diff --git a/vendor/github.com/urfave/cli/autocomplete/bash_autocomplete b/vendor/github.com/urfave/cli/autocomplete/bash_autocomplete new file mode 100755 index 0000000..37d9c14 --- /dev/null +++ b/vendor/github.com/urfave/cli/autocomplete/bash_autocomplete @@ -0,0 +1,16 @@ +#! /bin/bash + +: ${PROG:=$(basename ${BASH_SOURCE})} + +_cli_bash_autocomplete() { + local cur opts base + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion ) + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 +} + +complete -F _cli_bash_autocomplete $PROG + +unset PROG diff --git a/vendor/github.com/urfave/cli/autocomplete/zsh_autocomplete b/vendor/github.com/urfave/cli/autocomplete/zsh_autocomplete new file mode 100644 index 0000000..5430a18 --- /dev/null +++ b/vendor/github.com/urfave/cli/autocomplete/zsh_autocomplete @@ -0,0 +1,5 @@ +autoload -U compinit && compinit +autoload -U bashcompinit && bashcompinit + +script_dir=$(dirname $0) +source ${script_dir}/bash_autocomplete diff --git a/vendor/github.com/urfave/cli/category.go b/vendor/github.com/urfave/cli/category.go new file mode 100644 index 0000000..1a60550 --- /dev/null +++ b/vendor/github.com/urfave/cli/category.go @@ -0,0 +1,44 @@ +package cli + +// CommandCategories is a slice of *CommandCategory. +type CommandCategories []*CommandCategory + +// CommandCategory is a category containing commands. +type CommandCategory struct { + Name string + Commands Commands +} + +func (c CommandCategories) Less(i, j int) bool { + return c[i].Name < c[j].Name +} + +func (c CommandCategories) Len() int { + return len(c) +} + +func (c CommandCategories) Swap(i, j int) { + c[i], c[j] = c[j], c[i] +} + +// AddCommand adds a command to a category. +func (c CommandCategories) AddCommand(category string, command Command) CommandCategories { + for _, commandCategory := range c { + if commandCategory.Name == category { + commandCategory.Commands = append(commandCategory.Commands, command) + return c + } + } + return append(c, &CommandCategory{Name: category, Commands: []Command{command}}) +} + +// VisibleCommands returns a slice of the Commands with Hidden=false +func (c *CommandCategory) VisibleCommands() []Command { + ret := []Command{} + for _, command := range c.Commands { + if !command.Hidden { + ret = append(ret, command) + } + } + return ret +} diff --git a/vendor/github.com/urfave/cli/cli.go b/vendor/github.com/urfave/cli/cli.go new file mode 100644 index 0000000..90c07eb --- /dev/null +++ b/vendor/github.com/urfave/cli/cli.go @@ -0,0 +1,22 @@ +// Package cli provides a minimal framework for creating and organizing command line +// Go applications. cli is designed to be easy to understand and write, the most simple +// cli application can be written as follows: +// func main() { +// cli.NewApp().Run(os.Args) +// } +// +// Of course this application does not do much, so let's make this an actual application: +// func main() { +// app := cli.NewApp() +// app.Name = "greet" +// app.Usage = "say a greeting" +// app.Action = func(c *cli.Context) error { +// println("Greetings") +// return nil +// } +// +// app.Run(os.Args) +// } +package cli + +//go:generate python ./generate-flag-types cli -i flag-types.json -o flag_generated.go diff --git a/vendor/github.com/urfave/cli/command.go b/vendor/github.com/urfave/cli/command.go new file mode 100644 index 0000000..23de294 --- /dev/null +++ b/vendor/github.com/urfave/cli/command.go @@ -0,0 +1,304 @@ +package cli + +import ( + "fmt" + "io/ioutil" + "sort" + "strings" +) + +// Command is a subcommand for a cli.App. +type Command struct { + // The name of the command + Name string + // short name of the command. Typically one character (deprecated, use `Aliases`) + ShortName string + // A list of aliases for the command + Aliases []string + // A short description of the usage of this command + Usage string + // Custom text to show on USAGE section of help + UsageText string + // A longer explanation of how the command works + Description string + // A short description of the arguments of this command + ArgsUsage string + // The category the command is part of + Category string + // The function to call when checking for bash command completions + BashComplete BashCompleteFunc + // An action to execute before any sub-subcommands are run, but after the context is ready + // If a non-nil error is returned, no sub-subcommands are run + Before BeforeFunc + // An action to execute after any subcommands are run, but after the subcommand has finished + // It is run even if Action() panics + After AfterFunc + // The function to call when this command is invoked + Action interface{} + // TODO: replace `Action: interface{}` with `Action: ActionFunc` once some kind + // of deprecation period has passed, maybe? + + // Execute this function if a usage error occurs. + OnUsageError OnUsageErrorFunc + // List of child commands + Subcommands Commands + // List of flags to parse + Flags []Flag + // Treat all flags as normal arguments if true + SkipFlagParsing bool + // Skip argument reordering which attempts to move flags before arguments, + // but only works if all flags appear after all arguments. This behavior was + // removed n version 2 since it only works under specific conditions so we + // backport here by exposing it as an option for compatibility. + SkipArgReorder bool + // Boolean to hide built-in help command + HideHelp bool + // Boolean to hide this command from help or completion + Hidden bool + + // Full name of command for help, defaults to full command name, including parent commands. + HelpName string + commandNamePath []string + + // CustomHelpTemplate the text template for the command help topic. + // cli.go uses text/template to render templates. You can + // render custom help text by setting this variable. + CustomHelpTemplate string +} + +type CommandsByName []Command + +func (c CommandsByName) Len() int { + return len(c) +} + +func (c CommandsByName) Less(i, j int) bool { + return c[i].Name < c[j].Name +} + +func (c CommandsByName) Swap(i, j int) { + c[i], c[j] = c[j], c[i] +} + +// FullName returns the full name of the command. +// For subcommands this ensures that parent commands are part of the command path +func (c Command) FullName() string { + if c.commandNamePath == nil { + return c.Name + } + return strings.Join(c.commandNamePath, " ") +} + +// Commands is a slice of Command +type Commands []Command + +// Run invokes the command given the context, parses ctx.Args() to generate command-specific flags +func (c Command) Run(ctx *Context) (err error) { + if len(c.Subcommands) > 0 { + return c.startApp(ctx) + } + + if !c.HideHelp && (HelpFlag != BoolFlag{}) { + // append help to flags + c.Flags = append( + c.Flags, + HelpFlag, + ) + } + + set, err := flagSet(c.Name, c.Flags) + if err != nil { + return err + } + set.SetOutput(ioutil.Discard) + + if c.SkipFlagParsing { + err = set.Parse(append([]string{"--"}, ctx.Args().Tail()...)) + } else if !c.SkipArgReorder { + firstFlagIndex := -1 + terminatorIndex := -1 + for index, arg := range ctx.Args() { + if arg == "--" { + terminatorIndex = index + break + } else if arg == "-" { + // Do nothing. A dash alone is not really a flag. + continue + } else if strings.HasPrefix(arg, "-") && firstFlagIndex == -1 { + firstFlagIndex = index + } + } + + if firstFlagIndex > -1 { + args := ctx.Args() + regularArgs := make([]string, len(args[1:firstFlagIndex])) + copy(regularArgs, args[1:firstFlagIndex]) + + var flagArgs []string + if terminatorIndex > -1 { + flagArgs = args[firstFlagIndex:terminatorIndex] + regularArgs = append(regularArgs, args[terminatorIndex:]...) + } else { + flagArgs = args[firstFlagIndex:] + } + + err = set.Parse(append(flagArgs, regularArgs...)) + } else { + err = set.Parse(ctx.Args().Tail()) + } + } else { + err = set.Parse(ctx.Args().Tail()) + } + + nerr := normalizeFlags(c.Flags, set) + if nerr != nil { + fmt.Fprintln(ctx.App.Writer, nerr) + fmt.Fprintln(ctx.App.Writer) + ShowCommandHelp(ctx, c.Name) + return nerr + } + + context := NewContext(ctx.App, set, ctx) + context.Command = c + if checkCommandCompletions(context, c.Name) { + return nil + } + + if err != nil { + if c.OnUsageError != nil { + err := c.OnUsageError(context, err, false) + HandleExitCoder(err) + return err + } + fmt.Fprintln(context.App.Writer, "Incorrect Usage:", err.Error()) + fmt.Fprintln(context.App.Writer) + ShowCommandHelp(context, c.Name) + return err + } + + if checkCommandHelp(context, c.Name) { + return nil + } + + if c.After != nil { + defer func() { + afterErr := c.After(context) + if afterErr != nil { + HandleExitCoder(err) + if err != nil { + err = NewMultiError(err, afterErr) + } else { + err = afterErr + } + } + }() + } + + if c.Before != nil { + err = c.Before(context) + if err != nil { + ShowCommandHelp(context, c.Name) + HandleExitCoder(err) + return err + } + } + + if c.Action == nil { + c.Action = helpSubcommand.Action + } + + err = HandleAction(c.Action, context) + + if err != nil { + HandleExitCoder(err) + } + return err +} + +// Names returns the names including short names and aliases. +func (c Command) Names() []string { + names := []string{c.Name} + + if c.ShortName != "" { + names = append(names, c.ShortName) + } + + return append(names, c.Aliases...) +} + +// HasName returns true if Command.Name or Command.ShortName matches given name +func (c Command) HasName(name string) bool { + for _, n := range c.Names() { + if n == name { + return true + } + } + return false +} + +func (c Command) startApp(ctx *Context) error { + app := NewApp() + app.Metadata = ctx.App.Metadata + // set the name and usage + app.Name = fmt.Sprintf("%s %s", ctx.App.Name, c.Name) + if c.HelpName == "" { + app.HelpName = c.HelpName + } else { + app.HelpName = app.Name + } + + app.Usage = c.Usage + app.Description = c.Description + app.ArgsUsage = c.ArgsUsage + + // set CommandNotFound + app.CommandNotFound = ctx.App.CommandNotFound + app.CustomAppHelpTemplate = c.CustomHelpTemplate + + // set the flags and commands + app.Commands = c.Subcommands + app.Flags = c.Flags + app.HideHelp = c.HideHelp + + app.Version = ctx.App.Version + app.HideVersion = ctx.App.HideVersion + app.Compiled = ctx.App.Compiled + app.Author = ctx.App.Author + app.Email = ctx.App.Email + app.Writer = ctx.App.Writer + app.ErrWriter = ctx.App.ErrWriter + + app.categories = CommandCategories{} + for _, command := range c.Subcommands { + app.categories = app.categories.AddCommand(command.Category, command) + } + + sort.Sort(app.categories) + + // bash completion + app.EnableBashCompletion = ctx.App.EnableBashCompletion + if c.BashComplete != nil { + app.BashComplete = c.BashComplete + } + + // set the actions + app.Before = c.Before + app.After = c.After + if c.Action != nil { + app.Action = c.Action + } else { + app.Action = helpSubcommand.Action + } + app.OnUsageError = c.OnUsageError + + for index, cc := range app.Commands { + app.Commands[index].commandNamePath = []string{c.Name, cc.Name} + } + + return app.RunAsSubcommand(ctx) +} + +// VisibleFlags returns a slice of the Flags with Hidden=false +func (c Command) VisibleFlags() []Flag { + return visibleFlags(c.Flags) +} diff --git a/vendor/github.com/urfave/cli/command_test.go b/vendor/github.com/urfave/cli/command_test.go new file mode 100644 index 0000000..4ad994c --- /dev/null +++ b/vendor/github.com/urfave/cli/command_test.go @@ -0,0 +1,240 @@ +package cli + +import ( + "errors" + "flag" + "fmt" + "io/ioutil" + "strings" + "testing" +) + +func TestCommandFlagParsing(t *testing.T) { + cases := []struct { + testArgs []string + skipFlagParsing bool + skipArgReorder bool + expectedErr error + }{ + // Test normal "not ignoring flags" flow + {[]string{"test-cmd", "blah", "blah", "-break"}, false, false, errors.New("flag provided but not defined: -break")}, + + // Test no arg reorder + {[]string{"test-cmd", "blah", "blah", "-break"}, false, true, nil}, + + {[]string{"test-cmd", "blah", "blah"}, true, false, nil}, // Test SkipFlagParsing without any args that look like flags + {[]string{"test-cmd", "blah", "-break"}, true, false, nil}, // Test SkipFlagParsing with random flag arg + {[]string{"test-cmd", "blah", "-help"}, true, false, nil}, // Test SkipFlagParsing with "special" help flag arg + } + + for _, c := range cases { + app := NewApp() + app.Writer = ioutil.Discard + set := flag.NewFlagSet("test", 0) + set.Parse(c.testArgs) + + context := NewContext(app, set, nil) + + command := Command{ + Name: "test-cmd", + Aliases: []string{"tc"}, + Usage: "this is for testing", + Description: "testing", + Action: func(_ *Context) error { return nil }, + SkipFlagParsing: c.skipFlagParsing, + SkipArgReorder: c.skipArgReorder, + } + + err := command.Run(context) + + expect(t, err, c.expectedErr) + expect(t, []string(context.Args()), c.testArgs) + } +} + +func TestCommand_Run_DoesNotOverwriteErrorFromBefore(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Name: "bar", + Before: func(c *Context) error { + return fmt.Errorf("before error") + }, + After: func(c *Context) error { + return fmt.Errorf("after error") + }, + }, + } + + err := app.Run([]string{"foo", "bar"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.Contains(err.Error(), "before error") { + t.Errorf("expected text of error from Before method, but got none in \"%v\"", err) + } + if !strings.Contains(err.Error(), "after error") { + t.Errorf("expected text of error from After method, but got none in \"%v\"", err) + } +} + +func TestCommand_Run_BeforeSavesMetadata(t *testing.T) { + var receivedMsgFromAction string + var receivedMsgFromAfter string + + app := NewApp() + app.Commands = []Command{ + { + Name: "bar", + Before: func(c *Context) error { + c.App.Metadata["msg"] = "hello world" + return nil + }, + Action: func(c *Context) error { + msg, ok := c.App.Metadata["msg"] + if !ok { + return errors.New("msg not found") + } + receivedMsgFromAction = msg.(string) + return nil + }, + After: func(c *Context) error { + msg, ok := c.App.Metadata["msg"] + if !ok { + return errors.New("msg not found") + } + receivedMsgFromAfter = msg.(string) + return nil + }, + }, + } + + err := app.Run([]string{"foo", "bar"}) + if err != nil { + t.Fatalf("expected no error from Run, got %s", err) + } + + expectedMsg := "hello world" + + if receivedMsgFromAction != expectedMsg { + t.Fatalf("expected msg from Action to match. Given: %q\nExpected: %q", + receivedMsgFromAction, expectedMsg) + } + if receivedMsgFromAfter != expectedMsg { + t.Fatalf("expected msg from After to match. Given: %q\nExpected: %q", + receivedMsgFromAction, expectedMsg) + } +} + +func TestCommand_OnUsageError_hasCommandContext(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Name: "bar", + Flags: []Flag{ + IntFlag{Name: "flag"}, + }, + OnUsageError: func(c *Context, err error, _ bool) error { + return fmt.Errorf("intercepted in %s: %s", c.Command.Name, err.Error()) + }, + }, + } + + err := app.Run([]string{"foo", "bar", "--flag=wrong"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.HasPrefix(err.Error(), "intercepted in bar") { + t.Errorf("Expect an intercepted error, but got \"%v\"", err) + } +} + +func TestCommand_OnUsageError_WithWrongFlagValue(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Name: "bar", + Flags: []Flag{ + IntFlag{Name: "flag"}, + }, + OnUsageError: func(c *Context, err error, _ bool) error { + if !strings.HasPrefix(err.Error(), "invalid value \"wrong\"") { + t.Errorf("Expect an invalid value error, but got \"%v\"", err) + } + return errors.New("intercepted: " + err.Error()) + }, + }, + } + + err := app.Run([]string{"foo", "bar", "--flag=wrong"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.HasPrefix(err.Error(), "intercepted: invalid value") { + t.Errorf("Expect an intercepted error, but got \"%v\"", err) + } +} + +func TestCommand_OnUsageError_WithSubcommand(t *testing.T) { + app := NewApp() + app.Commands = []Command{ + { + Name: "bar", + Subcommands: []Command{ + { + Name: "baz", + }, + }, + Flags: []Flag{ + IntFlag{Name: "flag"}, + }, + OnUsageError: func(c *Context, err error, _ bool) error { + if !strings.HasPrefix(err.Error(), "invalid value \"wrong\"") { + t.Errorf("Expect an invalid value error, but got \"%v\"", err) + } + return errors.New("intercepted: " + err.Error()) + }, + }, + } + + err := app.Run([]string{"foo", "bar", "--flag=wrong"}) + if err == nil { + t.Fatalf("expected to receive error from Run, got none") + } + + if !strings.HasPrefix(err.Error(), "intercepted: invalid value") { + t.Errorf("Expect an intercepted error, but got \"%v\"", err) + } +} + +func TestCommand_Run_SubcommandsCanUseErrWriter(t *testing.T) { + app := NewApp() + app.ErrWriter = ioutil.Discard + app.Commands = []Command{ + { + Name: "bar", + Usage: "this is for testing", + Subcommands: []Command{ + { + Name: "baz", + Usage: "this is for testing", + Action: func(c *Context) error { + if c.App.ErrWriter != ioutil.Discard { + return fmt.Errorf("ErrWriter not passed") + } + + return nil + }, + }, + }, + }, + } + + err := app.Run([]string{"foo", "bar", "baz"}) + if err != nil { + t.Fatal(err) + } +} diff --git a/vendor/github.com/urfave/cli/context.go b/vendor/github.com/urfave/cli/context.go new file mode 100644 index 0000000..db94191 --- /dev/null +++ b/vendor/github.com/urfave/cli/context.go @@ -0,0 +1,278 @@ +package cli + +import ( + "errors" + "flag" + "reflect" + "strings" + "syscall" +) + +// Context is a type that is passed through to +// each Handler action in a cli application. Context +// can be used to retrieve context-specific Args and +// parsed command-line options. +type Context struct { + App *App + Command Command + shellComplete bool + flagSet *flag.FlagSet + setFlags map[string]bool + parentContext *Context +} + +// NewContext creates a new context. For use in when invoking an App or Command action. +func NewContext(app *App, set *flag.FlagSet, parentCtx *Context) *Context { + c := &Context{App: app, flagSet: set, parentContext: parentCtx} + + if parentCtx != nil { + c.shellComplete = parentCtx.shellComplete + } + + return c +} + +// NumFlags returns the number of flags set +func (c *Context) NumFlags() int { + return c.flagSet.NFlag() +} + +// Set sets a context flag to a value. +func (c *Context) Set(name, value string) error { + c.setFlags = nil + return c.flagSet.Set(name, value) +} + +// GlobalSet sets a context flag to a value on the global flagset +func (c *Context) GlobalSet(name, value string) error { + globalContext(c).setFlags = nil + return globalContext(c).flagSet.Set(name, value) +} + +// IsSet determines if the flag was actually set +func (c *Context) IsSet(name string) bool { + if c.setFlags == nil { + c.setFlags = make(map[string]bool) + + c.flagSet.Visit(func(f *flag.Flag) { + c.setFlags[f.Name] = true + }) + + c.flagSet.VisitAll(func(f *flag.Flag) { + if _, ok := c.setFlags[f.Name]; ok { + return + } + c.setFlags[f.Name] = false + }) + + // XXX hack to support IsSet for flags with EnvVar + // + // There isn't an easy way to do this with the current implementation since + // whether a flag was set via an environment variable is very difficult to + // determine here. Instead, we intend to introduce a backwards incompatible + // change in version 2 to add `IsSet` to the Flag interface to push the + // responsibility closer to where the information required to determine + // whether a flag is set by non-standard means such as environment + // variables is avaliable. + // + // See https://github.com/urfave/cli/issues/294 for additional discussion + flags := c.Command.Flags + if c.Command.Name == "" { // cannot == Command{} since it contains slice types + if c.App != nil { + flags = c.App.Flags + } + } + for _, f := range flags { + eachName(f.GetName(), func(name string) { + if isSet, ok := c.setFlags[name]; isSet || !ok { + return + } + + val := reflect.ValueOf(f) + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + + envVarValue := val.FieldByName("EnvVar") + if !envVarValue.IsValid() { + return + } + + eachName(envVarValue.String(), func(envVar string) { + envVar = strings.TrimSpace(envVar) + if _, ok := syscall.Getenv(envVar); ok { + c.setFlags[name] = true + return + } + }) + }) + } + } + + return c.setFlags[name] +} + +// GlobalIsSet determines if the global flag was actually set +func (c *Context) GlobalIsSet(name string) bool { + ctx := c + if ctx.parentContext != nil { + ctx = ctx.parentContext + } + + for ; ctx != nil; ctx = ctx.parentContext { + if ctx.IsSet(name) { + return true + } + } + return false +} + +// FlagNames returns a slice of flag names used in this context. +func (c *Context) FlagNames() (names []string) { + for _, flag := range c.Command.Flags { + name := strings.Split(flag.GetName(), ",")[0] + if name == "help" { + continue + } + names = append(names, name) + } + return +} + +// GlobalFlagNames returns a slice of global flag names used by the app. +func (c *Context) GlobalFlagNames() (names []string) { + for _, flag := range c.App.Flags { + name := strings.Split(flag.GetName(), ",")[0] + if name == "help" || name == "version" { + continue + } + names = append(names, name) + } + return +} + +// Parent returns the parent context, if any +func (c *Context) Parent() *Context { + return c.parentContext +} + +// value returns the value of the flag coressponding to `name` +func (c *Context) value(name string) interface{} { + return c.flagSet.Lookup(name).Value.(flag.Getter).Get() +} + +// Args contains apps console arguments +type Args []string + +// Args returns the command line arguments associated with the context. +func (c *Context) Args() Args { + args := Args(c.flagSet.Args()) + return args +} + +// NArg returns the number of the command line arguments. +func (c *Context) NArg() int { + return len(c.Args()) +} + +// Get returns the nth argument, or else a blank string +func (a Args) Get(n int) string { + if len(a) > n { + return a[n] + } + return "" +} + +// First returns the first argument, or else a blank string +func (a Args) First() string { + return a.Get(0) +} + +// Tail returns the rest of the arguments (not the first one) +// or else an empty string slice +func (a Args) Tail() []string { + if len(a) >= 2 { + return []string(a)[1:] + } + return []string{} +} + +// Present checks if there are any arguments present +func (a Args) Present() bool { + return len(a) != 0 +} + +// Swap swaps arguments at the given indexes +func (a Args) Swap(from, to int) error { + if from >= len(a) || to >= len(a) { + return errors.New("index out of range") + } + a[from], a[to] = a[to], a[from] + return nil +} + +func globalContext(ctx *Context) *Context { + if ctx == nil { + return nil + } + + for { + if ctx.parentContext == nil { + return ctx + } + ctx = ctx.parentContext + } +} + +func lookupGlobalFlagSet(name string, ctx *Context) *flag.FlagSet { + if ctx.parentContext != nil { + ctx = ctx.parentContext + } + for ; ctx != nil; ctx = ctx.parentContext { + if f := ctx.flagSet.Lookup(name); f != nil { + return ctx.flagSet + } + } + return nil +} + +func copyFlag(name string, ff *flag.Flag, set *flag.FlagSet) { + switch ff.Value.(type) { + case *StringSlice: + default: + set.Set(name, ff.Value.String()) + } +} + +func normalizeFlags(flags []Flag, set *flag.FlagSet) error { + visited := make(map[string]bool) + set.Visit(func(f *flag.Flag) { + visited[f.Name] = true + }) + for _, f := range flags { + parts := strings.Split(f.GetName(), ",") + if len(parts) == 1 { + continue + } + var ff *flag.Flag + for _, name := range parts { + name = strings.Trim(name, " ") + if visited[name] { + if ff != nil { + return errors.New("Cannot use two forms of the same flag: " + name + " " + ff.Name) + } + ff = set.Lookup(name) + } + } + if ff == nil { + continue + } + for _, name := range parts { + name = strings.Trim(name, " ") + if !visited[name] { + copyFlag(name, ff, set) + } + } + } + return nil +} diff --git a/vendor/github.com/urfave/cli/context_test.go b/vendor/github.com/urfave/cli/context_test.go new file mode 100644 index 0000000..7acca10 --- /dev/null +++ b/vendor/github.com/urfave/cli/context_test.go @@ -0,0 +1,403 @@ +package cli + +import ( + "flag" + "os" + "testing" + "time" +) + +func TestNewContext(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int("myflag", 12, "doc") + set.Int64("myflagInt64", int64(12), "doc") + set.Uint("myflagUint", uint(93), "doc") + set.Uint64("myflagUint64", uint64(93), "doc") + set.Float64("myflag64", float64(17), "doc") + globalSet := flag.NewFlagSet("test", 0) + globalSet.Int("myflag", 42, "doc") + globalSet.Int64("myflagInt64", int64(42), "doc") + globalSet.Uint("myflagUint", uint(33), "doc") + globalSet.Uint64("myflagUint64", uint64(33), "doc") + globalSet.Float64("myflag64", float64(47), "doc") + globalCtx := NewContext(nil, globalSet, nil) + command := Command{Name: "mycommand"} + c := NewContext(nil, set, globalCtx) + c.Command = command + expect(t, c.Int("myflag"), 12) + expect(t, c.Int64("myflagInt64"), int64(12)) + expect(t, c.Uint("myflagUint"), uint(93)) + expect(t, c.Uint64("myflagUint64"), uint64(93)) + expect(t, c.Float64("myflag64"), float64(17)) + expect(t, c.GlobalInt("myflag"), 42) + expect(t, c.GlobalInt64("myflagInt64"), int64(42)) + expect(t, c.GlobalUint("myflagUint"), uint(33)) + expect(t, c.GlobalUint64("myflagUint64"), uint64(33)) + expect(t, c.GlobalFloat64("myflag64"), float64(47)) + expect(t, c.Command.Name, "mycommand") +} + +func TestContext_Int(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int("myflag", 12, "doc") + c := NewContext(nil, set, nil) + expect(t, c.Int("myflag"), 12) +} + +func TestContext_Int64(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int64("myflagInt64", 12, "doc") + c := NewContext(nil, set, nil) + expect(t, c.Int64("myflagInt64"), int64(12)) +} + +func TestContext_Uint(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Uint("myflagUint", uint(13), "doc") + c := NewContext(nil, set, nil) + expect(t, c.Uint("myflagUint"), uint(13)) +} + +func TestContext_Uint64(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Uint64("myflagUint64", uint64(9), "doc") + c := NewContext(nil, set, nil) + expect(t, c.Uint64("myflagUint64"), uint64(9)) +} + +func TestContext_GlobalInt(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int("myflag", 12, "doc") + c := NewContext(nil, set, nil) + expect(t, c.GlobalInt("myflag"), 12) + expect(t, c.GlobalInt("nope"), 0) +} + +func TestContext_GlobalInt64(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int64("myflagInt64", 12, "doc") + c := NewContext(nil, set, nil) + expect(t, c.GlobalInt64("myflagInt64"), int64(12)) + expect(t, c.GlobalInt64("nope"), int64(0)) +} + +func TestContext_Float64(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Float64("myflag", float64(17), "doc") + c := NewContext(nil, set, nil) + expect(t, c.Float64("myflag"), float64(17)) +} + +func TestContext_GlobalFloat64(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Float64("myflag", float64(17), "doc") + c := NewContext(nil, set, nil) + expect(t, c.GlobalFloat64("myflag"), float64(17)) + expect(t, c.GlobalFloat64("nope"), float64(0)) +} + +func TestContext_Duration(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Duration("myflag", time.Duration(12*time.Second), "doc") + c := NewContext(nil, set, nil) + expect(t, c.Duration("myflag"), time.Duration(12*time.Second)) +} + +func TestContext_String(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.String("myflag", "hello world", "doc") + c := NewContext(nil, set, nil) + expect(t, c.String("myflag"), "hello world") +} + +func TestContext_Bool(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + c := NewContext(nil, set, nil) + expect(t, c.Bool("myflag"), false) +} + +func TestContext_BoolT(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", true, "doc") + c := NewContext(nil, set, nil) + expect(t, c.BoolT("myflag"), true) +} + +func TestContext_GlobalBool(t *testing.T) { + set := flag.NewFlagSet("test", 0) + + globalSet := flag.NewFlagSet("test-global", 0) + globalSet.Bool("myflag", false, "doc") + globalCtx := NewContext(nil, globalSet, nil) + + c := NewContext(nil, set, globalCtx) + expect(t, c.GlobalBool("myflag"), false) + expect(t, c.GlobalBool("nope"), false) +} + +func TestContext_GlobalBoolT(t *testing.T) { + set := flag.NewFlagSet("test", 0) + + globalSet := flag.NewFlagSet("test-global", 0) + globalSet.Bool("myflag", true, "doc") + globalCtx := NewContext(nil, globalSet, nil) + + c := NewContext(nil, set, globalCtx) + expect(t, c.GlobalBoolT("myflag"), true) + expect(t, c.GlobalBoolT("nope"), false) +} + +func TestContext_Args(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + c := NewContext(nil, set, nil) + set.Parse([]string{"--myflag", "bat", "baz"}) + expect(t, len(c.Args()), 2) + expect(t, c.Bool("myflag"), true) +} + +func TestContext_NArg(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + c := NewContext(nil, set, nil) + set.Parse([]string{"--myflag", "bat", "baz"}) + expect(t, c.NArg(), 2) +} + +func TestContext_IsSet(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + set.String("otherflag", "hello world", "doc") + globalSet := flag.NewFlagSet("test", 0) + globalSet.Bool("myflagGlobal", true, "doc") + globalCtx := NewContext(nil, globalSet, nil) + c := NewContext(nil, set, globalCtx) + set.Parse([]string{"--myflag", "bat", "baz"}) + globalSet.Parse([]string{"--myflagGlobal", "bat", "baz"}) + expect(t, c.IsSet("myflag"), true) + expect(t, c.IsSet("otherflag"), false) + expect(t, c.IsSet("bogusflag"), false) + expect(t, c.IsSet("myflagGlobal"), false) +} + +// XXX Corresponds to hack in context.IsSet for flags with EnvVar field +// Should be moved to `flag_test` in v2 +func TestContext_IsSet_fromEnv(t *testing.T) { + var ( + timeoutIsSet, tIsSet bool + noEnvVarIsSet, nIsSet bool + passwordIsSet, pIsSet bool + unparsableIsSet, uIsSet bool + ) + + clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "15.5") + os.Setenv("APP_PASSWORD", "") + a := App{ + Flags: []Flag{ + Float64Flag{Name: "timeout, t", EnvVar: "APP_TIMEOUT_SECONDS"}, + StringFlag{Name: "password, p", EnvVar: "APP_PASSWORD"}, + Float64Flag{Name: "unparsable, u", EnvVar: "APP_UNPARSABLE"}, + Float64Flag{Name: "no-env-var, n"}, + }, + Action: func(ctx *Context) error { + timeoutIsSet = ctx.IsSet("timeout") + tIsSet = ctx.IsSet("t") + passwordIsSet = ctx.IsSet("password") + pIsSet = ctx.IsSet("p") + unparsableIsSet = ctx.IsSet("unparsable") + uIsSet = ctx.IsSet("u") + noEnvVarIsSet = ctx.IsSet("no-env-var") + nIsSet = ctx.IsSet("n") + return nil + }, + } + a.Run([]string{"run"}) + expect(t, timeoutIsSet, true) + expect(t, tIsSet, true) + expect(t, passwordIsSet, true) + expect(t, pIsSet, true) + expect(t, noEnvVarIsSet, false) + expect(t, nIsSet, false) + + os.Setenv("APP_UNPARSABLE", "foobar") + a.Run([]string{"run"}) + expect(t, unparsableIsSet, false) + expect(t, uIsSet, false) +} + +func TestContext_GlobalIsSet(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + set.String("otherflag", "hello world", "doc") + globalSet := flag.NewFlagSet("test", 0) + globalSet.Bool("myflagGlobal", true, "doc") + globalSet.Bool("myflagGlobalUnset", true, "doc") + globalCtx := NewContext(nil, globalSet, nil) + c := NewContext(nil, set, globalCtx) + set.Parse([]string{"--myflag", "bat", "baz"}) + globalSet.Parse([]string{"--myflagGlobal", "bat", "baz"}) + expect(t, c.GlobalIsSet("myflag"), false) + expect(t, c.GlobalIsSet("otherflag"), false) + expect(t, c.GlobalIsSet("bogusflag"), false) + expect(t, c.GlobalIsSet("myflagGlobal"), true) + expect(t, c.GlobalIsSet("myflagGlobalUnset"), false) + expect(t, c.GlobalIsSet("bogusGlobal"), false) +} + +// XXX Corresponds to hack in context.IsSet for flags with EnvVar field +// Should be moved to `flag_test` in v2 +func TestContext_GlobalIsSet_fromEnv(t *testing.T) { + var ( + timeoutIsSet, tIsSet bool + noEnvVarIsSet, nIsSet bool + passwordIsSet, pIsSet bool + unparsableIsSet, uIsSet bool + ) + + clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "15.5") + os.Setenv("APP_PASSWORD", "") + a := App{ + Flags: []Flag{ + Float64Flag{Name: "timeout, t", EnvVar: "APP_TIMEOUT_SECONDS"}, + StringFlag{Name: "password, p", EnvVar: "APP_PASSWORD"}, + Float64Flag{Name: "no-env-var, n"}, + Float64Flag{Name: "unparsable, u", EnvVar: "APP_UNPARSABLE"}, + }, + Commands: []Command{ + { + Name: "hello", + Action: func(ctx *Context) error { + timeoutIsSet = ctx.GlobalIsSet("timeout") + tIsSet = ctx.GlobalIsSet("t") + passwordIsSet = ctx.GlobalIsSet("password") + pIsSet = ctx.GlobalIsSet("p") + unparsableIsSet = ctx.GlobalIsSet("unparsable") + uIsSet = ctx.GlobalIsSet("u") + noEnvVarIsSet = ctx.GlobalIsSet("no-env-var") + nIsSet = ctx.GlobalIsSet("n") + return nil + }, + }, + }, + } + if err := a.Run([]string{"run", "hello"}); err != nil { + t.Logf("error running Run(): %+v", err) + } + expect(t, timeoutIsSet, true) + expect(t, tIsSet, true) + expect(t, passwordIsSet, true) + expect(t, pIsSet, true) + expect(t, noEnvVarIsSet, false) + expect(t, nIsSet, false) + + os.Setenv("APP_UNPARSABLE", "foobar") + if err := a.Run([]string{"run"}); err != nil { + t.Logf("error running Run(): %+v", err) + } + expect(t, unparsableIsSet, false) + expect(t, uIsSet, false) +} + +func TestContext_NumFlags(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Bool("myflag", false, "doc") + set.String("otherflag", "hello world", "doc") + globalSet := flag.NewFlagSet("test", 0) + globalSet.Bool("myflagGlobal", true, "doc") + globalCtx := NewContext(nil, globalSet, nil) + c := NewContext(nil, set, globalCtx) + set.Parse([]string{"--myflag", "--otherflag=foo"}) + globalSet.Parse([]string{"--myflagGlobal"}) + expect(t, c.NumFlags(), 2) +} + +func TestContext_GlobalFlag(t *testing.T) { + var globalFlag string + var globalFlagSet bool + app := NewApp() + app.Flags = []Flag{ + StringFlag{Name: "global, g", Usage: "global"}, + } + app.Action = func(c *Context) error { + globalFlag = c.GlobalString("global") + globalFlagSet = c.GlobalIsSet("global") + return nil + } + app.Run([]string{"command", "-g", "foo"}) + expect(t, globalFlag, "foo") + expect(t, globalFlagSet, true) + +} + +func TestContext_GlobalFlagsInSubcommands(t *testing.T) { + subcommandRun := false + parentFlag := false + app := NewApp() + + app.Flags = []Flag{ + BoolFlag{Name: "debug, d", Usage: "Enable debugging"}, + } + + app.Commands = []Command{ + { + Name: "foo", + Flags: []Flag{ + BoolFlag{Name: "parent, p", Usage: "Parent flag"}, + }, + Subcommands: []Command{ + { + Name: "bar", + Action: func(c *Context) error { + if c.GlobalBool("debug") { + subcommandRun = true + } + if c.GlobalBool("parent") { + parentFlag = true + } + return nil + }, + }, + }, + }, + } + + app.Run([]string{"command", "-d", "foo", "-p", "bar"}) + + expect(t, subcommandRun, true) + expect(t, parentFlag, true) +} + +func TestContext_Set(t *testing.T) { + set := flag.NewFlagSet("test", 0) + set.Int("int", 5, "an int") + c := NewContext(nil, set, nil) + + expect(t, c.IsSet("int"), false) + c.Set("int", "1") + expect(t, c.Int("int"), 1) + expect(t, c.IsSet("int"), true) +} + +func TestContext_GlobalSet(t *testing.T) { + gSet := flag.NewFlagSet("test", 0) + gSet.Int("int", 5, "an int") + + set := flag.NewFlagSet("sub", 0) + set.Int("int", 3, "an int") + + pc := NewContext(nil, gSet, nil) + c := NewContext(nil, set, pc) + + c.Set("int", "1") + expect(t, c.Int("int"), 1) + expect(t, c.GlobalInt("int"), 5) + + expect(t, c.GlobalIsSet("int"), false) + c.GlobalSet("int", "1") + expect(t, c.Int("int"), 1) + expect(t, c.GlobalInt("int"), 1) + expect(t, c.GlobalIsSet("int"), true) +} diff --git a/vendor/github.com/urfave/cli/errors.go b/vendor/github.com/urfave/cli/errors.go new file mode 100644 index 0000000..562b295 --- /dev/null +++ b/vendor/github.com/urfave/cli/errors.go @@ -0,0 +1,115 @@ +package cli + +import ( + "fmt" + "io" + "os" + "strings" +) + +// OsExiter is the function used when the app exits. If not set defaults to os.Exit. +var OsExiter = os.Exit + +// ErrWriter is used to write errors to the user. This can be anything +// implementing the io.Writer interface and defaults to os.Stderr. +var ErrWriter io.Writer = os.Stderr + +// MultiError is an error that wraps multiple errors. +type MultiError struct { + Errors []error +} + +// NewMultiError creates a new MultiError. Pass in one or more errors. +func NewMultiError(err ...error) MultiError { + return MultiError{Errors: err} +} + +// Error implements the error interface. +func (m MultiError) Error() string { + errs := make([]string, len(m.Errors)) + for i, err := range m.Errors { + errs[i] = err.Error() + } + + return strings.Join(errs, "\n") +} + +type ErrorFormatter interface { + Format(s fmt.State, verb rune) +} + +// ExitCoder is the interface checked by `App` and `Command` for a custom exit +// code +type ExitCoder interface { + error + ExitCode() int +} + +// ExitError fulfills both the builtin `error` interface and `ExitCoder` +type ExitError struct { + exitCode int + message interface{} +} + +// NewExitError makes a new *ExitError +func NewExitError(message interface{}, exitCode int) *ExitError { + return &ExitError{ + exitCode: exitCode, + message: message, + } +} + +// Error returns the string message, fulfilling the interface required by +// `error` +func (ee *ExitError) Error() string { + return fmt.Sprintf("%v", ee.message) +} + +// ExitCode returns the exit code, fulfilling the interface required by +// `ExitCoder` +func (ee *ExitError) ExitCode() int { + return ee.exitCode +} + +// HandleExitCoder checks if the error fulfills the ExitCoder interface, and if +// so prints the error to stderr (if it is non-empty) and calls OsExiter with the +// given exit code. If the given error is a MultiError, then this func is +// called on all members of the Errors slice and calls OsExiter with the last exit code. +func HandleExitCoder(err error) { + if err == nil { + return + } + + if exitErr, ok := err.(ExitCoder); ok { + if err.Error() != "" { + if _, ok := exitErr.(ErrorFormatter); ok { + fmt.Fprintf(ErrWriter, "%+v\n", err) + } else { + fmt.Fprintln(ErrWriter, err) + } + } + OsExiter(exitErr.ExitCode()) + return + } + + if multiErr, ok := err.(MultiError); ok { + code := handleMultiError(multiErr) + OsExiter(code) + return + } +} + +func handleMultiError(multiErr MultiError) int { + code := 1 + for _, merr := range multiErr.Errors { + if multiErr2, ok := merr.(MultiError); ok { + code = handleMultiError(multiErr2) + } else { + fmt.Fprintln(ErrWriter, merr) + if exitErr, ok := merr.(ExitCoder); ok { + code = exitErr.ExitCode() + } + } + } + return code +} diff --git a/vendor/github.com/urfave/cli/errors_test.go b/vendor/github.com/urfave/cli/errors_test.go new file mode 100644 index 0000000..9b609c5 --- /dev/null +++ b/vendor/github.com/urfave/cli/errors_test.go @@ -0,0 +1,122 @@ +package cli + +import ( + "bytes" + "errors" + "fmt" + "testing" +) + +func TestHandleExitCoder_nil(t *testing.T) { + exitCode := 0 + called := false + + OsExiter = func(rc int) { + if !called { + exitCode = rc + called = true + } + } + + defer func() { OsExiter = fakeOsExiter }() + + HandleExitCoder(nil) + + expect(t, exitCode, 0) + expect(t, called, false) +} + +func TestHandleExitCoder_ExitCoder(t *testing.T) { + exitCode := 0 + called := false + + OsExiter = func(rc int) { + if !called { + exitCode = rc + called = true + } + } + + defer func() { OsExiter = fakeOsExiter }() + + HandleExitCoder(NewExitError("galactic perimeter breach", 9)) + + expect(t, exitCode, 9) + expect(t, called, true) +} + +func TestHandleExitCoder_MultiErrorWithExitCoder(t *testing.T) { + exitCode := 0 + called := false + + OsExiter = func(rc int) { + if !called { + exitCode = rc + called = true + } + } + + defer func() { OsExiter = fakeOsExiter }() + + exitErr := NewExitError("galactic perimeter breach", 9) + exitErr2 := NewExitError("last ExitCoder", 11) + err := NewMultiError(errors.New("wowsa"), errors.New("egad"), exitErr, exitErr2) + HandleExitCoder(err) + + expect(t, exitCode, 11) + expect(t, called, true) +} + +// make a stub to not import pkg/errors +type ErrorWithFormat struct { + error +} + +func NewErrorWithFormat(m string) *ErrorWithFormat { + return &ErrorWithFormat{error: errors.New(m)} +} + +func (f *ErrorWithFormat) Format(s fmt.State, verb rune) { + fmt.Fprintf(s, "This the format: %v", f.error) +} + +func TestHandleExitCoder_ErrorWithFormat(t *testing.T) { + called := false + + OsExiter = func(rc int) { + if !called { + called = true + } + } + ErrWriter = &bytes.Buffer{} + + defer func() { + OsExiter = fakeOsExiter + ErrWriter = fakeErrWriter + }() + + err := NewExitError(NewErrorWithFormat("I am formatted"), 1) + HandleExitCoder(err) + + expect(t, called, true) + expect(t, ErrWriter.(*bytes.Buffer).String(), "This the format: I am formatted\n") +} + +func TestHandleExitCoder_MultiErrorWithFormat(t *testing.T) { + called := false + + OsExiter = func(rc int) { + if !called { + called = true + } + } + ErrWriter = &bytes.Buffer{} + + defer func() { OsExiter = fakeOsExiter }() + + err := NewMultiError(NewErrorWithFormat("err1"), NewErrorWithFormat("err2")) + HandleExitCoder(err) + + expect(t, called, true) + expect(t, ErrWriter.(*bytes.Buffer).String(), "This the format: err1\nThis the format: err2\n") +} diff --git a/vendor/github.com/urfave/cli/flag-types.json b/vendor/github.com/urfave/cli/flag-types.json new file mode 100644 index 0000000..1223107 --- /dev/null +++ b/vendor/github.com/urfave/cli/flag-types.json @@ -0,0 +1,93 @@ +[ + { + "name": "Bool", + "type": "bool", + "value": false, + "context_default": "false", + "parser": "strconv.ParseBool(f.Value.String())" + }, + { + "name": "BoolT", + "type": "bool", + "value": false, + "doctail": " that is true by default", + "context_default": "false", + "parser": "strconv.ParseBool(f.Value.String())" + }, + { + "name": "Duration", + "type": "time.Duration", + "doctail": " (see https://golang.org/pkg/time/#ParseDuration)", + "context_default": "0", + "parser": "time.ParseDuration(f.Value.String())" + }, + { + "name": "Float64", + "type": "float64", + "context_default": "0", + "parser": "strconv.ParseFloat(f.Value.String(), 64)" + }, + { + "name": "Generic", + "type": "Generic", + "dest": false, + "context_default": "nil", + "context_type": "interface{}" + }, + { + "name": "Int64", + "type": "int64", + "context_default": "0", + "parser": "strconv.ParseInt(f.Value.String(), 0, 64)" + }, + { + "name": "Int", + "type": "int", + "context_default": "0", + "parser": "strconv.ParseInt(f.Value.String(), 0, 64)", + "parser_cast": "int(parsed)" + }, + { + "name": "IntSlice", + "type": "*IntSlice", + "dest": false, + "context_default": "nil", + "context_type": "[]int", + "parser": "(f.Value.(*IntSlice)).Value(), error(nil)" + }, + { + "name": "Int64Slice", + "type": "*Int64Slice", + "dest": false, + "context_default": "nil", + "context_type": "[]int64", + "parser": "(f.Value.(*Int64Slice)).Value(), error(nil)" + }, + { + "name": "String", + "type": "string", + "context_default": "\"\"", + "parser": "f.Value.String(), error(nil)" + }, + { + "name": "StringSlice", + "type": "*StringSlice", + "dest": false, + "context_default": "nil", + "context_type": "[]string", + "parser": "(f.Value.(*StringSlice)).Value(), error(nil)" + }, + { + "name": "Uint64", + "type": "uint64", + "context_default": "0", + "parser": "strconv.ParseUint(f.Value.String(), 0, 64)" + }, + { + "name": "Uint", + "type": "uint", + "context_default": "0", + "parser": "strconv.ParseUint(f.Value.String(), 0, 64)", + "parser_cast": "uint(parsed)" + } +] diff --git a/vendor/github.com/urfave/cli/flag.go b/vendor/github.com/urfave/cli/flag.go new file mode 100644 index 0000000..877ff35 --- /dev/null +++ b/vendor/github.com/urfave/cli/flag.go @@ -0,0 +1,799 @@ +package cli + +import ( + "flag" + "fmt" + "reflect" + "runtime" + "strconv" + "strings" + "syscall" + "time" +) + +const defaultPlaceholder = "value" + +// BashCompletionFlag enables bash-completion for all commands and subcommands +var BashCompletionFlag Flag = BoolFlag{ + Name: "generate-bash-completion", + Hidden: true, +} + +// VersionFlag prints the version for the application +var VersionFlag Flag = BoolFlag{ + Name: "version, v", + Usage: "print the version", +} + +// HelpFlag prints the help for all commands and subcommands +// Set to the zero value (BoolFlag{}) to disable flag -- keeps subcommand +// unless HideHelp is set to true) +var HelpFlag Flag = BoolFlag{ + Name: "help, h", + Usage: "show help", +} + +// FlagStringer converts a flag definition to a string. This is used by help +// to display a flag. +var FlagStringer FlagStringFunc = stringifyFlag + +// FlagsByName is a slice of Flag. +type FlagsByName []Flag + +func (f FlagsByName) Len() int { + return len(f) +} + +func (f FlagsByName) Less(i, j int) bool { + return f[i].GetName() < f[j].GetName() +} + +func (f FlagsByName) Swap(i, j int) { + f[i], f[j] = f[j], f[i] +} + +// Flag is a common interface related to parsing flags in cli. +// For more advanced flag parsing techniques, it is recommended that +// this interface be implemented. +type Flag interface { + fmt.Stringer + // Apply Flag settings to the given flag set + Apply(*flag.FlagSet) + GetName() string +} + +// errorableFlag is an interface that allows us to return errors during apply +// it allows flags defined in this library to return errors in a fashion backwards compatible +// TODO remove in v2 and modify the existing Flag interface to return errors +type errorableFlag interface { + Flag + + ApplyWithError(*flag.FlagSet) error +} + +func flagSet(name string, flags []Flag) (*flag.FlagSet, error) { + set := flag.NewFlagSet(name, flag.ContinueOnError) + + for _, f := range flags { + //TODO remove in v2 when errorableFlag is removed + if ef, ok := f.(errorableFlag); ok { + if err := ef.ApplyWithError(set); err != nil { + return nil, err + } + } else { + f.Apply(set) + } + } + return set, nil +} + +func eachName(longName string, fn func(string)) { + parts := strings.Split(longName, ",") + for _, name := range parts { + name = strings.Trim(name, " ") + fn(name) + } +} + +// Generic is a generic parseable type identified by a specific flag +type Generic interface { + Set(value string) error + String() string +} + +// Apply takes the flagset and calls Set on the generic flag with the value +// provided by the user for parsing by the flag +// Ignores parsing errors +func (f GenericFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError takes the flagset and calls Set on the generic flag with the value +// provided by the user for parsing by the flag +func (f GenericFlag) ApplyWithError(set *flag.FlagSet) error { + val := f.Value + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + if err := val.Set(envVal); err != nil { + return fmt.Errorf("could not parse %s as value for flag %s: %s", envVal, f.Name, err) + } + break + } + } + } + + eachName(f.Name, func(name string) { + set.Var(f.Value, name, f.Usage) + }) + + return nil +} + +// StringSlice is an opaque type for []string to satisfy flag.Value and flag.Getter +type StringSlice []string + +// Set appends the string value to the list of values +func (f *StringSlice) Set(value string) error { + *f = append(*f, value) + return nil +} + +// String returns a readable representation of this value (for usage defaults) +func (f *StringSlice) String() string { + return fmt.Sprintf("%s", *f) +} + +// Value returns the slice of strings set by this flag +func (f *StringSlice) Value() []string { + return *f +} + +// Get returns the slice of strings set by this flag +func (f *StringSlice) Get() interface{} { + return *f +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f StringSliceFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f StringSliceFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + newVal := &StringSlice{} + for _, s := range strings.Split(envVal, ",") { + s = strings.TrimSpace(s) + if err := newVal.Set(s); err != nil { + return fmt.Errorf("could not parse %s as string value for flag %s: %s", envVal, f.Name, err) + } + } + f.Value = newVal + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Value == nil { + f.Value = &StringSlice{} + } + set.Var(f.Value, name, f.Usage) + }) + + return nil +} + +// IntSlice is an opaque type for []int to satisfy flag.Value and flag.Getter +type IntSlice []int + +// Set parses the value into an integer and appends it to the list of values +func (f *IntSlice) Set(value string) error { + tmp, err := strconv.Atoi(value) + if err != nil { + return err + } + *f = append(*f, tmp) + return nil +} + +// String returns a readable representation of this value (for usage defaults) +func (f *IntSlice) String() string { + return fmt.Sprintf("%#v", *f) +} + +// Value returns the slice of ints set by this flag +func (f *IntSlice) Value() []int { + return *f +} + +// Get returns the slice of ints set by this flag +func (f *IntSlice) Get() interface{} { + return *f +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f IntSliceFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f IntSliceFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + newVal := &IntSlice{} + for _, s := range strings.Split(envVal, ",") { + s = strings.TrimSpace(s) + if err := newVal.Set(s); err != nil { + return fmt.Errorf("could not parse %s as int slice value for flag %s: %s", envVal, f.Name, err) + } + } + f.Value = newVal + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Value == nil { + f.Value = &IntSlice{} + } + set.Var(f.Value, name, f.Usage) + }) + + return nil +} + +// Int64Slice is an opaque type for []int to satisfy flag.Value and flag.Getter +type Int64Slice []int64 + +// Set parses the value into an integer and appends it to the list of values +func (f *Int64Slice) Set(value string) error { + tmp, err := strconv.ParseInt(value, 10, 64) + if err != nil { + return err + } + *f = append(*f, tmp) + return nil +} + +// String returns a readable representation of this value (for usage defaults) +func (f *Int64Slice) String() string { + return fmt.Sprintf("%#v", *f) +} + +// Value returns the slice of ints set by this flag +func (f *Int64Slice) Value() []int64 { + return *f +} + +// Get returns the slice of ints set by this flag +func (f *Int64Slice) Get() interface{} { + return *f +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f Int64SliceFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f Int64SliceFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + newVal := &Int64Slice{} + for _, s := range strings.Split(envVal, ",") { + s = strings.TrimSpace(s) + if err := newVal.Set(s); err != nil { + return fmt.Errorf("could not parse %s as int64 slice value for flag %s: %s", envVal, f.Name, err) + } + } + f.Value = newVal + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Value == nil { + f.Value = &Int64Slice{} + } + set.Var(f.Value, name, f.Usage) + }) + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f BoolFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f BoolFlag) ApplyWithError(set *flag.FlagSet) error { + val := false + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + if envVal == "" { + val = false + break + } + + envValBool, err := strconv.ParseBool(envVal) + if err != nil { + return fmt.Errorf("could not parse %s as bool value for flag %s: %s", envVal, f.Name, err) + } + + val = envValBool + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.BoolVar(f.Destination, name, val, f.Usage) + return + } + set.Bool(name, val, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f BoolTFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f BoolTFlag) ApplyWithError(set *flag.FlagSet) error { + val := true + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + if envVal == "" { + val = false + break + } + + envValBool, err := strconv.ParseBool(envVal) + if err != nil { + return fmt.Errorf("could not parse %s as bool value for flag %s: %s", envVal, f.Name, err) + } + + val = envValBool + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.BoolVar(f.Destination, name, val, f.Usage) + return + } + set.Bool(name, val, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f StringFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f StringFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + f.Value = envVal + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.StringVar(f.Destination, name, f.Value, f.Usage) + return + } + set.String(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f IntFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f IntFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValInt, err := strconv.ParseInt(envVal, 0, 64) + if err != nil { + return fmt.Errorf("could not parse %s as int value for flag %s: %s", envVal, f.Name, err) + } + f.Value = int(envValInt) + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.IntVar(f.Destination, name, f.Value, f.Usage) + return + } + set.Int(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f Int64Flag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f Int64Flag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValInt, err := strconv.ParseInt(envVal, 0, 64) + if err != nil { + return fmt.Errorf("could not parse %s as int value for flag %s: %s", envVal, f.Name, err) + } + + f.Value = envValInt + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.Int64Var(f.Destination, name, f.Value, f.Usage) + return + } + set.Int64(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f UintFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f UintFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValInt, err := strconv.ParseUint(envVal, 0, 64) + if err != nil { + return fmt.Errorf("could not parse %s as uint value for flag %s: %s", envVal, f.Name, err) + } + + f.Value = uint(envValInt) + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.UintVar(f.Destination, name, f.Value, f.Usage) + return + } + set.Uint(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f Uint64Flag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f Uint64Flag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValInt, err := strconv.ParseUint(envVal, 0, 64) + if err != nil { + return fmt.Errorf("could not parse %s as uint64 value for flag %s: %s", envVal, f.Name, err) + } + + f.Value = uint64(envValInt) + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.Uint64Var(f.Destination, name, f.Value, f.Usage) + return + } + set.Uint64(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f DurationFlag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f DurationFlag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValDuration, err := time.ParseDuration(envVal) + if err != nil { + return fmt.Errorf("could not parse %s as duration for flag %s: %s", envVal, f.Name, err) + } + + f.Value = envValDuration + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.DurationVar(f.Destination, name, f.Value, f.Usage) + return + } + set.Duration(name, f.Value, f.Usage) + }) + + return nil +} + +// Apply populates the flag given the flag set and environment +// Ignores errors +func (f Float64Flag) Apply(set *flag.FlagSet) { + f.ApplyWithError(set) +} + +// ApplyWithError populates the flag given the flag set and environment +func (f Float64Flag) ApplyWithError(set *flag.FlagSet) error { + if f.EnvVar != "" { + for _, envVar := range strings.Split(f.EnvVar, ",") { + envVar = strings.TrimSpace(envVar) + if envVal, ok := syscall.Getenv(envVar); ok { + envValFloat, err := strconv.ParseFloat(envVal, 10) + if err != nil { + return fmt.Errorf("could not parse %s as float64 value for flag %s: %s", envVal, f.Name, err) + } + + f.Value = float64(envValFloat) + break + } + } + } + + eachName(f.Name, func(name string) { + if f.Destination != nil { + set.Float64Var(f.Destination, name, f.Value, f.Usage) + return + } + set.Float64(name, f.Value, f.Usage) + }) + + return nil +} + +func visibleFlags(fl []Flag) []Flag { + visible := []Flag{} + for _, flag := range fl { + field := flagValue(flag).FieldByName("Hidden") + if !field.IsValid() || !field.Bool() { + visible = append(visible, flag) + } + } + return visible +} + +func prefixFor(name string) (prefix string) { + if len(name) == 1 { + prefix = "-" + } else { + prefix = "--" + } + + return +} + +// Returns the placeholder, if any, and the unquoted usage string. +func unquoteUsage(usage string) (string, string) { + for i := 0; i < len(usage); i++ { + if usage[i] == '`' { + for j := i + 1; j < len(usage); j++ { + if usage[j] == '`' { + name := usage[i+1 : j] + usage = usage[:i] + name + usage[j+1:] + return name, usage + } + } + break + } + } + return "", usage +} + +func prefixedNames(fullName, placeholder string) string { + var prefixed string + parts := strings.Split(fullName, ",") + for i, name := range parts { + name = strings.Trim(name, " ") + prefixed += prefixFor(name) + name + if placeholder != "" { + prefixed += " " + placeholder + } + if i < len(parts)-1 { + prefixed += ", " + } + } + return prefixed +} + +func withEnvHint(envVar, str string) string { + envText := "" + if envVar != "" { + prefix := "$" + suffix := "" + sep := ", $" + if runtime.GOOS == "windows" { + prefix = "%" + suffix = "%" + sep = "%, %" + } + envText = fmt.Sprintf(" [%s%s%s]", prefix, strings.Join(strings.Split(envVar, ","), sep), suffix) + } + return str + envText +} + +func flagValue(f Flag) reflect.Value { + fv := reflect.ValueOf(f) + for fv.Kind() == reflect.Ptr { + fv = reflect.Indirect(fv) + } + return fv +} + +func stringifyFlag(f Flag) string { + fv := flagValue(f) + + switch f.(type) { + case IntSliceFlag: + return withEnvHint(fv.FieldByName("EnvVar").String(), + stringifyIntSliceFlag(f.(IntSliceFlag))) + case Int64SliceFlag: + return withEnvHint(fv.FieldByName("EnvVar").String(), + stringifyInt64SliceFlag(f.(Int64SliceFlag))) + case StringSliceFlag: + return withEnvHint(fv.FieldByName("EnvVar").String(), + stringifyStringSliceFlag(f.(StringSliceFlag))) + } + + placeholder, usage := unquoteUsage(fv.FieldByName("Usage").String()) + + needsPlaceholder := false + defaultValueString := "" + + if val := fv.FieldByName("Value"); val.IsValid() { + needsPlaceholder = true + defaultValueString = fmt.Sprintf(" (default: %v)", val.Interface()) + + if val.Kind() == reflect.String && val.String() != "" { + defaultValueString = fmt.Sprintf(" (default: %q)", val.String()) + } + } + + if defaultValueString == " (default: )" { + defaultValueString = "" + } + + if needsPlaceholder && placeholder == "" { + placeholder = defaultPlaceholder + } + + usageWithDefault := strings.TrimSpace(fmt.Sprintf("%s%s", usage, defaultValueString)) + + return withEnvHint(fv.FieldByName("EnvVar").String(), + fmt.Sprintf("%s\t%s", prefixedNames(fv.FieldByName("Name").String(), placeholder), usageWithDefault)) +} + +func stringifyIntSliceFlag(f IntSliceFlag) string { + defaultVals := []string{} + if f.Value != nil && len(f.Value.Value()) > 0 { + for _, i := range f.Value.Value() { + defaultVals = append(defaultVals, fmt.Sprintf("%d", i)) + } + } + + return stringifySliceFlag(f.Usage, f.Name, defaultVals) +} + +func stringifyInt64SliceFlag(f Int64SliceFlag) string { + defaultVals := []string{} + if f.Value != nil && len(f.Value.Value()) > 0 { + for _, i := range f.Value.Value() { + defaultVals = append(defaultVals, fmt.Sprintf("%d", i)) + } + } + + return stringifySliceFlag(f.Usage, f.Name, defaultVals) +} + +func stringifyStringSliceFlag(f StringSliceFlag) string { + defaultVals := []string{} + if f.Value != nil && len(f.Value.Value()) > 0 { + for _, s := range f.Value.Value() { + if len(s) > 0 { + defaultVals = append(defaultVals, fmt.Sprintf("%q", s)) + } + } + } + + return stringifySliceFlag(f.Usage, f.Name, defaultVals) +} + +func stringifySliceFlag(usage, name string, defaultVals []string) string { + placeholder, usage := unquoteUsage(usage) + if placeholder == "" { + placeholder = defaultPlaceholder + } + + defaultVal := "" + if len(defaultVals) > 0 { + defaultVal = fmt.Sprintf(" (default: %s)", strings.Join(defaultVals, ", ")) + } + + usageWithDefault := strings.TrimSpace(fmt.Sprintf("%s%s", usage, defaultVal)) + return fmt.Sprintf("%s\t%s", prefixedNames(name, placeholder), usageWithDefault) +} diff --git a/vendor/github.com/urfave/cli/flag_generated.go b/vendor/github.com/urfave/cli/flag_generated.go new file mode 100644 index 0000000..491b619 --- /dev/null +++ b/vendor/github.com/urfave/cli/flag_generated.go @@ -0,0 +1,627 @@ +package cli + +import ( + "flag" + "strconv" + "time" +) + +// WARNING: This file is generated! + +// BoolFlag is a flag with type bool +type BoolFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Destination *bool +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f BoolFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f BoolFlag) GetName() string { + return f.Name +} + +// Bool looks up the value of a local BoolFlag, returns +// false if not found +func (c *Context) Bool(name string) bool { + return lookupBool(name, c.flagSet) +} + +// GlobalBool looks up the value of a global BoolFlag, returns +// false if not found +func (c *Context) GlobalBool(name string) bool { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupBool(name, fs) + } + return false +} + +func lookupBool(name string, set *flag.FlagSet) bool { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseBool(f.Value.String()) + if err != nil { + return false + } + return parsed + } + return false +} + +// BoolTFlag is a flag with type bool that is true by default +type BoolTFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Destination *bool +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f BoolTFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f BoolTFlag) GetName() string { + return f.Name +} + +// BoolT looks up the value of a local BoolTFlag, returns +// false if not found +func (c *Context) BoolT(name string) bool { + return lookupBoolT(name, c.flagSet) +} + +// GlobalBoolT looks up the value of a global BoolTFlag, returns +// false if not found +func (c *Context) GlobalBoolT(name string) bool { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupBoolT(name, fs) + } + return false +} + +func lookupBoolT(name string, set *flag.FlagSet) bool { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseBool(f.Value.String()) + if err != nil { + return false + } + return parsed + } + return false +} + +// DurationFlag is a flag with type time.Duration (see https://golang.org/pkg/time/#ParseDuration) +type DurationFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value time.Duration + Destination *time.Duration +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f DurationFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f DurationFlag) GetName() string { + return f.Name +} + +// Duration looks up the value of a local DurationFlag, returns +// 0 if not found +func (c *Context) Duration(name string) time.Duration { + return lookupDuration(name, c.flagSet) +} + +// GlobalDuration looks up the value of a global DurationFlag, returns +// 0 if not found +func (c *Context) GlobalDuration(name string) time.Duration { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupDuration(name, fs) + } + return 0 +} + +func lookupDuration(name string, set *flag.FlagSet) time.Duration { + f := set.Lookup(name) + if f != nil { + parsed, err := time.ParseDuration(f.Value.String()) + if err != nil { + return 0 + } + return parsed + } + return 0 +} + +// Float64Flag is a flag with type float64 +type Float64Flag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value float64 + Destination *float64 +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f Float64Flag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f Float64Flag) GetName() string { + return f.Name +} + +// Float64 looks up the value of a local Float64Flag, returns +// 0 if not found +func (c *Context) Float64(name string) float64 { + return lookupFloat64(name, c.flagSet) +} + +// GlobalFloat64 looks up the value of a global Float64Flag, returns +// 0 if not found +func (c *Context) GlobalFloat64(name string) float64 { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupFloat64(name, fs) + } + return 0 +} + +func lookupFloat64(name string, set *flag.FlagSet) float64 { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseFloat(f.Value.String(), 64) + if err != nil { + return 0 + } + return parsed + } + return 0 +} + +// GenericFlag is a flag with type Generic +type GenericFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value Generic +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f GenericFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f GenericFlag) GetName() string { + return f.Name +} + +// Generic looks up the value of a local GenericFlag, returns +// nil if not found +func (c *Context) Generic(name string) interface{} { + return lookupGeneric(name, c.flagSet) +} + +// GlobalGeneric looks up the value of a global GenericFlag, returns +// nil if not found +func (c *Context) GlobalGeneric(name string) interface{} { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupGeneric(name, fs) + } + return nil +} + +func lookupGeneric(name string, set *flag.FlagSet) interface{} { + f := set.Lookup(name) + if f != nil { + parsed, err := f.Value, error(nil) + if err != nil { + return nil + } + return parsed + } + return nil +} + +// Int64Flag is a flag with type int64 +type Int64Flag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value int64 + Destination *int64 +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f Int64Flag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f Int64Flag) GetName() string { + return f.Name +} + +// Int64 looks up the value of a local Int64Flag, returns +// 0 if not found +func (c *Context) Int64(name string) int64 { + return lookupInt64(name, c.flagSet) +} + +// GlobalInt64 looks up the value of a global Int64Flag, returns +// 0 if not found +func (c *Context) GlobalInt64(name string) int64 { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupInt64(name, fs) + } + return 0 +} + +func lookupInt64(name string, set *flag.FlagSet) int64 { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseInt(f.Value.String(), 0, 64) + if err != nil { + return 0 + } + return parsed + } + return 0 +} + +// IntFlag is a flag with type int +type IntFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value int + Destination *int +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f IntFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f IntFlag) GetName() string { + return f.Name +} + +// Int looks up the value of a local IntFlag, returns +// 0 if not found +func (c *Context) Int(name string) int { + return lookupInt(name, c.flagSet) +} + +// GlobalInt looks up the value of a global IntFlag, returns +// 0 if not found +func (c *Context) GlobalInt(name string) int { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupInt(name, fs) + } + return 0 +} + +func lookupInt(name string, set *flag.FlagSet) int { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseInt(f.Value.String(), 0, 64) + if err != nil { + return 0 + } + return int(parsed) + } + return 0 +} + +// IntSliceFlag is a flag with type *IntSlice +type IntSliceFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value *IntSlice +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f IntSliceFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f IntSliceFlag) GetName() string { + return f.Name +} + +// IntSlice looks up the value of a local IntSliceFlag, returns +// nil if not found +func (c *Context) IntSlice(name string) []int { + return lookupIntSlice(name, c.flagSet) +} + +// GlobalIntSlice looks up the value of a global IntSliceFlag, returns +// nil if not found +func (c *Context) GlobalIntSlice(name string) []int { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupIntSlice(name, fs) + } + return nil +} + +func lookupIntSlice(name string, set *flag.FlagSet) []int { + f := set.Lookup(name) + if f != nil { + parsed, err := (f.Value.(*IntSlice)).Value(), error(nil) + if err != nil { + return nil + } + return parsed + } + return nil +} + +// Int64SliceFlag is a flag with type *Int64Slice +type Int64SliceFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value *Int64Slice +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f Int64SliceFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f Int64SliceFlag) GetName() string { + return f.Name +} + +// Int64Slice looks up the value of a local Int64SliceFlag, returns +// nil if not found +func (c *Context) Int64Slice(name string) []int64 { + return lookupInt64Slice(name, c.flagSet) +} + +// GlobalInt64Slice looks up the value of a global Int64SliceFlag, returns +// nil if not found +func (c *Context) GlobalInt64Slice(name string) []int64 { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupInt64Slice(name, fs) + } + return nil +} + +func lookupInt64Slice(name string, set *flag.FlagSet) []int64 { + f := set.Lookup(name) + if f != nil { + parsed, err := (f.Value.(*Int64Slice)).Value(), error(nil) + if err != nil { + return nil + } + return parsed + } + return nil +} + +// StringFlag is a flag with type string +type StringFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value string + Destination *string +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f StringFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f StringFlag) GetName() string { + return f.Name +} + +// String looks up the value of a local StringFlag, returns +// "" if not found +func (c *Context) String(name string) string { + return lookupString(name, c.flagSet) +} + +// GlobalString looks up the value of a global StringFlag, returns +// "" if not found +func (c *Context) GlobalString(name string) string { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupString(name, fs) + } + return "" +} + +func lookupString(name string, set *flag.FlagSet) string { + f := set.Lookup(name) + if f != nil { + parsed, err := f.Value.String(), error(nil) + if err != nil { + return "" + } + return parsed + } + return "" +} + +// StringSliceFlag is a flag with type *StringSlice +type StringSliceFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value *StringSlice +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f StringSliceFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f StringSliceFlag) GetName() string { + return f.Name +} + +// StringSlice looks up the value of a local StringSliceFlag, returns +// nil if not found +func (c *Context) StringSlice(name string) []string { + return lookupStringSlice(name, c.flagSet) +} + +// GlobalStringSlice looks up the value of a global StringSliceFlag, returns +// nil if not found +func (c *Context) GlobalStringSlice(name string) []string { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupStringSlice(name, fs) + } + return nil +} + +func lookupStringSlice(name string, set *flag.FlagSet) []string { + f := set.Lookup(name) + if f != nil { + parsed, err := (f.Value.(*StringSlice)).Value(), error(nil) + if err != nil { + return nil + } + return parsed + } + return nil +} + +// Uint64Flag is a flag with type uint64 +type Uint64Flag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value uint64 + Destination *uint64 +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f Uint64Flag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f Uint64Flag) GetName() string { + return f.Name +} + +// Uint64 looks up the value of a local Uint64Flag, returns +// 0 if not found +func (c *Context) Uint64(name string) uint64 { + return lookupUint64(name, c.flagSet) +} + +// GlobalUint64 looks up the value of a global Uint64Flag, returns +// 0 if not found +func (c *Context) GlobalUint64(name string) uint64 { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupUint64(name, fs) + } + return 0 +} + +func lookupUint64(name string, set *flag.FlagSet) uint64 { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseUint(f.Value.String(), 0, 64) + if err != nil { + return 0 + } + return parsed + } + return 0 +} + +// UintFlag is a flag with type uint +type UintFlag struct { + Name string + Usage string + EnvVar string + Hidden bool + Value uint + Destination *uint +} + +// String returns a readable representation of this value +// (for usage defaults) +func (f UintFlag) String() string { + return FlagStringer(f) +} + +// GetName returns the name of the flag +func (f UintFlag) GetName() string { + return f.Name +} + +// Uint looks up the value of a local UintFlag, returns +// 0 if not found +func (c *Context) Uint(name string) uint { + return lookupUint(name, c.flagSet) +} + +// GlobalUint looks up the value of a global UintFlag, returns +// 0 if not found +func (c *Context) GlobalUint(name string) uint { + if fs := lookupGlobalFlagSet(name, c); fs != nil { + return lookupUint(name, fs) + } + return 0 +} + +func lookupUint(name string, set *flag.FlagSet) uint { + f := set.Lookup(name) + if f != nil { + parsed, err := strconv.ParseUint(f.Value.String(), 0, 64) + if err != nil { + return 0 + } + return uint(parsed) + } + return 0 +} diff --git a/vendor/github.com/urfave/cli/flag_test.go b/vendor/github.com/urfave/cli/flag_test.go new file mode 100644 index 0000000..1ccb639 --- /dev/null +++ b/vendor/github.com/urfave/cli/flag_test.go @@ -0,0 +1,1215 @@ +package cli + +import ( + "fmt" + "os" + "reflect" + "regexp" + "runtime" + "strings" + "testing" + "time" +) + +var boolFlagTests = []struct { + name string + expected string +}{ + {"help", "--help\t"}, + {"h", "-h\t"}, +} + +func TestBoolFlagHelpOutput(t *testing.T) { + for _, test := range boolFlagTests { + flag := BoolFlag{Name: test.name} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestFlagsFromEnv(t *testing.T) { + var flagTests = []struct { + input string + output interface{} + flag Flag + errRegexp string + }{ + {"", false, BoolFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"1", true, BoolFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"false", false, BoolFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"foobar", true, BoolFlag{Name: "debug", EnvVar: "DEBUG"}, fmt.Sprintf(`could not parse foobar as bool value for flag debug: .*`)}, + + {"", false, BoolTFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"1", true, BoolTFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"false", false, BoolTFlag{Name: "debug", EnvVar: "DEBUG"}, ""}, + {"foobar", true, BoolTFlag{Name: "debug", EnvVar: "DEBUG"}, fmt.Sprintf(`could not parse foobar as bool value for flag debug: .*`)}, + + {"1s", 1 * time.Second, DurationFlag{Name: "time", EnvVar: "TIME"}, ""}, + {"foobar", false, DurationFlag{Name: "time", EnvVar: "TIME"}, fmt.Sprintf(`could not parse foobar as duration for flag time: .*`)}, + + {"1.2", 1.2, Float64Flag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1", 1.0, Float64Flag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"foobar", 0, Float64Flag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as float64 value for flag seconds: .*`)}, + + {"1", int64(1), Int64Flag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2", 0, Int64Flag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2 as int value for flag seconds: .*`)}, + {"foobar", 0, Int64Flag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as int value for flag seconds: .*`)}, + + {"1", 1, IntFlag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2", 0, IntFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2 as int value for flag seconds: .*`)}, + {"foobar", 0, IntFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as int value for flag seconds: .*`)}, + + {"1,2", IntSlice{1, 2}, IntSliceFlag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2,2", IntSlice{}, IntSliceFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2,2 as int slice value for flag seconds: .*`)}, + {"foobar", IntSlice{}, IntSliceFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as int slice value for flag seconds: .*`)}, + + {"1,2", Int64Slice{1, 2}, Int64SliceFlag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2,2", Int64Slice{}, Int64SliceFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2,2 as int64 slice value for flag seconds: .*`)}, + {"foobar", Int64Slice{}, Int64SliceFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as int64 slice value for flag seconds: .*`)}, + + {"foo", "foo", StringFlag{Name: "name", EnvVar: "NAME"}, ""}, + + {"foo,bar", StringSlice{"foo", "bar"}, StringSliceFlag{Name: "names", EnvVar: "NAMES"}, ""}, + + {"1", uint(1), UintFlag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2", 0, UintFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2 as uint value for flag seconds: .*`)}, + {"foobar", 0, UintFlag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as uint value for flag seconds: .*`)}, + + {"1", uint64(1), Uint64Flag{Name: "seconds", EnvVar: "SECONDS"}, ""}, + {"1.2", 0, Uint64Flag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse 1.2 as uint64 value for flag seconds: .*`)}, + {"foobar", 0, Uint64Flag{Name: "seconds", EnvVar: "SECONDS"}, fmt.Sprintf(`could not parse foobar as uint64 value for flag seconds: .*`)}, + + {"foo,bar", &Parser{"foo", "bar"}, GenericFlag{Name: "names", Value: &Parser{}, EnvVar: "NAMES"}, ""}, + } + + for _, test := range flagTests { + os.Clearenv() + os.Setenv(reflect.ValueOf(test.flag).FieldByName("EnvVar").String(), test.input) + a := App{ + Flags: []Flag{test.flag}, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.value(test.flag.GetName()), test.output) { + t.Errorf("expected %+v to be parsed as %+v, instead was %+v", test.input, test.output, ctx.value(test.flag.GetName())) + } + return nil + }, + } + + err := a.Run([]string{"run"}) + + if test.errRegexp != "" { + if err == nil { + t.Errorf("expected error to match %s, got none", test.errRegexp) + } else { + if matched, _ := regexp.MatchString(test.errRegexp, err.Error()); !matched { + t.Errorf("expected error to match %s, got error %s", test.errRegexp, err) + } + } + } else { + if err != nil && test.errRegexp == "" { + t.Errorf("expected no error got %s", err) + } + } + } +} + +var stringFlagTests = []struct { + name string + usage string + value string + expected string +}{ + {"foo", "", "", "--foo value\t"}, + {"f", "", "", "-f value\t"}, + {"f", "The total `foo` desired", "all", "-f foo\tThe total foo desired (default: \"all\")"}, + {"test", "", "Something", "--test value\t(default: \"Something\")"}, + {"config,c", "Load configuration from `FILE`", "", "--config FILE, -c FILE\tLoad configuration from FILE"}, + {"config,c", "Load configuration from `CONFIG`", "config.json", "--config CONFIG, -c CONFIG\tLoad configuration from CONFIG (default: \"config.json\")"}, +} + +func TestStringFlagHelpOutput(t *testing.T) { + for _, test := range stringFlagTests { + flag := StringFlag{Name: test.name, Usage: test.usage, Value: test.value} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestStringFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_FOO", "derp") + for _, test := range stringFlagTests { + flag := StringFlag{Name: test.name, Value: test.value, EnvVar: "APP_FOO"} + output := flag.String() + + expectedSuffix := " [$APP_FOO]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_FOO%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var stringSliceFlagTests = []struct { + name string + value *StringSlice + expected string +}{ + {"foo", func() *StringSlice { + s := &StringSlice{} + s.Set("") + return s + }(), "--foo value\t"}, + {"f", func() *StringSlice { + s := &StringSlice{} + s.Set("") + return s + }(), "-f value\t"}, + {"f", func() *StringSlice { + s := &StringSlice{} + s.Set("Lipstick") + return s + }(), "-f value\t(default: \"Lipstick\")"}, + {"test", func() *StringSlice { + s := &StringSlice{} + s.Set("Something") + return s + }(), "--test value\t(default: \"Something\")"}, +} + +func TestStringSliceFlagHelpOutput(t *testing.T) { + for _, test := range stringSliceFlagTests { + flag := StringSliceFlag{Name: test.name, Value: test.value} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestStringSliceFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_QWWX", "11,4") + for _, test := range stringSliceFlagTests { + flag := StringSliceFlag{Name: test.name, Value: test.value, EnvVar: "APP_QWWX"} + output := flag.String() + + expectedSuffix := " [$APP_QWWX]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_QWWX%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%q does not end with"+expectedSuffix, output) + } + } +} + +var intFlagTests = []struct { + name string + expected string +}{ + {"hats", "--hats value\t(default: 9)"}, + {"H", "-H value\t(default: 9)"}, +} + +func TestIntFlagHelpOutput(t *testing.T) { + for _, test := range intFlagTests { + flag := IntFlag{Name: test.name, Value: 9} + output := flag.String() + + if output != test.expected { + t.Errorf("%s does not match %s", output, test.expected) + } + } +} + +func TestIntFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAR", "2") + for _, test := range intFlagTests { + flag := IntFlag{Name: test.name, EnvVar: "APP_BAR"} + output := flag.String() + + expectedSuffix := " [$APP_BAR]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAR%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var int64FlagTests = []struct { + name string + expected string +}{ + {"hats", "--hats value\t(default: 8589934592)"}, + {"H", "-H value\t(default: 8589934592)"}, +} + +func TestInt64FlagHelpOutput(t *testing.T) { + for _, test := range int64FlagTests { + flag := Int64Flag{Name: test.name, Value: 8589934592} + output := flag.String() + + if output != test.expected { + t.Errorf("%s does not match %s", output, test.expected) + } + } +} + +func TestInt64FlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAR", "2") + for _, test := range int64FlagTests { + flag := IntFlag{Name: test.name, EnvVar: "APP_BAR"} + output := flag.String() + + expectedSuffix := " [$APP_BAR]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAR%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var uintFlagTests = []struct { + name string + expected string +}{ + {"nerfs", "--nerfs value\t(default: 41)"}, + {"N", "-N value\t(default: 41)"}, +} + +func TestUintFlagHelpOutput(t *testing.T) { + for _, test := range uintFlagTests { + flag := UintFlag{Name: test.name, Value: 41} + output := flag.String() + + if output != test.expected { + t.Errorf("%s does not match %s", output, test.expected) + } + } +} + +func TestUintFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAR", "2") + for _, test := range uintFlagTests { + flag := UintFlag{Name: test.name, EnvVar: "APP_BAR"} + output := flag.String() + + expectedSuffix := " [$APP_BAR]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAR%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var uint64FlagTests = []struct { + name string + expected string +}{ + {"gerfs", "--gerfs value\t(default: 8589934582)"}, + {"G", "-G value\t(default: 8589934582)"}, +} + +func TestUint64FlagHelpOutput(t *testing.T) { + for _, test := range uint64FlagTests { + flag := Uint64Flag{Name: test.name, Value: 8589934582} + output := flag.String() + + if output != test.expected { + t.Errorf("%s does not match %s", output, test.expected) + } + } +} + +func TestUint64FlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAR", "2") + for _, test := range uint64FlagTests { + flag := UintFlag{Name: test.name, EnvVar: "APP_BAR"} + output := flag.String() + + expectedSuffix := " [$APP_BAR]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAR%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var durationFlagTests = []struct { + name string + expected string +}{ + {"hooting", "--hooting value\t(default: 1s)"}, + {"H", "-H value\t(default: 1s)"}, +} + +func TestDurationFlagHelpOutput(t *testing.T) { + for _, test := range durationFlagTests { + flag := DurationFlag{Name: test.name, Value: 1 * time.Second} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestDurationFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAR", "2h3m6s") + for _, test := range durationFlagTests { + flag := DurationFlag{Name: test.name, EnvVar: "APP_BAR"} + output := flag.String() + + expectedSuffix := " [$APP_BAR]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAR%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var intSliceFlagTests = []struct { + name string + value *IntSlice + expected string +}{ + {"heads", &IntSlice{}, "--heads value\t"}, + {"H", &IntSlice{}, "-H value\t"}, + {"H, heads", func() *IntSlice { + i := &IntSlice{} + i.Set("9") + i.Set("3") + return i + }(), "-H value, --heads value\t(default: 9, 3)"}, +} + +func TestIntSliceFlagHelpOutput(t *testing.T) { + for _, test := range intSliceFlagTests { + flag := IntSliceFlag{Name: test.name, Value: test.value} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestIntSliceFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_SMURF", "42,3") + for _, test := range intSliceFlagTests { + flag := IntSliceFlag{Name: test.name, Value: test.value, EnvVar: "APP_SMURF"} + output := flag.String() + + expectedSuffix := " [$APP_SMURF]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_SMURF%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%q does not end with"+expectedSuffix, output) + } + } +} + +var int64SliceFlagTests = []struct { + name string + value *Int64Slice + expected string +}{ + {"heads", &Int64Slice{}, "--heads value\t"}, + {"H", &Int64Slice{}, "-H value\t"}, + {"H, heads", func() *Int64Slice { + i := &Int64Slice{} + i.Set("2") + i.Set("17179869184") + return i + }(), "-H value, --heads value\t(default: 2, 17179869184)"}, +} + +func TestInt64SliceFlagHelpOutput(t *testing.T) { + for _, test := range int64SliceFlagTests { + flag := Int64SliceFlag{Name: test.name, Value: test.value} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestInt64SliceFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_SMURF", "42,17179869184") + for _, test := range int64SliceFlagTests { + flag := Int64SliceFlag{Name: test.name, Value: test.value, EnvVar: "APP_SMURF"} + output := flag.String() + + expectedSuffix := " [$APP_SMURF]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_SMURF%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%q does not end with"+expectedSuffix, output) + } + } +} + +var float64FlagTests = []struct { + name string + expected string +}{ + {"hooting", "--hooting value\t(default: 0.1)"}, + {"H", "-H value\t(default: 0.1)"}, +} + +func TestFloat64FlagHelpOutput(t *testing.T) { + for _, test := range float64FlagTests { + flag := Float64Flag{Name: test.name, Value: float64(0.1)} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestFloat64FlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_BAZ", "99.4") + for _, test := range float64FlagTests { + flag := Float64Flag{Name: test.name, EnvVar: "APP_BAZ"} + output := flag.String() + + expectedSuffix := " [$APP_BAZ]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_BAZ%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +var genericFlagTests = []struct { + name string + value Generic + expected string +}{ + {"toads", &Parser{"abc", "def"}, "--toads value\ttest flag (default: abc,def)"}, + {"t", &Parser{"abc", "def"}, "-t value\ttest flag (default: abc,def)"}, +} + +func TestGenericFlagHelpOutput(t *testing.T) { + for _, test := range genericFlagTests { + flag := GenericFlag{Name: test.name, Value: test.value, Usage: "test flag"} + output := flag.String() + + if output != test.expected { + t.Errorf("%q does not match %q", output, test.expected) + } + } +} + +func TestGenericFlagWithEnvVarHelpOutput(t *testing.T) { + os.Clearenv() + os.Setenv("APP_ZAP", "3") + for _, test := range genericFlagTests { + flag := GenericFlag{Name: test.name, EnvVar: "APP_ZAP"} + output := flag.String() + + expectedSuffix := " [$APP_ZAP]" + if runtime.GOOS == "windows" { + expectedSuffix = " [%APP_ZAP%]" + } + if !strings.HasSuffix(output, expectedSuffix) { + t.Errorf("%s does not end with"+expectedSuffix, output) + } + } +} + +func TestParseMultiString(t *testing.T) { + (&App{ + Flags: []Flag{ + StringFlag{Name: "serve, s"}, + }, + Action: func(ctx *Context) error { + if ctx.String("serve") != "10" { + t.Errorf("main name not set") + } + if ctx.String("s") != "10" { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run", "-s", "10"}) +} + +func TestParseDestinationString(t *testing.T) { + var dest string + a := App{ + Flags: []Flag{ + StringFlag{ + Name: "dest", + Destination: &dest, + }, + }, + Action: func(ctx *Context) error { + if dest != "10" { + t.Errorf("expected destination String 10") + } + return nil + }, + } + a.Run([]string{"run", "--dest", "10"}) +} + +func TestParseMultiStringFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_COUNT", "20") + (&App{ + Flags: []Flag{ + StringFlag{Name: "count, c", EnvVar: "APP_COUNT"}, + }, + Action: func(ctx *Context) error { + if ctx.String("count") != "20" { + t.Errorf("main name not set") + } + if ctx.String("c") != "20" { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiStringFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_COUNT", "20") + (&App{ + Flags: []Flag{ + StringFlag{Name: "count, c", EnvVar: "COMPAT_COUNT,APP_COUNT"}, + }, + Action: func(ctx *Context) error { + if ctx.String("count") != "20" { + t.Errorf("main name not set") + } + if ctx.String("c") != "20" { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiStringSlice(t *testing.T) { + (&App{ + Flags: []Flag{ + StringSliceFlag{Name: "serve, s", Value: &StringSlice{}}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.StringSlice("serve"), []string{"10", "20"}) { + t.Errorf("main name not set") + } + if !reflect.DeepEqual(ctx.StringSlice("s"), []string{"10", "20"}) { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run", "-s", "10", "-s", "20"}) +} + +func TestParseMultiStringSliceFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,40") + + (&App{ + Flags: []Flag{ + StringSliceFlag{Name: "intervals, i", Value: &StringSlice{}, EnvVar: "APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.StringSlice("intervals"), []string{"20", "30", "40"}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.StringSlice("i"), []string{"20", "30", "40"}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiStringSliceFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,40") + + (&App{ + Flags: []Flag{ + StringSliceFlag{Name: "intervals, i", Value: &StringSlice{}, EnvVar: "COMPAT_INTERVALS,APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.StringSlice("intervals"), []string{"20", "30", "40"}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.StringSlice("i"), []string{"20", "30", "40"}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiInt(t *testing.T) { + a := App{ + Flags: []Flag{ + IntFlag{Name: "serve, s"}, + }, + Action: func(ctx *Context) error { + if ctx.Int("serve") != 10 { + t.Errorf("main name not set") + } + if ctx.Int("s") != 10 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run", "-s", "10"}) +} + +func TestParseDestinationInt(t *testing.T) { + var dest int + a := App{ + Flags: []Flag{ + IntFlag{ + Name: "dest", + Destination: &dest, + }, + }, + Action: func(ctx *Context) error { + if dest != 10 { + t.Errorf("expected destination Int 10") + } + return nil + }, + } + a.Run([]string{"run", "--dest", "10"}) +} + +func TestParseMultiIntFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "10") + a := App{ + Flags: []Flag{ + IntFlag{Name: "timeout, t", EnvVar: "APP_TIMEOUT_SECONDS"}, + }, + Action: func(ctx *Context) error { + if ctx.Int("timeout") != 10 { + t.Errorf("main name not set") + } + if ctx.Int("t") != 10 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiIntFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "10") + a := App{ + Flags: []Flag{ + IntFlag{Name: "timeout, t", EnvVar: "COMPAT_TIMEOUT_SECONDS,APP_TIMEOUT_SECONDS"}, + }, + Action: func(ctx *Context) error { + if ctx.Int("timeout") != 10 { + t.Errorf("main name not set") + } + if ctx.Int("t") != 10 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiIntSlice(t *testing.T) { + (&App{ + Flags: []Flag{ + IntSliceFlag{Name: "serve, s", Value: &IntSlice{}}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.IntSlice("serve"), []int{10, 20}) { + t.Errorf("main name not set") + } + if !reflect.DeepEqual(ctx.IntSlice("s"), []int{10, 20}) { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run", "-s", "10", "-s", "20"}) +} + +func TestParseMultiIntSliceFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,40") + + (&App{ + Flags: []Flag{ + IntSliceFlag{Name: "intervals, i", Value: &IntSlice{}, EnvVar: "APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.IntSlice("intervals"), []int{20, 30, 40}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.IntSlice("i"), []int{20, 30, 40}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiIntSliceFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,40") + + (&App{ + Flags: []Flag{ + IntSliceFlag{Name: "intervals, i", Value: &IntSlice{}, EnvVar: "COMPAT_INTERVALS,APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.IntSlice("intervals"), []int{20, 30, 40}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.IntSlice("i"), []int{20, 30, 40}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiInt64Slice(t *testing.T) { + (&App{ + Flags: []Flag{ + Int64SliceFlag{Name: "serve, s", Value: &Int64Slice{}}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Int64Slice("serve"), []int64{10, 17179869184}) { + t.Errorf("main name not set") + } + if !reflect.DeepEqual(ctx.Int64Slice("s"), []int64{10, 17179869184}) { + t.Errorf("short name not set") + } + return nil + }, + }).Run([]string{"run", "-s", "10", "-s", "17179869184"}) +} + +func TestParseMultiInt64SliceFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,17179869184") + + (&App{ + Flags: []Flag{ + Int64SliceFlag{Name: "intervals, i", Value: &Int64Slice{}, EnvVar: "APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Int64Slice("intervals"), []int64{20, 30, 17179869184}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.Int64Slice("i"), []int64{20, 30, 17179869184}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiInt64SliceFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_INTERVALS", "20,30,17179869184") + + (&App{ + Flags: []Flag{ + Int64SliceFlag{Name: "intervals, i", Value: &Int64Slice{}, EnvVar: "COMPAT_INTERVALS,APP_INTERVALS"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Int64Slice("intervals"), []int64{20, 30, 17179869184}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.Int64Slice("i"), []int64{20, 30, 17179869184}) { + t.Errorf("short name not set from env") + } + return nil + }, + }).Run([]string{"run"}) +} + +func TestParseMultiFloat64(t *testing.T) { + a := App{ + Flags: []Flag{ + Float64Flag{Name: "serve, s"}, + }, + Action: func(ctx *Context) error { + if ctx.Float64("serve") != 10.2 { + t.Errorf("main name not set") + } + if ctx.Float64("s") != 10.2 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run", "-s", "10.2"}) +} + +func TestParseDestinationFloat64(t *testing.T) { + var dest float64 + a := App{ + Flags: []Flag{ + Float64Flag{ + Name: "dest", + Destination: &dest, + }, + }, + Action: func(ctx *Context) error { + if dest != 10.2 { + t.Errorf("expected destination Float64 10.2") + } + return nil + }, + } + a.Run([]string{"run", "--dest", "10.2"}) +} + +func TestParseMultiFloat64FromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "15.5") + a := App{ + Flags: []Flag{ + Float64Flag{Name: "timeout, t", EnvVar: "APP_TIMEOUT_SECONDS"}, + }, + Action: func(ctx *Context) error { + if ctx.Float64("timeout") != 15.5 { + t.Errorf("main name not set") + } + if ctx.Float64("t") != 15.5 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiFloat64FromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_TIMEOUT_SECONDS", "15.5") + a := App{ + Flags: []Flag{ + Float64Flag{Name: "timeout, t", EnvVar: "COMPAT_TIMEOUT_SECONDS,APP_TIMEOUT_SECONDS"}, + }, + Action: func(ctx *Context) error { + if ctx.Float64("timeout") != 15.5 { + t.Errorf("main name not set") + } + if ctx.Float64("t") != 15.5 { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiBool(t *testing.T) { + a := App{ + Flags: []Flag{ + BoolFlag{Name: "serve, s"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("serve") != true { + t.Errorf("main name not set") + } + if ctx.Bool("s") != true { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run", "--serve"}) +} + +func TestParseDestinationBool(t *testing.T) { + var dest bool + a := App{ + Flags: []Flag{ + BoolFlag{ + Name: "dest", + Destination: &dest, + }, + }, + Action: func(ctx *Context) error { + if dest != true { + t.Errorf("expected destination Bool true") + } + return nil + }, + } + a.Run([]string{"run", "--dest"}) +} + +func TestParseMultiBoolFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_DEBUG", "1") + a := App{ + Flags: []Flag{ + BoolFlag{Name: "debug, d", EnvVar: "APP_DEBUG"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("debug") != true { + t.Errorf("main name not set from env") + } + if ctx.Bool("d") != true { + t.Errorf("short name not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiBoolFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_DEBUG", "1") + a := App{ + Flags: []Flag{ + BoolFlag{Name: "debug, d", EnvVar: "COMPAT_DEBUG,APP_DEBUG"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("debug") != true { + t.Errorf("main name not set from env") + } + if ctx.Bool("d") != true { + t.Errorf("short name not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseBoolTFromEnv(t *testing.T) { + var boolTFlagTests = []struct { + input string + output bool + }{ + {"", false}, + {"1", true}, + {"false", false}, + {"true", true}, + } + + for _, test := range boolTFlagTests { + os.Clearenv() + os.Setenv("DEBUG", test.input) + a := App{ + Flags: []Flag{ + BoolTFlag{Name: "debug, d", EnvVar: "DEBUG"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("debug") != test.output { + t.Errorf("expected %+v to be parsed as %+v, instead was %+v", test.input, test.output, ctx.Bool("debug")) + } + if ctx.Bool("d") != test.output { + t.Errorf("expected %+v to be parsed as %+v, instead was %+v", test.input, test.output, ctx.Bool("d")) + } + return nil + }, + } + a.Run([]string{"run"}) + } +} + +func TestParseMultiBoolT(t *testing.T) { + a := App{ + Flags: []Flag{ + BoolTFlag{Name: "serve, s"}, + }, + Action: func(ctx *Context) error { + if ctx.BoolT("serve") != true { + t.Errorf("main name not set") + } + if ctx.BoolT("s") != true { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run", "--serve"}) +} + +func TestParseDestinationBoolT(t *testing.T) { + var dest bool + a := App{ + Flags: []Flag{ + BoolTFlag{ + Name: "dest", + Destination: &dest, + }, + }, + Action: func(ctx *Context) error { + if dest != true { + t.Errorf("expected destination BoolT true") + } + return nil + }, + } + a.Run([]string{"run", "--dest"}) +} + +func TestParseMultiBoolTFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_DEBUG", "0") + a := App{ + Flags: []Flag{ + BoolTFlag{Name: "debug, d", EnvVar: "APP_DEBUG"}, + }, + Action: func(ctx *Context) error { + if ctx.BoolT("debug") != false { + t.Errorf("main name not set from env") + } + if ctx.BoolT("d") != false { + t.Errorf("short name not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseMultiBoolTFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_DEBUG", "0") + a := App{ + Flags: []Flag{ + BoolTFlag{Name: "debug, d", EnvVar: "COMPAT_DEBUG,APP_DEBUG"}, + }, + Action: func(ctx *Context) error { + if ctx.BoolT("debug") != false { + t.Errorf("main name not set from env") + } + if ctx.BoolT("d") != false { + t.Errorf("short name not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +type Parser [2]string + +func (p *Parser) Set(value string) error { + parts := strings.Split(value, ",") + if len(parts) != 2 { + return fmt.Errorf("invalid format") + } + + (*p)[0] = parts[0] + (*p)[1] = parts[1] + + return nil +} + +func (p *Parser) String() string { + return fmt.Sprintf("%s,%s", p[0], p[1]) +} + +func (p *Parser) Get() interface{} { + return p +} + +func TestParseGeneric(t *testing.T) { + a := App{ + Flags: []Flag{ + GenericFlag{Name: "serve, s", Value: &Parser{}}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Generic("serve"), &Parser{"10", "20"}) { + t.Errorf("main name not set") + } + if !reflect.DeepEqual(ctx.Generic("s"), &Parser{"10", "20"}) { + t.Errorf("short name not set") + } + return nil + }, + } + a.Run([]string{"run", "-s", "10,20"}) +} + +func TestParseGenericFromEnv(t *testing.T) { + os.Clearenv() + os.Setenv("APP_SERVE", "20,30") + a := App{ + Flags: []Flag{ + GenericFlag{Name: "serve, s", Value: &Parser{}, EnvVar: "APP_SERVE"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Generic("serve"), &Parser{"20", "30"}) { + t.Errorf("main name not set from env") + } + if !reflect.DeepEqual(ctx.Generic("s"), &Parser{"20", "30"}) { + t.Errorf("short name not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} + +func TestParseGenericFromEnvCascade(t *testing.T) { + os.Clearenv() + os.Setenv("APP_FOO", "99,2000") + a := App{ + Flags: []Flag{ + GenericFlag{Name: "foos", Value: &Parser{}, EnvVar: "COMPAT_FOO,APP_FOO"}, + }, + Action: func(ctx *Context) error { + if !reflect.DeepEqual(ctx.Generic("foos"), &Parser{"99", "2000"}) { + t.Errorf("value not set from env") + } + return nil + }, + } + a.Run([]string{"run"}) +} diff --git a/vendor/github.com/urfave/cli/funcs.go b/vendor/github.com/urfave/cli/funcs.go new file mode 100644 index 0000000..cba5e6c --- /dev/null +++ b/vendor/github.com/urfave/cli/funcs.go @@ -0,0 +1,28 @@ +package cli + +// BashCompleteFunc is an action to execute when the bash-completion flag is set +type BashCompleteFunc func(*Context) + +// BeforeFunc is an action to execute before any subcommands are run, but after +// the context is ready if a non-nil error is returned, no subcommands are run +type BeforeFunc func(*Context) error + +// AfterFunc is an action to execute after any subcommands are run, but after the +// subcommand has finished it is run even if Action() panics +type AfterFunc func(*Context) error + +// ActionFunc is the action to execute when no subcommands are specified +type ActionFunc func(*Context) error + +// CommandNotFoundFunc is executed if the proper command cannot be found +type CommandNotFoundFunc func(*Context, string) + +// OnUsageErrorFunc is executed if an usage error occurs. This is useful for displaying +// customized usage error messages. This function is able to replace the +// original error messages. If this function is not set, the "Incorrect usage" +// is displayed and the execution is interrupted. +type OnUsageErrorFunc func(context *Context, err error, isSubcommand bool) error + +// FlagStringFunc is used by the help generation to display a flag, which is +// expected to be a single line. +type FlagStringFunc func(Flag) string diff --git a/vendor/github.com/urfave/cli/generate-flag-types b/vendor/github.com/urfave/cli/generate-flag-types new file mode 100755 index 0000000..7147381 --- /dev/null +++ b/vendor/github.com/urfave/cli/generate-flag-types @@ -0,0 +1,255 @@ +#!/usr/bin/env python +""" +The flag types that ship with the cli library have many things in common, and +so we can take advantage of the `go generate` command to create much of the +source code from a list of definitions. These definitions attempt to cover +the parts that vary between flag types, and should evolve as needed. + +An example of the minimum definition needed is: + + { + "name": "SomeType", + "type": "sometype", + "context_default": "nil" + } + +In this example, the code generated for the `cli` package will include a type +named `SomeTypeFlag` that is expected to wrap a value of type `sometype`. +Fetching values by name via `*cli.Context` will default to a value of `nil`. + +A more complete, albeit somewhat redundant, example showing all available +definition keys is: + + { + "name": "VeryMuchType", + "type": "*VeryMuchType", + "value": true, + "dest": false, + "doctail": " which really only wraps a []float64, oh well!", + "context_type": "[]float64", + "context_default": "nil", + "parser": "parseVeryMuchType(f.Value.String())", + "parser_cast": "[]float64(parsed)" + } + +The meaning of each field is as follows: + + name (string) - The type "name", which will be suffixed with + `Flag` when generating the type definition + for `cli` and the wrapper type for `altsrc` + type (string) - The type that the generated `Flag` type for `cli` + is expected to "contain" as its `.Value` member + value (bool) - Should the generated `cli` type have a `Value` + member? + dest (bool) - Should the generated `cli` type support a + destination pointer? + doctail (string) - Additional docs for the `cli` flag type comment + context_type (string) - The literal type used in the `*cli.Context` + reader func signature + context_default (string) - The literal value used as the default by the + `*cli.Context` reader funcs when no value is + present + parser (string) - Literal code used to parse the flag `f`, + expected to have a return signature of + (value, error) + parser_cast (string) - Literal code used to cast the `parsed` value + returned from the `parser` code +""" + +from __future__ import print_function, unicode_literals + +import argparse +import json +import os +import subprocess +import sys +import tempfile +import textwrap + + +class _FancyFormatter(argparse.ArgumentDefaultsHelpFormatter, + argparse.RawDescriptionHelpFormatter): + pass + + +def main(sysargs=sys.argv[:]): + parser = argparse.ArgumentParser( + description='Generate flag type code!', + formatter_class=_FancyFormatter) + parser.add_argument( + 'package', + type=str, default='cli', choices=_WRITEFUNCS.keys(), + help='Package for which flag types will be generated' + ) + parser.add_argument( + '-i', '--in-json', + type=argparse.FileType('r'), + default=sys.stdin, + help='Input JSON file which defines each type to be generated' + ) + parser.add_argument( + '-o', '--out-go', + type=argparse.FileType('w'), + default=sys.stdout, + help='Output file/stream to which generated source will be written' + ) + parser.epilog = __doc__ + + args = parser.parse_args(sysargs[1:]) + _generate_flag_types(_WRITEFUNCS[args.package], args.out_go, args.in_json) + return 0 + + +def _generate_flag_types(writefunc, output_go, input_json): + types = json.load(input_json) + + tmp = tempfile.NamedTemporaryFile(suffix='.go', delete=False) + writefunc(tmp, types) + tmp.close() + + new_content = subprocess.check_output( + ['goimports', tmp.name] + ).decode('utf-8') + + print(new_content, file=output_go, end='') + output_go.flush() + os.remove(tmp.name) + + +def _set_typedef_defaults(typedef): + typedef.setdefault('doctail', '') + typedef.setdefault('context_type', typedef['type']) + typedef.setdefault('dest', True) + typedef.setdefault('value', True) + typedef.setdefault('parser', 'f.Value, error(nil)') + typedef.setdefault('parser_cast', 'parsed') + + +def _write_cli_flag_types(outfile, types): + _fwrite(outfile, """\ + package cli + + // WARNING: This file is generated! + + """) + + for typedef in types: + _set_typedef_defaults(typedef) + + _fwrite(outfile, """\ + // {name}Flag is a flag with type {type}{doctail} + type {name}Flag struct {{ + Name string + Usage string + EnvVar string + Hidden bool + """.format(**typedef)) + + if typedef['value']: + _fwrite(outfile, """\ + Value {type} + """.format(**typedef)) + + if typedef['dest']: + _fwrite(outfile, """\ + Destination *{type} + """.format(**typedef)) + + _fwrite(outfile, "\n}\n\n") + + _fwrite(outfile, """\ + // String returns a readable representation of this value + // (for usage defaults) + func (f {name}Flag) String() string {{ + return FlagStringer(f) + }} + + // GetName returns the name of the flag + func (f {name}Flag) GetName() string {{ + return f.Name + }} + + // {name} looks up the value of a local {name}Flag, returns + // {context_default} if not found + func (c *Context) {name}(name string) {context_type} {{ + return lookup{name}(name, c.flagSet) + }} + + // Global{name} looks up the value of a global {name}Flag, returns + // {context_default} if not found + func (c *Context) Global{name}(name string) {context_type} {{ + if fs := lookupGlobalFlagSet(name, c); fs != nil {{ + return lookup{name}(name, fs) + }} + return {context_default} + }} + + func lookup{name}(name string, set *flag.FlagSet) {context_type} {{ + f := set.Lookup(name) + if f != nil {{ + parsed, err := {parser} + if err != nil {{ + return {context_default} + }} + return {parser_cast} + }} + return {context_default} + }} + """.format(**typedef)) + + +def _write_altsrc_flag_types(outfile, types): + _fwrite(outfile, """\ + package altsrc + + import ( + "gopkg.in/urfave/cli.v1" + ) + + // WARNING: This file is generated! + + """) + + for typedef in types: + _set_typedef_defaults(typedef) + + _fwrite(outfile, """\ + // {name}Flag is the flag type that wraps cli.{name}Flag to allow + // for other values to be specified + type {name}Flag struct {{ + cli.{name}Flag + set *flag.FlagSet + }} + + // New{name}Flag creates a new {name}Flag + func New{name}Flag(fl cli.{name}Flag) *{name}Flag {{ + return &{name}Flag{{{name}Flag: fl, set: nil}} + }} + + // Apply saves the flagSet for later usage calls, then calls the + // wrapped {name}Flag.Apply + func (f *{name}Flag) Apply(set *flag.FlagSet) {{ + f.set = set + f.{name}Flag.Apply(set) + }} + + // ApplyWithError saves the flagSet for later usage calls, then calls the + // wrapped {name}Flag.ApplyWithError + func (f *{name}Flag) ApplyWithError(set *flag.FlagSet) error {{ + f.set = set + return f.{name}Flag.ApplyWithError(set) + }} + """.format(**typedef)) + + +def _fwrite(outfile, text): + print(textwrap.dedent(text), end='', file=outfile) + + +_WRITEFUNCS = { + 'cli': _write_cli_flag_types, + 'altsrc': _write_altsrc_flag_types +} + +if __name__ == '__main__': + sys.exit(main()) diff --git a/vendor/github.com/urfave/cli/help.go b/vendor/github.com/urfave/cli/help.go new file mode 100644 index 0000000..57ec98d --- /dev/null +++ b/vendor/github.com/urfave/cli/help.go @@ -0,0 +1,338 @@ +package cli + +import ( + "fmt" + "io" + "os" + "strings" + "text/tabwriter" + "text/template" +) + +// AppHelpTemplate is the text template for the Default help topic. +// cli.go uses text/template to render templates. You can +// render custom help text by setting this variable. +var AppHelpTemplate = `NAME: + {{.Name}}{{if .Usage}} - {{.Usage}}{{end}} + +USAGE: + {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Version}}{{if not .HideVersion}} + +VERSION: + {{.Version}}{{end}}{{end}}{{if .Description}} + +DESCRIPTION: + {{.Description}}{{end}}{{if len .Authors}} + +AUTHOR{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}: + {{range $index, $author := .Authors}}{{if $index}} + {{end}}{{$author}}{{end}}{{end}}{{if .VisibleCommands}} + +COMMANDS:{{range .VisibleCategories}}{{if .Name}} + {{.Name}}:{{end}}{{range .VisibleCommands}} + {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{end}}{{end}}{{if .VisibleFlags}} + +GLOBAL OPTIONS: + {{range $index, $option := .VisibleFlags}}{{if $index}} + {{end}}{{$option}}{{end}}{{end}}{{if .Copyright}} + +COPYRIGHT: + {{.Copyright}}{{end}} +` + +// CommandHelpTemplate is the text template for the command help topic. +// cli.go uses text/template to render templates. You can +// render custom help text by setting this variable. +var CommandHelpTemplate = `NAME: + {{.HelpName}} - {{.Usage}} + +USAGE: + {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Category}} + +CATEGORY: + {{.Category}}{{end}}{{if .Description}} + +DESCRIPTION: + {{.Description}}{{end}}{{if .VisibleFlags}} + +OPTIONS: + {{range .VisibleFlags}}{{.}} + {{end}}{{end}} +` + +// SubcommandHelpTemplate is the text template for the subcommand help topic. +// cli.go uses text/template to render templates. You can +// render custom help text by setting this variable. +var SubcommandHelpTemplate = `NAME: + {{.HelpName}} - {{if .Description}}{{.Description}}{{else}}{{.Usage}}{{end}} + +USAGE: + {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} command{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}} + +COMMANDS:{{range .VisibleCategories}}{{if .Name}} + {{.Name}}:{{end}}{{range .VisibleCommands}} + {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}} +{{end}}{{if .VisibleFlags}} +OPTIONS: + {{range .VisibleFlags}}{{.}} + {{end}}{{end}} +` + +var helpCommand = Command{ + Name: "help", + Aliases: []string{"h"}, + Usage: "Shows a list of commands or help for one command", + ArgsUsage: "[command]", + Action: func(c *Context) error { + args := c.Args() + if args.Present() { + return ShowCommandHelp(c, args.First()) + } + + ShowAppHelp(c) + return nil + }, +} + +var helpSubcommand = Command{ + Name: "help", + Aliases: []string{"h"}, + Usage: "Shows a list of commands or help for one command", + ArgsUsage: "[command]", + Action: func(c *Context) error { + args := c.Args() + if args.Present() { + return ShowCommandHelp(c, args.First()) + } + + return ShowSubcommandHelp(c) + }, +} + +// Prints help for the App or Command +type helpPrinter func(w io.Writer, templ string, data interface{}) + +// Prints help for the App or Command with custom template function. +type helpPrinterCustom func(w io.Writer, templ string, data interface{}, customFunc map[string]interface{}) + +// HelpPrinter is a function that writes the help output. If not set a default +// is used. The function signature is: +// func(w io.Writer, templ string, data interface{}) +var HelpPrinter helpPrinter = printHelp + +// HelpPrinterCustom is same as HelpPrinter but +// takes a custom function for template function map. +var HelpPrinterCustom helpPrinterCustom = printHelpCustom + +// VersionPrinter prints the version for the App +var VersionPrinter = printVersion + +// ShowAppHelpAndExit - Prints the list of subcommands for the app and exits with exit code. +func ShowAppHelpAndExit(c *Context, exitCode int) { + ShowAppHelp(c) + os.Exit(exitCode) +} + +// ShowAppHelp is an action that displays the help. +func ShowAppHelp(c *Context) (err error) { + if c.App.CustomAppHelpTemplate == "" { + HelpPrinter(c.App.Writer, AppHelpTemplate, c.App) + return + } + customAppData := func() map[string]interface{} { + if c.App.ExtraInfo == nil { + return nil + } + return map[string]interface{}{ + "ExtraInfo": c.App.ExtraInfo, + } + } + HelpPrinterCustom(c.App.Writer, c.App.CustomAppHelpTemplate, c.App, customAppData()) + return nil +} + +// DefaultAppComplete prints the list of subcommands as the default app completion method +func DefaultAppComplete(c *Context) { + for _, command := range c.App.Commands { + if command.Hidden { + continue + } + for _, name := range command.Names() { + fmt.Fprintln(c.App.Writer, name) + } + } +} + +// ShowCommandHelpAndExit - exits with code after showing help +func ShowCommandHelpAndExit(c *Context, command string, code int) { + ShowCommandHelp(c, command) + os.Exit(code) +} + +// ShowCommandHelp prints help for the given command +func ShowCommandHelp(ctx *Context, command string) error { + // show the subcommand help for a command with subcommands + if command == "" { + HelpPrinter(ctx.App.Writer, SubcommandHelpTemplate, ctx.App) + return nil + } + + for _, c := range ctx.App.Commands { + if c.HasName(command) { + if c.CustomHelpTemplate != "" { + HelpPrinterCustom(ctx.App.Writer, c.CustomHelpTemplate, c, nil) + } else { + HelpPrinter(ctx.App.Writer, CommandHelpTemplate, c) + } + return nil + } + } + + if ctx.App.CommandNotFound == nil { + return NewExitError(fmt.Sprintf("No help topic for '%v'", command), 3) + } + + ctx.App.CommandNotFound(ctx, command) + return nil +} + +// ShowSubcommandHelp prints help for the given subcommand +func ShowSubcommandHelp(c *Context) error { + return ShowCommandHelp(c, c.Command.Name) +} + +// ShowVersion prints the version number of the App +func ShowVersion(c *Context) { + VersionPrinter(c) +} + +func printVersion(c *Context) { + fmt.Fprintf(c.App.Writer, "%v version %v\n", c.App.Name, c.App.Version) +} + +// ShowCompletions prints the lists of commands within a given context +func ShowCompletions(c *Context) { + a := c.App + if a != nil && a.BashComplete != nil { + a.BashComplete(c) + } +} + +// ShowCommandCompletions prints the custom completions for a given command +func ShowCommandCompletions(ctx *Context, command string) { + c := ctx.App.Command(command) + if c != nil && c.BashComplete != nil { + c.BashComplete(ctx) + } +} + +func printHelpCustom(out io.Writer, templ string, data interface{}, customFunc map[string]interface{}) { + funcMap := template.FuncMap{ + "join": strings.Join, + } + if customFunc != nil { + for key, value := range customFunc { + funcMap[key] = value + } + } + + w := tabwriter.NewWriter(out, 1, 8, 2, ' ', 0) + t := template.Must(template.New("help").Funcs(funcMap).Parse(templ)) + err := t.Execute(w, data) + if err != nil { + // If the writer is closed, t.Execute will fail, and there's nothing + // we can do to recover. + if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG") != "" { + fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err) + } + return + } + w.Flush() +} + +func printHelp(out io.Writer, templ string, data interface{}) { + printHelpCustom(out, templ, data, nil) +} + +func checkVersion(c *Context) bool { + found := false + if VersionFlag.GetName() != "" { + eachName(VersionFlag.GetName(), func(name string) { + if c.GlobalBool(name) || c.Bool(name) { + found = true + } + }) + } + return found +} + +func checkHelp(c *Context) bool { + found := false + if HelpFlag.GetName() != "" { + eachName(HelpFlag.GetName(), func(name string) { + if c.GlobalBool(name) || c.Bool(name) { + found = true + } + }) + } + return found +} + +func checkCommandHelp(c *Context, name string) bool { + if c.Bool("h") || c.Bool("help") { + ShowCommandHelp(c, name) + return true + } + + return false +} + +func checkSubcommandHelp(c *Context) bool { + if c.Bool("h") || c.Bool("help") { + ShowSubcommandHelp(c) + return true + } + + return false +} + +func checkShellCompleteFlag(a *App, arguments []string) (bool, []string) { + if !a.EnableBashCompletion { + return false, arguments + } + + pos := len(arguments) - 1 + lastArg := arguments[pos] + + if lastArg != "--"+BashCompletionFlag.GetName() { + return false, arguments + } + + return true, arguments[:pos] +} + +func checkCompletions(c *Context) bool { + if !c.shellComplete { + return false + } + + if args := c.Args(); args.Present() { + name := args.First() + if cmd := c.App.Command(name); cmd != nil { + // let the command handle the completion + return false + } + } + + ShowCompletions(c) + return true +} + +func checkCommandCompletions(c *Context, name string) bool { + if !c.shellComplete { + return false + } + + ShowCommandCompletions(c, name) + return true +} diff --git a/vendor/github.com/urfave/cli/help_test.go b/vendor/github.com/urfave/cli/help_test.go new file mode 100644 index 0000000..70b6300 --- /dev/null +++ b/vendor/github.com/urfave/cli/help_test.go @@ -0,0 +1,452 @@ +package cli + +import ( + "bytes" + "flag" + "fmt" + "runtime" + "strings" + "testing" +) + +func Test_ShowAppHelp_NoAuthor(t *testing.T) { + output := new(bytes.Buffer) + app := NewApp() + app.Writer = output + + c := NewContext(app, nil, nil) + + ShowAppHelp(c) + + if bytes.Index(output.Bytes(), []byte("AUTHOR(S):")) != -1 { + t.Errorf("expected\n%snot to include %s", output.String(), "AUTHOR(S):") + } +} + +func Test_ShowAppHelp_NoVersion(t *testing.T) { + output := new(bytes.Buffer) + app := NewApp() + app.Writer = output + + app.Version = "" + + c := NewContext(app, nil, nil) + + ShowAppHelp(c) + + if bytes.Index(output.Bytes(), []byte("VERSION:")) != -1 { + t.Errorf("expected\n%snot to include %s", output.String(), "VERSION:") + } +} + +func Test_ShowAppHelp_HideVersion(t *testing.T) { + output := new(bytes.Buffer) + app := NewApp() + app.Writer = output + + app.HideVersion = true + + c := NewContext(app, nil, nil) + + ShowAppHelp(c) + + if bytes.Index(output.Bytes(), []byte("VERSION:")) != -1 { + t.Errorf("expected\n%snot to include %s", output.String(), "VERSION:") + } +} + +func Test_Help_Custom_Flags(t *testing.T) { + oldFlag := HelpFlag + defer func() { + HelpFlag = oldFlag + }() + + HelpFlag = BoolFlag{ + Name: "help, x", + Usage: "show help", + } + + app := App{ + Flags: []Flag{ + BoolFlag{Name: "foo, h"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("h") != true { + t.Errorf("custom help flag not set") + } + return nil + }, + } + output := new(bytes.Buffer) + app.Writer = output + app.Run([]string{"test", "-h"}) + if output.Len() > 0 { + t.Errorf("unexpected output: %s", output.String()) + } +} + +func Test_Version_Custom_Flags(t *testing.T) { + oldFlag := VersionFlag + defer func() { + VersionFlag = oldFlag + }() + + VersionFlag = BoolFlag{ + Name: "version, V", + Usage: "show version", + } + + app := App{ + Flags: []Flag{ + BoolFlag{Name: "foo, v"}, + }, + Action: func(ctx *Context) error { + if ctx.Bool("v") != true { + t.Errorf("custom version flag not set") + } + return nil + }, + } + output := new(bytes.Buffer) + app.Writer = output + app.Run([]string{"test", "-v"}) + if output.Len() > 0 { + t.Errorf("unexpected output: %s", output.String()) + } +} + +func Test_helpCommand_Action_ErrorIfNoTopic(t *testing.T) { + app := NewApp() + + set := flag.NewFlagSet("test", 0) + set.Parse([]string{"foo"}) + + c := NewContext(app, set, nil) + + err := helpCommand.Action.(func(*Context) error)(c) + + if err == nil { + t.Fatalf("expected error from helpCommand.Action(), but got nil") + } + + exitErr, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected ExitError from helpCommand.Action(), but instead got: %v", err.Error()) + } + + if !strings.HasPrefix(exitErr.Error(), "No help topic for") { + t.Fatalf("expected an unknown help topic error, but got: %v", exitErr.Error()) + } + + if exitErr.exitCode != 3 { + t.Fatalf("expected exit value = 3, got %d instead", exitErr.exitCode) + } +} + +func Test_helpCommand_InHelpOutput(t *testing.T) { + app := NewApp() + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"test", "--help"}) + + s := output.String() + + if strings.Contains(s, "\nCOMMANDS:\nGLOBAL OPTIONS:\n") { + t.Fatalf("empty COMMANDS section detected: %q", s) + } + + if !strings.Contains(s, "help, h") { + t.Fatalf("missing \"help, h\": %q", s) + } +} + +func Test_helpSubcommand_Action_ErrorIfNoTopic(t *testing.T) { + app := NewApp() + + set := flag.NewFlagSet("test", 0) + set.Parse([]string{"foo"}) + + c := NewContext(app, set, nil) + + err := helpSubcommand.Action.(func(*Context) error)(c) + + if err == nil { + t.Fatalf("expected error from helpCommand.Action(), but got nil") + } + + exitErr, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected ExitError from helpCommand.Action(), but instead got: %v", err.Error()) + } + + if !strings.HasPrefix(exitErr.Error(), "No help topic for") { + t.Fatalf("expected an unknown help topic error, but got: %v", exitErr.Error()) + } + + if exitErr.exitCode != 3 { + t.Fatalf("expected exit value = 3, got %d instead", exitErr.exitCode) + } +} + +func TestShowAppHelp_CommandAliases(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Aliases: []string{"fr", "frob"}, + Action: func(ctx *Context) error { + return nil + }, + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"foo", "--help"}) + + if !strings.Contains(output.String(), "frobbly, fr, frob") { + t.Errorf("expected output to include all command aliases; got: %q", output.String()) + } +} + +func TestShowCommandHelp_CommandAliases(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Aliases: []string{"fr", "frob", "bork"}, + Action: func(ctx *Context) error { + return nil + }, + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"foo", "help", "fr"}) + + if !strings.Contains(output.String(), "frobbly") { + t.Errorf("expected output to include command name; got: %q", output.String()) + } + + if strings.Contains(output.String(), "bork") { + t.Errorf("expected output to exclude command aliases; got: %q", output.String()) + } +} + +func TestShowSubcommandHelp_CommandAliases(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Aliases: []string{"fr", "frob", "bork"}, + Action: func(ctx *Context) error { + return nil + }, + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"foo", "help"}) + + if !strings.Contains(output.String(), "frobbly, fr, frob, bork") { + t.Errorf("expected output to include all command aliases; got: %q", output.String()) + } +} + +func TestShowCommandHelp_Customtemplate(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Action: func(ctx *Context) error { + return nil + }, + HelpName: "foo frobbly", + CustomHelpTemplate: `NAME: + {{.HelpName}} - {{.Usage}} + +USAGE: + {{.HelpName}} [FLAGS] TARGET [TARGET ...] + +FLAGS: + {{range .VisibleFlags}}{{.}} + {{end}} +EXAMPLES: + 1. Frobbly runs with this param locally. + $ {{.HelpName}} wobbly +`, + }, + }, + } + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"foo", "help", "frobbly"}) + + if strings.Contains(output.String(), "2. Frobbly runs without this param locally.") { + t.Errorf("expected output to exclude \"2. Frobbly runs without this param locally.\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "1. Frobbly runs with this param locally.") { + t.Errorf("expected output to include \"1. Frobbly runs with this param locally.\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "$ foo frobbly wobbly") { + t.Errorf("expected output to include \"$ foo frobbly wobbly\"; got: %q", output.String()) + } +} + +func TestShowSubcommandHelp_CommandUsageText(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + UsageText: "this is usage text", + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + + app.Run([]string{"foo", "frobbly", "--help"}) + + if !strings.Contains(output.String(), "this is usage text") { + t.Errorf("expected output to include usage text; got: %q", output.String()) + } +} + +func TestShowSubcommandHelp_SubcommandUsageText(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Subcommands: []Command{ + { + Name: "bobbly", + UsageText: "this is usage text", + }, + }, + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"foo", "frobbly", "bobbly", "--help"}) + + if !strings.Contains(output.String(), "this is usage text") { + t.Errorf("expected output to include usage text; got: %q", output.String()) + } +} + +func TestShowAppHelp_HiddenCommand(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Action: func(ctx *Context) error { + return nil + }, + }, + { + Name: "secretfrob", + Hidden: true, + Action: func(ctx *Context) error { + return nil + }, + }, + }, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"app", "--help"}) + + if strings.Contains(output.String(), "secretfrob") { + t.Errorf("expected output to exclude \"secretfrob\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "frobbly") { + t.Errorf("expected output to include \"frobbly\"; got: %q", output.String()) + } +} + +func TestShowAppHelp_CustomAppTemplate(t *testing.T) { + app := &App{ + Commands: []Command{ + { + Name: "frobbly", + Action: func(ctx *Context) error { + return nil + }, + }, + { + Name: "secretfrob", + Hidden: true, + Action: func(ctx *Context) error { + return nil + }, + }, + }, + ExtraInfo: func() map[string]string { + platform := fmt.Sprintf("OS: %s | Arch: %s", runtime.GOOS, runtime.GOARCH) + goruntime := fmt.Sprintf("Version: %s | CPUs: %d", runtime.Version(), runtime.NumCPU()) + return map[string]string{ + "PLATFORM": platform, + "RUNTIME": goruntime, + } + }, + CustomAppHelpTemplate: `NAME: + {{.Name}} - {{.Usage}} + +USAGE: + {{.Name}} {{if .VisibleFlags}}[FLAGS] {{end}}COMMAND{{if .VisibleFlags}} [COMMAND FLAGS | -h]{{end}} [ARGUMENTS...] + +COMMANDS: + {{range .VisibleCommands}}{{join .Names ", "}}{{ "\t" }}{{.Usage}} + {{end}}{{if .VisibleFlags}} +GLOBAL FLAGS: + {{range .VisibleFlags}}{{.}} + {{end}}{{end}} +VERSION: + 2.0.0 +{{"\n"}}{{range $key, $value := ExtraInfo}} +{{$key}}: + {{$value}} +{{end}}`, + } + + output := &bytes.Buffer{} + app.Writer = output + app.Run([]string{"app", "--help"}) + + if strings.Contains(output.String(), "secretfrob") { + t.Errorf("expected output to exclude \"secretfrob\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "frobbly") { + t.Errorf("expected output to include \"frobbly\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "PLATFORM:") || + !strings.Contains(output.String(), "OS:") || + !strings.Contains(output.String(), "Arch:") { + t.Errorf("expected output to include \"PLATFORM:, OS: and Arch:\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "RUNTIME:") || + !strings.Contains(output.String(), "Version:") || + !strings.Contains(output.String(), "CPUs:") { + t.Errorf("expected output to include \"RUNTIME:, Version: and CPUs:\"; got: %q", output.String()) + } + + if !strings.Contains(output.String(), "VERSION:") || + !strings.Contains(output.String(), "2.0.0") { + t.Errorf("expected output to include \"VERSION:, 2.0.0\"; got: %q", output.String()) + } +} diff --git a/vendor/github.com/urfave/cli/helpers_test.go b/vendor/github.com/urfave/cli/helpers_test.go new file mode 100644 index 0000000..109ea7a --- /dev/null +++ b/vendor/github.com/urfave/cli/helpers_test.go @@ -0,0 +1,28 @@ +package cli + +import ( + "os" + "reflect" + "runtime" + "strings" + "testing" +) + +var ( + wd, _ = os.Getwd() +) + +func expect(t *testing.T, a interface{}, b interface{}) { + _, fn, line, _ := runtime.Caller(1) + fn = strings.Replace(fn, wd+"/", "", -1) + + if !reflect.DeepEqual(a, b) { + t.Errorf("(%s:%d) Expected %v (type %v) - Got %v (type %v)", fn, line, b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} + +func refute(t *testing.T, a interface{}, b interface{}) { + if reflect.DeepEqual(a, b) { + t.Errorf("Did not expect %v (type %v) - Got %v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} diff --git a/vendor/github.com/urfave/cli/helpers_unix_test.go b/vendor/github.com/urfave/cli/helpers_unix_test.go new file mode 100644 index 0000000..ae27fc5 --- /dev/null +++ b/vendor/github.com/urfave/cli/helpers_unix_test.go @@ -0,0 +1,9 @@ +// +build darwin dragonfly freebsd linux netbsd openbsd solaris + +package cli + +import "os" + +func clearenv() { + os.Clearenv() +} diff --git a/vendor/github.com/urfave/cli/helpers_windows_test.go b/vendor/github.com/urfave/cli/helpers_windows_test.go new file mode 100644 index 0000000..4eb84f9 --- /dev/null +++ b/vendor/github.com/urfave/cli/helpers_windows_test.go @@ -0,0 +1,20 @@ +package cli + +import ( + "os" + "syscall" +) + +// os.Clearenv() doesn't actually unset variables on Windows +// See: https://github.com/golang/go/issues/17902 +func clearenv() { + for _, s := range os.Environ() { + for j := 1; j < len(s); j++ { + if s[j] == '=' { + keyp, _ := syscall.UTF16PtrFromString(s[0:j]) + syscall.SetEnvironmentVariable(keyp, nil) + break + } + } + } +} diff --git a/vendor/github.com/urfave/cli/runtests b/vendor/github.com/urfave/cli/runtests new file mode 100755 index 0000000..ee22bde --- /dev/null +++ b/vendor/github.com/urfave/cli/runtests @@ -0,0 +1,122 @@ +#!/usr/bin/env python +from __future__ import print_function + +import argparse +import os +import sys +import tempfile + +from subprocess import check_call, check_output + + +PACKAGE_NAME = os.environ.get( + 'CLI_PACKAGE_NAME', 'github.com/urfave/cli' +) + + +def main(sysargs=sys.argv[:]): + targets = { + 'vet': _vet, + 'test': _test, + 'gfmrun': _gfmrun, + 'toc': _toc, + 'gen': _gen, + } + + parser = argparse.ArgumentParser() + parser.add_argument( + 'target', nargs='?', choices=tuple(targets.keys()), default='test' + ) + args = parser.parse_args(sysargs[1:]) + + targets[args.target]() + return 0 + + +def _test(): + if check_output('go version'.split()).split()[2] < 'go1.2': + _run('go test -v .') + return + + coverprofiles = [] + for subpackage in ['', 'altsrc']: + coverprofile = 'cli.coverprofile' + if subpackage != '': + coverprofile = '{}.coverprofile'.format(subpackage) + + coverprofiles.append(coverprofile) + + _run('go test -v'.split() + [ + '-coverprofile={}'.format(coverprofile), + ('{}/{}'.format(PACKAGE_NAME, subpackage)).rstrip('/') + ]) + + combined_name = _combine_coverprofiles(coverprofiles) + _run('go tool cover -func={}'.format(combined_name)) + os.remove(combined_name) + + +def _gfmrun(): + go_version = check_output('go version'.split()).split()[2] + if go_version < 'go1.3': + print('runtests: skip on {}'.format(go_version), file=sys.stderr) + return + _run(['gfmrun', '-c', str(_gfmrun_count()), '-s', 'README.md']) + + +def _vet(): + _run('go vet ./...') + + +def _toc(): + _run('node_modules/.bin/markdown-toc -i README.md') + _run('git diff --exit-code') + + +def _gen(): + go_version = check_output('go version'.split()).split()[2] + if go_version < 'go1.5': + print('runtests: skip on {}'.format(go_version), file=sys.stderr) + return + + _run('go generate ./...') + _run('git diff --exit-code') + + +def _run(command): + if hasattr(command, 'split'): + command = command.split() + print('runtests: {}'.format(' '.join(command)), file=sys.stderr) + check_call(command) + + +def _gfmrun_count(): + with open('README.md') as infile: + lines = infile.read().splitlines() + return len(filter(_is_go_runnable, lines)) + + +def _is_go_runnable(line): + return line.startswith('package main') + + +def _combine_coverprofiles(coverprofiles): + combined = tempfile.NamedTemporaryFile( + suffix='.coverprofile', delete=False + ) + combined.write('mode: set\n') + + for coverprofile in coverprofiles: + with open(coverprofile, 'r') as infile: + for line in infile.readlines(): + if not line.startswith('mode: '): + combined.write(line) + + combined.flush() + name = combined.name + combined.close() + return name + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/vendor/gopkg.in/yaml.v2/.travis.yml b/vendor/gopkg.in/yaml.v2/.travis.yml new file mode 100644 index 0000000..9f55693 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/.travis.yml @@ -0,0 +1,12 @@ +language: go + +go: + - 1.4 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - tip + +go_import_path: gopkg.in/yaml.v2 diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml new file mode 100644 index 0000000..8da58fb --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml @@ -0,0 +1,31 @@ +The following files were ported to Go from C files of libyaml, and thus +are still covered by their original copyright and license: + + apic.go + emitterc.go + parserc.go + readerc.go + scannerc.go + writerc.go + yamlh.go + yamlprivateh.go + +Copyright (c) 2006 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/gopkg.in/yaml.v2/NOTICE b/vendor/gopkg.in/yaml.v2/NOTICE new file mode 100644 index 0000000..866d74a --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/NOTICE @@ -0,0 +1,13 @@ +Copyright 2011-2016 Canonical Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/vendor/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v2/README.md new file mode 100644 index 0000000..b50c6e8 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/README.md @@ -0,0 +1,133 @@ +# YAML support for the Go language + +Introduction +------------ + +The yaml package enables Go programs to comfortably encode and decode YAML +values. It was developed within [Canonical](https://www.canonical.com) as +part of the [juju](https://juju.ubuntu.com) project, and is based on a +pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) +C library to parse and generate YAML data quickly and reliably. + +Compatibility +------------- + +The yaml package supports most of YAML 1.1 and 1.2, including support for +anchors, tags, map merging, etc. Multi-document unmarshalling is not yet +implemented, and base-60 floats from YAML 1.1 are purposefully not +supported since they're a poor design and are gone in YAML 1.2. + +Installation and usage +---------------------- + +The import path for the package is *gopkg.in/yaml.v2*. + +To install it, run: + + go get gopkg.in/yaml.v2 + +API documentation +----------------- + +If opened in a browser, the import path itself leads to the API documentation: + + * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) + +API stability +------------- + +The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). + + +License +------- + +The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details. + + +Example +------- + +```Go +package main + +import ( + "fmt" + "log" + + "gopkg.in/yaml.v2" +) + +var data = ` +a: Easy! +b: + c: 2 + d: [3, 4] +` + +// Note: struct fields must be public in order for unmarshal to +// correctly populate the data. +type T struct { + A string + B struct { + RenamedC int `yaml:"c"` + D []int `yaml:",flow"` + } +} + +func main() { + t := T{} + + err := yaml.Unmarshal([]byte(data), &t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t:\n%v\n\n", t) + + d, err := yaml.Marshal(&t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t dump:\n%s\n\n", string(d)) + + m := make(map[interface{}]interface{}) + + err = yaml.Unmarshal([]byte(data), &m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m:\n%v\n\n", m) + + d, err = yaml.Marshal(&m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m dump:\n%s\n\n", string(d)) +} +``` + +This example will generate the following output: + +``` +--- t: +{Easy! {2 [3 4]}} + +--- t dump: +a: Easy! +b: + c: 2 + d: [3, 4] + + +--- m: +map[a:Easy! b:map[c:2 d:[3 4]]] + +--- m dump: +a: Easy! +b: + c: 2 + d: + - 3 + - 4 +``` + diff --git a/vendor/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v2/apic.go new file mode 100644 index 0000000..1f7e87e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/apic.go @@ -0,0 +1,739 @@ +package yaml + +import ( + "io" +) + +func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { + //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) + + // Check if we can move the queue at the beginning of the buffer. + if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { + if parser.tokens_head != len(parser.tokens) { + copy(parser.tokens, parser.tokens[parser.tokens_head:]) + } + parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] + parser.tokens_head = 0 + } + parser.tokens = append(parser.tokens, *token) + if pos < 0 { + return + } + copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) + parser.tokens[parser.tokens_head+pos] = *token +} + +// Create a new parser object. +func yaml_parser_initialize(parser *yaml_parser_t) bool { + *parser = yaml_parser_t{ + raw_buffer: make([]byte, 0, input_raw_buffer_size), + buffer: make([]byte, 0, input_buffer_size), + } + return true +} + +// Destroy a parser object. +func yaml_parser_delete(parser *yaml_parser_t) { + *parser = yaml_parser_t{} +} + +// String read handler. +func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + if parser.input_pos == len(parser.input) { + return 0, io.EOF + } + n = copy(buffer, parser.input[parser.input_pos:]) + parser.input_pos += n + return n, nil +} + +// Reader read handler. +func yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + return parser.input_reader.Read(buffer) +} + +// Set a string input. +func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_string_read_handler + parser.input = input + parser.input_pos = 0 +} + +// Set a file input. +func yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_reader_read_handler + parser.input_reader = r +} + +// Set the source encoding. +func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { + if parser.encoding != yaml_ANY_ENCODING { + panic("must set the encoding only once") + } + parser.encoding = encoding +} + +// Create a new emitter object. +func yaml_emitter_initialize(emitter *yaml_emitter_t) { + *emitter = yaml_emitter_t{ + buffer: make([]byte, output_buffer_size), + raw_buffer: make([]byte, 0, output_raw_buffer_size), + states: make([]yaml_emitter_state_t, 0, initial_stack_size), + events: make([]yaml_event_t, 0, initial_queue_size), + } +} + +// Destroy an emitter object. +func yaml_emitter_delete(emitter *yaml_emitter_t) { + *emitter = yaml_emitter_t{} +} + +// String write handler. +func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + *emitter.output_buffer = append(*emitter.output_buffer, buffer...) + return nil +} + +// yaml_writer_write_handler uses emitter.output_writer to write the +// emitted text. +func yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + _, err := emitter.output_writer.Write(buffer) + return err +} + +// Set a string output. +func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_string_write_handler + emitter.output_buffer = output_buffer +} + +// Set a file output. +func yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_writer_write_handler + emitter.output_writer = w +} + +// Set the output encoding. +func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { + if emitter.encoding != yaml_ANY_ENCODING { + panic("must set the output encoding only once") + } + emitter.encoding = encoding +} + +// Set the canonical output style. +func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { + emitter.canonical = canonical +} + +//// Set the indentation increment. +func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { + if indent < 2 || indent > 9 { + indent = 2 + } + emitter.best_indent = indent +} + +// Set the preferred line width. +func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { + if width < 0 { + width = -1 + } + emitter.best_width = width +} + +// Set if unescaped non-ASCII characters are allowed. +func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { + emitter.unicode = unicode +} + +// Set the preferred line break character. +func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { + emitter.line_break = line_break +} + +///* +// * Destroy a token object. +// */ +// +//YAML_DECLARE(void) +//yaml_token_delete(yaml_token_t *token) +//{ +// assert(token); // Non-NULL token object expected. +// +// switch (token.type) +// { +// case YAML_TAG_DIRECTIVE_TOKEN: +// yaml_free(token.data.tag_directive.handle); +// yaml_free(token.data.tag_directive.prefix); +// break; +// +// case YAML_ALIAS_TOKEN: +// yaml_free(token.data.alias.value); +// break; +// +// case YAML_ANCHOR_TOKEN: +// yaml_free(token.data.anchor.value); +// break; +// +// case YAML_TAG_TOKEN: +// yaml_free(token.data.tag.handle); +// yaml_free(token.data.tag.suffix); +// break; +// +// case YAML_SCALAR_TOKEN: +// yaml_free(token.data.scalar.value); +// break; +// +// default: +// break; +// } +// +// memset(token, 0, sizeof(yaml_token_t)); +//} +// +///* +// * Check if a string is a valid UTF-8 sequence. +// * +// * Check 'reader.c' for more details on UTF-8 encoding. +// */ +// +//static int +//yaml_check_utf8(yaml_char_t *start, size_t length) +//{ +// yaml_char_t *end = start+length; +// yaml_char_t *pointer = start; +// +// while (pointer < end) { +// unsigned char octet; +// unsigned int width; +// unsigned int value; +// size_t k; +// +// octet = pointer[0]; +// width = (octet & 0x80) == 0x00 ? 1 : +// (octet & 0xE0) == 0xC0 ? 2 : +// (octet & 0xF0) == 0xE0 ? 3 : +// (octet & 0xF8) == 0xF0 ? 4 : 0; +// value = (octet & 0x80) == 0x00 ? octet & 0x7F : +// (octet & 0xE0) == 0xC0 ? octet & 0x1F : +// (octet & 0xF0) == 0xE0 ? octet & 0x0F : +// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; +// if (!width) return 0; +// if (pointer+width > end) return 0; +// for (k = 1; k < width; k ++) { +// octet = pointer[k]; +// if ((octet & 0xC0) != 0x80) return 0; +// value = (value << 6) + (octet & 0x3F); +// } +// if (!((width == 1) || +// (width == 2 && value >= 0x80) || +// (width == 3 && value >= 0x800) || +// (width == 4 && value >= 0x10000))) return 0; +// +// pointer += width; +// } +// +// return 1; +//} +// + +// Create STREAM-START. +func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) { + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + encoding: encoding, + } +} + +// Create STREAM-END. +func yaml_stream_end_event_initialize(event *yaml_event_t) { + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + } +} + +// Create DOCUMENT-START. +func yaml_document_start_event_initialize( + event *yaml_event_t, + version_directive *yaml_version_directive_t, + tag_directives []yaml_tag_directive_t, + implicit bool, +) { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: implicit, + } +} + +// Create DOCUMENT-END. +func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + implicit: implicit, + } +} + +///* +// * Create ALIAS. +// */ +// +//YAML_DECLARE(int) +//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) +//{ +// mark yaml_mark_t = { 0, 0, 0 } +// anchor_copy *yaml_char_t = NULL +// +// assert(event) // Non-NULL event object is expected. +// assert(anchor) // Non-NULL anchor is expected. +// +// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 +// +// anchor_copy = yaml_strdup(anchor) +// if (!anchor_copy) +// return 0 +// +// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) +// +// return 1 +//} + +// Create SCALAR. +func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + anchor: anchor, + tag: tag, + value: value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-START. +func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-END. +func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + } + return true +} + +// Create MAPPING-START. +func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) { + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } +} + +// Create MAPPING-END. +func yaml_mapping_end_event_initialize(event *yaml_event_t) { + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + } +} + +// Destroy an event object. +func yaml_event_delete(event *yaml_event_t) { + *event = yaml_event_t{} +} + +///* +// * Create a document object. +// */ +// +//YAML_DECLARE(int) +//yaml_document_initialize(document *yaml_document_t, +// version_directive *yaml_version_directive_t, +// tag_directives_start *yaml_tag_directive_t, +// tag_directives_end *yaml_tag_directive_t, +// start_implicit int, end_implicit int) +//{ +// struct { +// error yaml_error_type_t +// } context +// struct { +// start *yaml_node_t +// end *yaml_node_t +// top *yaml_node_t +// } nodes = { NULL, NULL, NULL } +// version_directive_copy *yaml_version_directive_t = NULL +// struct { +// start *yaml_tag_directive_t +// end *yaml_tag_directive_t +// top *yaml_tag_directive_t +// } tag_directives_copy = { NULL, NULL, NULL } +// value yaml_tag_directive_t = { NULL, NULL } +// mark yaml_mark_t = { 0, 0, 0 } +// +// assert(document) // Non-NULL document object is expected. +// assert((tag_directives_start && tag_directives_end) || +// (tag_directives_start == tag_directives_end)) +// // Valid tag directives are expected. +// +// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error +// +// if (version_directive) { +// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) +// if (!version_directive_copy) goto error +// version_directive_copy.major = version_directive.major +// version_directive_copy.minor = version_directive.minor +// } +// +// if (tag_directives_start != tag_directives_end) { +// tag_directive *yaml_tag_directive_t +// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) +// goto error +// for (tag_directive = tag_directives_start +// tag_directive != tag_directives_end; tag_directive ++) { +// assert(tag_directive.handle) +// assert(tag_directive.prefix) +// if (!yaml_check_utf8(tag_directive.handle, +// strlen((char *)tag_directive.handle))) +// goto error +// if (!yaml_check_utf8(tag_directive.prefix, +// strlen((char *)tag_directive.prefix))) +// goto error +// value.handle = yaml_strdup(tag_directive.handle) +// value.prefix = yaml_strdup(tag_directive.prefix) +// if (!value.handle || !value.prefix) goto error +// if (!PUSH(&context, tag_directives_copy, value)) +// goto error +// value.handle = NULL +// value.prefix = NULL +// } +// } +// +// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, +// tag_directives_copy.start, tag_directives_copy.top, +// start_implicit, end_implicit, mark, mark) +// +// return 1 +// +//error: +// STACK_DEL(&context, nodes) +// yaml_free(version_directive_copy) +// while (!STACK_EMPTY(&context, tag_directives_copy)) { +// value yaml_tag_directive_t = POP(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// } +// STACK_DEL(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// +// return 0 +//} +// +///* +// * Destroy a document object. +// */ +// +//YAML_DECLARE(void) +//yaml_document_delete(document *yaml_document_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// tag_directive *yaml_tag_directive_t +// +// context.error = YAML_NO_ERROR // Eliminate a compiler warning. +// +// assert(document) // Non-NULL document object is expected. +// +// while (!STACK_EMPTY(&context, document.nodes)) { +// node yaml_node_t = POP(&context, document.nodes) +// yaml_free(node.tag) +// switch (node.type) { +// case YAML_SCALAR_NODE: +// yaml_free(node.data.scalar.value) +// break +// case YAML_SEQUENCE_NODE: +// STACK_DEL(&context, node.data.sequence.items) +// break +// case YAML_MAPPING_NODE: +// STACK_DEL(&context, node.data.mapping.pairs) +// break +// default: +// assert(0) // Should not happen. +// } +// } +// STACK_DEL(&context, document.nodes) +// +// yaml_free(document.version_directive) +// for (tag_directive = document.tag_directives.start +// tag_directive != document.tag_directives.end +// tag_directive++) { +// yaml_free(tag_directive.handle) +// yaml_free(tag_directive.prefix) +// } +// yaml_free(document.tag_directives.start) +// +// memset(document, 0, sizeof(yaml_document_t)) +//} +// +///** +// * Get a document node. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_node(document *yaml_document_t, index int) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (index > 0 && document.nodes.start + index <= document.nodes.top) { +// return document.nodes.start + index - 1 +// } +// return NULL +//} +// +///** +// * Get the root object. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_root_node(document *yaml_document_t) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (document.nodes.top != document.nodes.start) { +// return document.nodes.start +// } +// return NULL +//} +// +///* +// * Add a scalar node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_scalar(document *yaml_document_t, +// tag *yaml_char_t, value *yaml_char_t, length int, +// style yaml_scalar_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// value_copy *yaml_char_t = NULL +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// assert(value) // Non-NULL value is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (length < 0) { +// length = strlen((char *)value) +// } +// +// if (!yaml_check_utf8(value, length)) goto error +// value_copy = yaml_malloc(length+1) +// if (!value_copy) goto error +// memcpy(value_copy, value, length) +// value_copy[length] = '\0' +// +// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// yaml_free(tag_copy) +// yaml_free(value_copy) +// +// return 0 +//} +// +///* +// * Add a sequence node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_sequence(document *yaml_document_t, +// tag *yaml_char_t, style yaml_sequence_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_item_t +// end *yaml_node_item_t +// top *yaml_node_item_t +// } items = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error +// +// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, items) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Add a mapping node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_mapping(document *yaml_document_t, +// tag *yaml_char_t, style yaml_mapping_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_pair_t +// end *yaml_node_pair_t +// top *yaml_node_pair_t +// } pairs = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error +// +// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, pairs) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Append an item to a sequence node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_sequence_item(document *yaml_document_t, +// sequence int, item int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// assert(document) // Non-NULL document is required. +// assert(sequence > 0 +// && document.nodes.start + sequence <= document.nodes.top) +// // Valid sequence id is required. +// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) +// // A sequence node is required. +// assert(item > 0 && document.nodes.start + item <= document.nodes.top) +// // Valid item id is required. +// +// if (!PUSH(&context, +// document.nodes.start[sequence-1].data.sequence.items, item)) +// return 0 +// +// return 1 +//} +// +///* +// * Append a pair of a key and a value to a mapping node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_mapping_pair(document *yaml_document_t, +// mapping int, key int, value int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// pair yaml_node_pair_t +// +// assert(document) // Non-NULL document is required. +// assert(mapping > 0 +// && document.nodes.start + mapping <= document.nodes.top) +// // Valid mapping id is required. +// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) +// // A mapping node is required. +// assert(key > 0 && document.nodes.start + key <= document.nodes.top) +// // Valid key id is required. +// assert(value > 0 && document.nodes.start + value <= document.nodes.top) +// // Valid value id is required. +// +// pair.key = key +// pair.value = value +// +// if (!PUSH(&context, +// document.nodes.start[mapping-1].data.mapping.pairs, pair)) +// return 0 +// +// return 1 +//} +// +// diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go new file mode 100644 index 0000000..e4e56e2 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/decode.go @@ -0,0 +1,775 @@ +package yaml + +import ( + "encoding" + "encoding/base64" + "fmt" + "io" + "math" + "reflect" + "strconv" + "time" +) + +const ( + documentNode = 1 << iota + mappingNode + sequenceNode + scalarNode + aliasNode +) + +type node struct { + kind int + line, column int + tag string + // For an alias node, alias holds the resolved alias. + alias *node + value string + implicit bool + children []*node + anchors map[string]*node +} + +// ---------------------------------------------------------------------------- +// Parser, produces a node tree out of a libyaml event stream. + +type parser struct { + parser yaml_parser_t + event yaml_event_t + doc *node + doneInit bool +} + +func newParser(b []byte) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + if len(b) == 0 { + b = []byte{'\n'} + } + yaml_parser_set_input_string(&p.parser, b) + return &p +} + +func newParserFromReader(r io.Reader) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + yaml_parser_set_input_reader(&p.parser, r) + return &p +} + +func (p *parser) init() { + if p.doneInit { + return + } + p.expect(yaml_STREAM_START_EVENT) + p.doneInit = true +} + +func (p *parser) destroy() { + if p.event.typ != yaml_NO_EVENT { + yaml_event_delete(&p.event) + } + yaml_parser_delete(&p.parser) +} + +// expect consumes an event from the event stream and +// checks that it's of the expected type. +func (p *parser) expect(e yaml_event_type_t) { + if p.event.typ == yaml_NO_EVENT { + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } + } + if p.event.typ == yaml_STREAM_END_EVENT { + failf("attempted to go past the end of stream; corrupted value?") + } + if p.event.typ != e { + p.parser.problem = fmt.Sprintf("expected %s event but got %s", e, p.event.typ) + p.fail() + } + yaml_event_delete(&p.event) + p.event.typ = yaml_NO_EVENT +} + +// peek peeks at the next event in the event stream, +// puts the results into p.event and returns the event type. +func (p *parser) peek() yaml_event_type_t { + if p.event.typ != yaml_NO_EVENT { + return p.event.typ + } + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } + return p.event.typ +} + +func (p *parser) fail() { + var where string + var line int + if p.parser.problem_mark.line != 0 { + line = p.parser.problem_mark.line + // Scanner errors don't iterate line before returning error + if p.parser.error == yaml_SCANNER_ERROR { + line++ + } + } else if p.parser.context_mark.line != 0 { + line = p.parser.context_mark.line + } + if line != 0 { + where = "line " + strconv.Itoa(line) + ": " + } + var msg string + if len(p.parser.problem) > 0 { + msg = p.parser.problem + } else { + msg = "unknown problem parsing YAML content" + } + failf("%s%s", where, msg) +} + +func (p *parser) anchor(n *node, anchor []byte) { + if anchor != nil { + p.doc.anchors[string(anchor)] = n + } +} + +func (p *parser) parse() *node { + p.init() + switch p.peek() { + case yaml_SCALAR_EVENT: + return p.scalar() + case yaml_ALIAS_EVENT: + return p.alias() + case yaml_MAPPING_START_EVENT: + return p.mapping() + case yaml_SEQUENCE_START_EVENT: + return p.sequence() + case yaml_DOCUMENT_START_EVENT: + return p.document() + case yaml_STREAM_END_EVENT: + // Happens when attempting to decode an empty buffer. + return nil + default: + panic("attempted to parse unknown event: " + p.event.typ.String()) + } +} + +func (p *parser) node(kind int) *node { + return &node{ + kind: kind, + line: p.event.start_mark.line, + column: p.event.start_mark.column, + } +} + +func (p *parser) document() *node { + n := p.node(documentNode) + n.anchors = make(map[string]*node) + p.doc = n + p.expect(yaml_DOCUMENT_START_EVENT) + n.children = append(n.children, p.parse()) + p.expect(yaml_DOCUMENT_END_EVENT) + return n +} + +func (p *parser) alias() *node { + n := p.node(aliasNode) + n.value = string(p.event.anchor) + n.alias = p.doc.anchors[n.value] + if n.alias == nil { + failf("unknown anchor '%s' referenced", n.value) + } + p.expect(yaml_ALIAS_EVENT) + return n +} + +func (p *parser) scalar() *node { + n := p.node(scalarNode) + n.value = string(p.event.value) + n.tag = string(p.event.tag) + n.implicit = p.event.implicit + p.anchor(n, p.event.anchor) + p.expect(yaml_SCALAR_EVENT) + return n +} + +func (p *parser) sequence() *node { + n := p.node(sequenceNode) + p.anchor(n, p.event.anchor) + p.expect(yaml_SEQUENCE_START_EVENT) + for p.peek() != yaml_SEQUENCE_END_EVENT { + n.children = append(n.children, p.parse()) + } + p.expect(yaml_SEQUENCE_END_EVENT) + return n +} + +func (p *parser) mapping() *node { + n := p.node(mappingNode) + p.anchor(n, p.event.anchor) + p.expect(yaml_MAPPING_START_EVENT) + for p.peek() != yaml_MAPPING_END_EVENT { + n.children = append(n.children, p.parse(), p.parse()) + } + p.expect(yaml_MAPPING_END_EVENT) + return n +} + +// ---------------------------------------------------------------------------- +// Decoder, unmarshals a node into a provided value. + +type decoder struct { + doc *node + aliases map[*node]bool + mapType reflect.Type + terrors []string + strict bool +} + +var ( + mapItemType = reflect.TypeOf(MapItem{}) + durationType = reflect.TypeOf(time.Duration(0)) + defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) + ifaceType = defaultMapType.Elem() + timeType = reflect.TypeOf(time.Time{}) + ptrTimeType = reflect.TypeOf(&time.Time{}) +) + +func newDecoder(strict bool) *decoder { + d := &decoder{mapType: defaultMapType, strict: strict} + d.aliases = make(map[*node]bool) + return d +} + +func (d *decoder) terror(n *node, tag string, out reflect.Value) { + if n.tag != "" { + tag = n.tag + } + value := n.value + if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { + if len(value) > 10 { + value = " `" + value[:7] + "...`" + } else { + value = " `" + value + "`" + } + } + d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) +} + +func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { + terrlen := len(d.terrors) + err := u.UnmarshalYAML(func(v interface{}) (err error) { + defer handleErr(&err) + d.unmarshal(n, reflect.ValueOf(v)) + if len(d.terrors) > terrlen { + issues := d.terrors[terrlen:] + d.terrors = d.terrors[:terrlen] + return &TypeError{issues} + } + return nil + }) + if e, ok := err.(*TypeError); ok { + d.terrors = append(d.terrors, e.Errors...) + return false + } + if err != nil { + fail(err) + } + return true +} + +// d.prepare initializes and dereferences pointers and calls UnmarshalYAML +// if a value is found to implement it. +// It returns the initialized and dereferenced out value, whether +// unmarshalling was already done by UnmarshalYAML, and if so whether +// its types unmarshalled appropriately. +// +// If n holds a null value, prepare returns before doing anything. +func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { + if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "~" || n.value == "" && n.implicit) { + return out, false, false + } + again := true + for again { + again = false + if out.Kind() == reflect.Ptr { + if out.IsNil() { + out.Set(reflect.New(out.Type().Elem())) + } + out = out.Elem() + again = true + } + if out.CanAddr() { + if u, ok := out.Addr().Interface().(Unmarshaler); ok { + good = d.callUnmarshaler(n, u) + return out, true, good + } + } + } + return out, false, false +} + +func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { + switch n.kind { + case documentNode: + return d.document(n, out) + case aliasNode: + return d.alias(n, out) + } + out, unmarshaled, good := d.prepare(n, out) + if unmarshaled { + return good + } + switch n.kind { + case scalarNode: + good = d.scalar(n, out) + case mappingNode: + good = d.mapping(n, out) + case sequenceNode: + good = d.sequence(n, out) + default: + panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) + } + return good +} + +func (d *decoder) document(n *node, out reflect.Value) (good bool) { + if len(n.children) == 1 { + d.doc = n + d.unmarshal(n.children[0], out) + return true + } + return false +} + +func (d *decoder) alias(n *node, out reflect.Value) (good bool) { + if d.aliases[n] { + // TODO this could actually be allowed in some circumstances. + failf("anchor '%s' value contains itself", n.value) + } + d.aliases[n] = true + good = d.unmarshal(n.alias, out) + delete(d.aliases, n) + return good +} + +var zeroValue reflect.Value + +func resetMap(out reflect.Value) { + for _, k := range out.MapKeys() { + out.SetMapIndex(k, zeroValue) + } +} + +func (d *decoder) scalar(n *node, out reflect.Value) bool { + var tag string + var resolved interface{} + if n.tag == "" && !n.implicit { + tag = yaml_STR_TAG + resolved = n.value + } else { + tag, resolved = resolve(n.tag, n.value) + if tag == yaml_BINARY_TAG { + data, err := base64.StdEncoding.DecodeString(resolved.(string)) + if err != nil { + failf("!!binary value contains invalid base64 data") + } + resolved = string(data) + } + } + if resolved == nil { + if out.Kind() == reflect.Map && !out.CanAddr() { + resetMap(out) + } else { + out.Set(reflect.Zero(out.Type())) + } + return true + } + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + // We've resolved to exactly the type we want, so use that. + out.Set(resolvedv) + return true + } + // Perhaps we can use the value as a TextUnmarshaler to + // set its value. + if out.CanAddr() { + u, ok := out.Addr().Interface().(encoding.TextUnmarshaler) + if ok { + var text []byte + if tag == yaml_BINARY_TAG { + text = []byte(resolved.(string)) + } else { + // We let any value be unmarshaled into TextUnmarshaler. + // That might be more lax than we'd like, but the + // TextUnmarshaler itself should bowl out any dubious values. + text = []byte(n.value) + } + err := u.UnmarshalText(text) + if err != nil { + fail(err) + } + return true + } + } + switch out.Kind() { + case reflect.String: + if tag == yaml_BINARY_TAG { + out.SetString(resolved.(string)) + return true + } + if resolved != nil { + out.SetString(n.value) + return true + } + case reflect.Interface: + if resolved == nil { + out.Set(reflect.Zero(out.Type())) + } else if tag == yaml_TIMESTAMP_TAG { + // It looks like a timestamp but for backward compatibility + // reasons we set it as a string, so that code that unmarshals + // timestamp-like values into interface{} will continue to + // see a string and not a time.Time. + // TODO(v3) Drop this. + out.Set(reflect.ValueOf(n.value)) + } else { + out.Set(reflect.ValueOf(resolved)) + } + return true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + switch resolved := resolved.(type) { + case int: + if !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case int64: + if !out.OverflowInt(resolved) { + out.SetInt(resolved) + return true + } + case uint64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case float64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + return true + } + case string: + if out.Type() == durationType { + d, err := time.ParseDuration(resolved) + if err == nil { + out.SetInt(int64(d)) + return true + } + } + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch resolved := resolved.(type) { + case int: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case int64: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case uint64: + if !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + case float64: + if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + return true + } + } + case reflect.Bool: + switch resolved := resolved.(type) { + case bool: + out.SetBool(resolved) + return true + } + case reflect.Float32, reflect.Float64: + switch resolved := resolved.(type) { + case int: + out.SetFloat(float64(resolved)) + return true + case int64: + out.SetFloat(float64(resolved)) + return true + case uint64: + out.SetFloat(float64(resolved)) + return true + case float64: + out.SetFloat(resolved) + return true + } + case reflect.Struct: + if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() { + out.Set(resolvedv) + return true + } + case reflect.Ptr: + if out.Type().Elem() == reflect.TypeOf(resolved) { + // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? + elem := reflect.New(out.Type().Elem()) + elem.Elem().Set(reflect.ValueOf(resolved)) + out.Set(elem) + return true + } + } + d.terror(n, tag, out) + return false +} + +func settableValueOf(i interface{}) reflect.Value { + v := reflect.ValueOf(i) + sv := reflect.New(v.Type()).Elem() + sv.Set(v) + return sv +} + +func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { + l := len(n.children) + + var iface reflect.Value + switch out.Kind() { + case reflect.Slice: + out.Set(reflect.MakeSlice(out.Type(), l, l)) + case reflect.Array: + if l != out.Len() { + failf("invalid array: want %d elements but got %d", out.Len(), l) + } + case reflect.Interface: + // No type hints. Will have to use a generic sequence. + iface = out + out = settableValueOf(make([]interface{}, l)) + default: + d.terror(n, yaml_SEQ_TAG, out) + return false + } + et := out.Type().Elem() + + j := 0 + for i := 0; i < l; i++ { + e := reflect.New(et).Elem() + if ok := d.unmarshal(n.children[i], e); ok { + out.Index(j).Set(e) + j++ + } + } + if out.Kind() != reflect.Array { + out.Set(out.Slice(0, j)) + } + if iface.IsValid() { + iface.Set(out) + } + return true +} + +func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { + switch out.Kind() { + case reflect.Struct: + return d.mappingStruct(n, out) + case reflect.Slice: + return d.mappingSlice(n, out) + case reflect.Map: + // okay + case reflect.Interface: + if d.mapType.Kind() == reflect.Map { + iface := out + out = reflect.MakeMap(d.mapType) + iface.Set(out) + } else { + slicev := reflect.New(d.mapType).Elem() + if !d.mappingSlice(n, slicev) { + return false + } + out.Set(slicev) + return true + } + default: + d.terror(n, yaml_MAP_TAG, out) + return false + } + outt := out.Type() + kt := outt.Key() + et := outt.Elem() + + mapType := d.mapType + if outt.Key() == ifaceType && outt.Elem() == ifaceType { + d.mapType = outt + } + + if out.IsNil() { + out.Set(reflect.MakeMap(outt)) + } + l := len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + k := reflect.New(kt).Elem() + if d.unmarshal(n.children[i], k) { + kkind := k.Kind() + if kkind == reflect.Interface { + kkind = k.Elem().Kind() + } + if kkind == reflect.Map || kkind == reflect.Slice { + failf("invalid map key: %#v", k.Interface()) + } + e := reflect.New(et).Elem() + if d.unmarshal(n.children[i+1], e) { + d.setMapIndex(n.children[i+1], out, k, e) + } + } + } + d.mapType = mapType + return true +} + +func (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) { + if d.strict && out.MapIndex(k) != zeroValue { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: key %#v already set in map", n.line+1, k.Interface())) + return + } + out.SetMapIndex(k, v) +} + +func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { + outt := out.Type() + if outt.Elem() != mapItemType { + d.terror(n, yaml_MAP_TAG, out) + return false + } + + mapType := d.mapType + d.mapType = outt + + var slice []MapItem + var l = len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + item := MapItem{} + k := reflect.ValueOf(&item.Key).Elem() + if d.unmarshal(n.children[i], k) { + v := reflect.ValueOf(&item.Value).Elem() + if d.unmarshal(n.children[i+1], v) { + slice = append(slice, item) + } + } + } + out.Set(reflect.ValueOf(slice)) + d.mapType = mapType + return true +} + +func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { + sinfo, err := getStructInfo(out.Type()) + if err != nil { + panic(err) + } + name := settableValueOf("") + l := len(n.children) + + var inlineMap reflect.Value + var elemType reflect.Type + if sinfo.InlineMap != -1 { + inlineMap = out.Field(sinfo.InlineMap) + inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) + elemType = inlineMap.Type().Elem() + } + + var doneFields []bool + if d.strict { + doneFields = make([]bool, len(sinfo.FieldsList)) + } + for i := 0; i < l; i += 2 { + ni := n.children[i] + if isMerge(ni) { + d.merge(n.children[i+1], out) + continue + } + if !d.unmarshal(ni, name) { + continue + } + if info, ok := sinfo.FieldsMap[name.String()]; ok { + if d.strict { + if doneFields[info.Id] { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.line+1, name.String(), out.Type())) + continue + } + doneFields[info.Id] = true + } + var field reflect.Value + if info.Inline == nil { + field = out.Field(info.Num) + } else { + field = out.FieldByIndex(info.Inline) + } + d.unmarshal(n.children[i+1], field) + } else if sinfo.InlineMap != -1 { + if inlineMap.IsNil() { + inlineMap.Set(reflect.MakeMap(inlineMap.Type())) + } + value := reflect.New(elemType).Elem() + d.unmarshal(n.children[i+1], value) + d.setMapIndex(n.children[i+1], inlineMap, name, value) + } else if d.strict { + d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.line+1, name.String(), out.Type())) + } + } + return true +} + +func failWantMap() { + failf("map merge requires map or sequence of maps as the value") +} + +func (d *decoder) merge(n *node, out reflect.Value) { + switch n.kind { + case mappingNode: + d.unmarshal(n, out) + case aliasNode: + an, ok := d.doc.anchors[n.value] + if ok && an.kind != mappingNode { + failWantMap() + } + d.unmarshal(n, out) + case sequenceNode: + // Step backwards as earlier nodes take precedence. + for i := len(n.children) - 1; i >= 0; i-- { + ni := n.children[i] + if ni.kind == aliasNode { + an, ok := d.doc.anchors[ni.value] + if ok && an.kind != mappingNode { + failWantMap() + } + } else if ni.kind != mappingNode { + failWantMap() + } + d.unmarshal(ni, out) + } + default: + failWantMap() + } +} + +func isMerge(n *node) bool { + return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) +} diff --git a/vendor/gopkg.in/yaml.v2/decode_test.go b/vendor/gopkg.in/yaml.v2/decode_test.go new file mode 100644 index 0000000..9269f12 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/decode_test.go @@ -0,0 +1,1326 @@ +package yaml_test + +import ( + "errors" + "io" + "math" + "reflect" + "strings" + "time" + + . "gopkg.in/check.v1" + "gopkg.in/yaml.v2" +) + +var unmarshalIntTest = 123 + +var unmarshalTests = []struct { + data string + value interface{} +}{ + { + "", + (*struct{})(nil), + }, + { + "{}", &struct{}{}, + }, { + "v: hi", + map[string]string{"v": "hi"}, + }, { + "v: hi", map[string]interface{}{"v": "hi"}, + }, { + "v: true", + map[string]string{"v": "true"}, + }, { + "v: true", + map[string]interface{}{"v": true}, + }, { + "v: 10", + map[string]interface{}{"v": 10}, + }, { + "v: 0b10", + map[string]interface{}{"v": 2}, + }, { + "v: 0xA", + map[string]interface{}{"v": 10}, + }, { + "v: 4294967296", + map[string]int64{"v": 4294967296}, + }, { + "v: 0.1", + map[string]interface{}{"v": 0.1}, + }, { + "v: .1", + map[string]interface{}{"v": 0.1}, + }, { + "v: .Inf", + map[string]interface{}{"v": math.Inf(+1)}, + }, { + "v: -.Inf", + map[string]interface{}{"v": math.Inf(-1)}, + }, { + "v: -10", + map[string]interface{}{"v": -10}, + }, { + "v: -.1", + map[string]interface{}{"v": -0.1}, + }, + + // Simple values. + { + "123", + &unmarshalIntTest, + }, + + // Floats from spec + { + "canonical: 6.8523e+5", + map[string]interface{}{"canonical": 6.8523e+5}, + }, { + "expo: 685.230_15e+03", + map[string]interface{}{"expo": 685.23015e+03}, + }, { + "fixed: 685_230.15", + map[string]interface{}{"fixed": 685230.15}, + }, { + "neginf: -.inf", + map[string]interface{}{"neginf": math.Inf(-1)}, + }, { + "fixed: 685_230.15", + map[string]float64{"fixed": 685230.15}, + }, + //{"sexa: 190:20:30.15", map[string]interface{}{"sexa": 0}}, // Unsupported + //{"notanum: .NaN", map[string]interface{}{"notanum": math.NaN()}}, // Equality of NaN fails. + + // Bools from spec + { + "canonical: y", + map[string]interface{}{"canonical": true}, + }, { + "answer: NO", + map[string]interface{}{"answer": false}, + }, { + "logical: True", + map[string]interface{}{"logical": true}, + }, { + "option: on", + map[string]interface{}{"option": true}, + }, { + "option: on", + map[string]bool{"option": true}, + }, + // Ints from spec + { + "canonical: 685230", + map[string]interface{}{"canonical": 685230}, + }, { + "decimal: +685_230", + map[string]interface{}{"decimal": 685230}, + }, { + "octal: 02472256", + map[string]interface{}{"octal": 685230}, + }, { + "hexa: 0x_0A_74_AE", + map[string]interface{}{"hexa": 685230}, + }, { + "bin: 0b1010_0111_0100_1010_1110", + map[string]interface{}{"bin": 685230}, + }, { + "bin: -0b101010", + map[string]interface{}{"bin": -42}, + }, { + "bin: -0b1000000000000000000000000000000000000000000000000000000000000000", + map[string]interface{}{"bin": -9223372036854775808}, + }, { + "decimal: +685_230", + map[string]int{"decimal": 685230}, + }, + + //{"sexa: 190:20:30", map[string]interface{}{"sexa": 0}}, // Unsupported + + // Nulls from spec + { + "empty:", + map[string]interface{}{"empty": nil}, + }, { + "canonical: ~", + map[string]interface{}{"canonical": nil}, + }, { + "english: null", + map[string]interface{}{"english": nil}, + }, { + "~: null key", + map[interface{}]string{nil: "null key"}, + }, { + "empty:", + map[string]*bool{"empty": nil}, + }, + + // Flow sequence + { + "seq: [A,B]", + map[string]interface{}{"seq": []interface{}{"A", "B"}}, + }, { + "seq: [A,B,C,]", + map[string][]string{"seq": []string{"A", "B", "C"}}, + }, { + "seq: [A,1,C]", + map[string][]string{"seq": []string{"A", "1", "C"}}, + }, { + "seq: [A,1,C]", + map[string][]int{"seq": []int{1}}, + }, { + "seq: [A,1,C]", + map[string]interface{}{"seq": []interface{}{"A", 1, "C"}}, + }, + // Block sequence + { + "seq:\n - A\n - B", + map[string]interface{}{"seq": []interface{}{"A", "B"}}, + }, { + "seq:\n - A\n - B\n - C", + map[string][]string{"seq": []string{"A", "B", "C"}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string][]string{"seq": []string{"A", "1", "C"}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string][]int{"seq": []int{1}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string]interface{}{"seq": []interface{}{"A", 1, "C"}}, + }, + + // Literal block scalar + { + "scalar: | # Comment\n\n literal\n\n \ttext\n\n", + map[string]string{"scalar": "\nliteral\n\n\ttext\n"}, + }, + + // Folded block scalar + { + "scalar: > # Comment\n\n folded\n line\n \n next\n line\n * one\n * two\n\n last\n line\n\n", + map[string]string{"scalar": "\nfolded line\nnext line\n * one\n * two\n\nlast line\n"}, + }, + + // Map inside interface with no type hints. + { + "a: {b: c}", + map[interface{}]interface{}{"a": map[interface{}]interface{}{"b": "c"}}, + }, + + // Structs and type conversions. + { + "hello: world", + &struct{ Hello string }{"world"}, + }, { + "a: {b: c}", + &struct{ A struct{ B string } }{struct{ B string }{"c"}}, + }, { + "a: {b: c}", + &struct{ A *struct{ B string } }{&struct{ B string }{"c"}}, + }, { + "a: {b: c}", + &struct{ A map[string]string }{map[string]string{"b": "c"}}, + }, { + "a: {b: c}", + &struct{ A *map[string]string }{&map[string]string{"b": "c"}}, + }, { + "a:", + &struct{ A map[string]string }{}, + }, { + "a: 1", + &struct{ A int }{1}, + }, { + "a: 1", + &struct{ A float64 }{1}, + }, { + "a: 1.0", + &struct{ A int }{1}, + }, { + "a: 1.0", + &struct{ A uint }{1}, + }, { + "a: [1, 2]", + &struct{ A []int }{[]int{1, 2}}, + }, { + "a: [1, 2]", + &struct{ A [2]int }{[2]int{1, 2}}, + }, { + "a: 1", + &struct{ B int }{0}, + }, { + "a: 1", + &struct { + B int "a" + }{1}, + }, { + "a: y", + &struct{ A bool }{true}, + }, + + // Some cross type conversions + { + "v: 42", + map[string]uint{"v": 42}, + }, { + "v: -42", + map[string]uint{}, + }, { + "v: 4294967296", + map[string]uint64{"v": 4294967296}, + }, { + "v: -4294967296", + map[string]uint64{}, + }, + + // int + { + "int_max: 2147483647", + map[string]int{"int_max": math.MaxInt32}, + }, + { + "int_min: -2147483648", + map[string]int{"int_min": math.MinInt32}, + }, + { + "int_overflow: 9223372036854775808", // math.MaxInt64 + 1 + map[string]int{}, + }, + + // int64 + { + "int64_max: 9223372036854775807", + map[string]int64{"int64_max": math.MaxInt64}, + }, + { + "int64_max_base2: 0b111111111111111111111111111111111111111111111111111111111111111", + map[string]int64{"int64_max_base2": math.MaxInt64}, + }, + { + "int64_min: -9223372036854775808", + map[string]int64{"int64_min": math.MinInt64}, + }, + { + "int64_neg_base2: -0b111111111111111111111111111111111111111111111111111111111111111", + map[string]int64{"int64_neg_base2": -math.MaxInt64}, + }, + { + "int64_overflow: 9223372036854775808", // math.MaxInt64 + 1 + map[string]int64{}, + }, + + // uint + { + "uint_min: 0", + map[string]uint{"uint_min": 0}, + }, + { + "uint_max: 4294967295", + map[string]uint{"uint_max": math.MaxUint32}, + }, + { + "uint_underflow: -1", + map[string]uint{}, + }, + + // uint64 + { + "uint64_min: 0", + map[string]uint{"uint64_min": 0}, + }, + { + "uint64_max: 18446744073709551615", + map[string]uint64{"uint64_max": math.MaxUint64}, + }, + { + "uint64_max_base2: 0b1111111111111111111111111111111111111111111111111111111111111111", + map[string]uint64{"uint64_max_base2": math.MaxUint64}, + }, + { + "uint64_maxint64: 9223372036854775807", + map[string]uint64{"uint64_maxint64": math.MaxInt64}, + }, + { + "uint64_underflow: -1", + map[string]uint64{}, + }, + + // float32 + { + "float32_max: 3.40282346638528859811704183484516925440e+38", + map[string]float32{"float32_max": math.MaxFloat32}, + }, + { + "float32_nonzero: 1.401298464324817070923729583289916131280e-45", + map[string]float32{"float32_nonzero": math.SmallestNonzeroFloat32}, + }, + { + "float32_maxuint64: 18446744073709551615", + map[string]float32{"float32_maxuint64": float32(math.MaxUint64)}, + }, + { + "float32_maxuint64+1: 18446744073709551616", + map[string]float32{"float32_maxuint64+1": float32(math.MaxUint64 + 1)}, + }, + + // float64 + { + "float64_max: 1.797693134862315708145274237317043567981e+308", + map[string]float64{"float64_max": math.MaxFloat64}, + }, + { + "float64_nonzero: 4.940656458412465441765687928682213723651e-324", + map[string]float64{"float64_nonzero": math.SmallestNonzeroFloat64}, + }, + { + "float64_maxuint64: 18446744073709551615", + map[string]float64{"float64_maxuint64": float64(math.MaxUint64)}, + }, + { + "float64_maxuint64+1: 18446744073709551616", + map[string]float64{"float64_maxuint64+1": float64(math.MaxUint64 + 1)}, + }, + + // Overflow cases. + { + "v: 4294967297", + map[string]int32{}, + }, { + "v: 128", + map[string]int8{}, + }, + + // Quoted values. + { + "'1': '\"2\"'", + map[interface{}]interface{}{"1": "\"2\""}, + }, { + "v:\n- A\n- 'B\n\n C'\n", + map[string][]string{"v": []string{"A", "B\nC"}}, + }, + + // Explicit tags. + { + "v: !!float '1.1'", + map[string]interface{}{"v": 1.1}, + }, { + "v: !!float 0", + map[string]interface{}{"v": float64(0)}, + }, { + "v: !!float -1", + map[string]interface{}{"v": float64(-1)}, + }, { + "v: !!null ''", + map[string]interface{}{"v": nil}, + }, { + "%TAG !y! tag:yaml.org,2002:\n---\nv: !y!int '1'", + map[string]interface{}{"v": 1}, + }, + + // Non-specific tag (Issue #75) + { + "v: ! test", + map[string]interface{}{"v": "test"}, + }, + + // Anchors and aliases. + { + "a: &x 1\nb: &y 2\nc: *x\nd: *y\n", + &struct{ A, B, C, D int }{1, 2, 1, 2}, + }, { + "a: &a {c: 1}\nb: *a", + &struct { + A, B struct { + C int + } + }{struct{ C int }{1}, struct{ C int }{1}}, + }, { + "a: &a [1, 2]\nb: *a", + &struct{ B []int }{[]int{1, 2}}, + }, + + // Bug #1133337 + { + "foo: ''", + map[string]*string{"foo": new(string)}, + }, { + "foo: null", + map[string]*string{"foo": nil}, + }, { + "foo: null", + map[string]string{"foo": ""}, + }, { + "foo: null", + map[string]interface{}{"foo": nil}, + }, + + // Support for ~ + { + "foo: ~", + map[string]*string{"foo": nil}, + }, { + "foo: ~", + map[string]string{"foo": ""}, + }, { + "foo: ~", + map[string]interface{}{"foo": nil}, + }, + + // Ignored field + { + "a: 1\nb: 2\n", + &struct { + A int + B int "-" + }{1, 0}, + }, + + // Bug #1191981 + { + "" + + "%YAML 1.1\n" + + "--- !!str\n" + + `"Generic line break (no glyph)\n\` + "\n" + + ` Generic line break (glyphed)\n\` + "\n" + + ` Line separator\u2028\` + "\n" + + ` Paragraph separator\u2029"` + "\n", + "" + + "Generic line break (no glyph)\n" + + "Generic line break (glyphed)\n" + + "Line separator\u2028Paragraph separator\u2029", + }, + + // Struct inlining + { + "a: 1\nb: 2\nc: 3\n", + &struct { + A int + C inlineB `yaml:",inline"` + }{1, inlineB{2, inlineC{3}}}, + }, + + // Map inlining + { + "a: 1\nb: 2\nc: 3\n", + &struct { + A int + C map[string]int `yaml:",inline"` + }{1, map[string]int{"b": 2, "c": 3}}, + }, + + // bug 1243827 + { + "a: -b_c", + map[string]interface{}{"a": "-b_c"}, + }, + { + "a: +b_c", + map[string]interface{}{"a": "+b_c"}, + }, + { + "a: 50cent_of_dollar", + map[string]interface{}{"a": "50cent_of_dollar"}, + }, + + // issue #295 (allow scalars with colons in flow mappings and sequences) + { + "a: {b: https://github.com/go-yaml/yaml}", + map[string]interface{}{"a": map[interface{}]interface{}{ + "b": "https://github.com/go-yaml/yaml", + }}, + }, + { + "a: [https://github.com/go-yaml/yaml]", + map[string]interface{}{"a": []interface{}{"https://github.com/go-yaml/yaml"}}, + }, + + // Duration + { + "a: 3s", + map[string]time.Duration{"a": 3 * time.Second}, + }, + + // Issue #24. + { + "a: ", + map[string]string{"a": ""}, + }, + + // Base 60 floats are obsolete and unsupported. + { + "a: 1:1\n", + map[string]string{"a": "1:1"}, + }, + + // Binary data. + { + "a: !!binary gIGC\n", + map[string]string{"a": "\x80\x81\x82"}, + }, { + "a: !!binary |\n " + strings.Repeat("kJCQ", 17) + "kJ\n CQ\n", + map[string]string{"a": strings.Repeat("\x90", 54)}, + }, { + "a: !!binary |\n " + strings.Repeat("A", 70) + "\n ==\n", + map[string]string{"a": strings.Repeat("\x00", 52)}, + }, + + // Ordered maps. + { + "{b: 2, a: 1, d: 4, c: 3, sub: {e: 5}}", + &yaml.MapSlice{{"b", 2}, {"a", 1}, {"d", 4}, {"c", 3}, {"sub", yaml.MapSlice{{"e", 5}}}}, + }, + + // Issue #39. + { + "a:\n b:\n c: d\n", + map[string]struct{ B interface{} }{"a": {map[interface{}]interface{}{"c": "d"}}}, + }, + + // Custom map type. + { + "a: {b: c}", + M{"a": M{"b": "c"}}, + }, + + // Support encoding.TextUnmarshaler. + { + "a: 1.2.3.4\n", + map[string]textUnmarshaler{"a": textUnmarshaler{S: "1.2.3.4"}}, + }, + { + "a: 2015-02-24T18:19:39Z\n", + map[string]textUnmarshaler{"a": textUnmarshaler{"2015-02-24T18:19:39Z"}}, + }, + + // Timestamps + { + // Date only. + "a: 2015-01-01\n", + map[string]time.Time{"a": time.Date(2015, 1, 1, 0, 0, 0, 0, time.UTC)}, + }, + { + // RFC3339 + "a: 2015-02-24T18:19:39.12Z\n", + map[string]time.Time{"a": time.Date(2015, 2, 24, 18, 19, 39, .12e9, time.UTC)}, + }, + { + // RFC3339 with short dates. + "a: 2015-2-3T3:4:5Z", + map[string]time.Time{"a": time.Date(2015, 2, 3, 3, 4, 5, 0, time.UTC)}, + }, + { + // ISO8601 lower case t + "a: 2015-02-24t18:19:39Z\n", + map[string]time.Time{"a": time.Date(2015, 2, 24, 18, 19, 39, 0, time.UTC)}, + }, + { + // space separate, no time zone + "a: 2015-02-24 18:19:39\n", + map[string]time.Time{"a": time.Date(2015, 2, 24, 18, 19, 39, 0, time.UTC)}, + }, + // Some cases not currently handled. Uncomment these when + // the code is fixed. + // { + // // space separated with time zone + // "a: 2001-12-14 21:59:43.10 -5", + // map[string]interface{}{"a": time.Date(2001, 12, 14, 21, 59, 43, .1e9, time.UTC)}, + // }, + // { + // // arbitrary whitespace between fields + // "a: 2001-12-14 \t\t \t21:59:43.10 \t Z", + // map[string]interface{}{"a": time.Date(2001, 12, 14, 21, 59, 43, .1e9, time.UTC)}, + // }, + { + // explicit string tag + "a: !!str 2015-01-01", + map[string]interface{}{"a": "2015-01-01"}, + }, + { + // explicit timestamp tag on quoted string + "a: !!timestamp \"2015-01-01\"", + map[string]time.Time{"a": time.Date(2015, 1, 1, 0, 0, 0, 0, time.UTC)}, + }, + { + // explicit timestamp tag on unquoted string + "a: !!timestamp 2015-01-01", + map[string]time.Time{"a": time.Date(2015, 1, 1, 0, 0, 0, 0, time.UTC)}, + }, + { + // quoted string that's a valid timestamp + "a: \"2015-01-01\"", + map[string]interface{}{"a": "2015-01-01"}, + }, + { + // explicit timestamp tag into interface. + "a: !!timestamp \"2015-01-01\"", + map[string]interface{}{"a": "2015-01-01"}, + }, + { + // implicit timestamp tag into interface. + "a: 2015-01-01", + map[string]interface{}{"a": "2015-01-01"}, + }, + + // Encode empty lists as zero-length slices. + { + "a: []", + &struct{ A []int }{[]int{}}, + }, + + // UTF-16-LE + { + "\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00\n\x00", + M{"ñoño": "very yes"}, + }, + // UTF-16-LE with surrogate. + { + "\xff\xfe\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00 \x00=\xd8\xd4\xdf\n\x00", + M{"ñoño": "very yes 🟔"}, + }, + + // UTF-16-BE + { + "\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00\n", + M{"ñoño": "very yes"}, + }, + // UTF-16-BE with surrogate. + { + "\xfe\xff\x00\xf1\x00o\x00\xf1\x00o\x00:\x00 \x00v\x00e\x00r\x00y\x00 \x00y\x00e\x00s\x00 \xd8=\xdf\xd4\x00\n", + M{"ñoño": "very yes 🟔"}, + }, + + // YAML Float regex shouldn't match this + { + "a: 123456e1\n", + M{"a": "123456e1"}, + }, { + "a: 123456E1\n", + M{"a": "123456E1"}, + }, + // yaml-test-suite 3GZX: Spec Example 7.1. Alias Nodes + { + "First occurrence: &anchor Foo\nSecond occurrence: *anchor\nOverride anchor: &anchor Bar\nReuse anchor: *anchor\n", + map[interface{}]interface{}{ + "Reuse anchor": "Bar", + "First occurrence": "Foo", + "Second occurrence": "Foo", + "Override anchor": "Bar", + }, + }, + // Single document with garbage following it. + { + "---\nhello\n...\n}not yaml", + "hello", + }, +} + +type M map[interface{}]interface{} + +type inlineB struct { + B int + inlineC `yaml:",inline"` +} + +type inlineC struct { + C int +} + +func (s *S) TestUnmarshal(c *C) { + for i, item := range unmarshalTests { + c.Logf("test %d: %q", i, item.data) + t := reflect.ValueOf(item.value).Type() + value := reflect.New(t) + err := yaml.Unmarshal([]byte(item.data), value.Interface()) + if _, ok := err.(*yaml.TypeError); !ok { + c.Assert(err, IsNil) + } + c.Assert(value.Elem().Interface(), DeepEquals, item.value, Commentf("error: %v", err)) + } +} + +// TODO(v3): This test should also work when unmarshaling onto an interface{}. +func (s *S) TestUnmarshalFullTimestamp(c *C) { + // Full timestamp in same format as encoded. This is confirmed to be + // properly decoded by Python as a timestamp as well. + var str = "2015-02-24T18:19:39.123456789-03:00" + var t time.Time + err := yaml.Unmarshal([]byte(str), &t) + c.Assert(err, IsNil) + c.Assert(t, Equals, time.Date(2015, 2, 24, 18, 19, 39, 123456789, t.Location())) + c.Assert(t.In(time.UTC), Equals, time.Date(2015, 2, 24, 21, 19, 39, 123456789, time.UTC)) +} + +func (s *S) TestDecoderSingleDocument(c *C) { + // Test that Decoder.Decode works as expected on + // all the unmarshal tests. + for i, item := range unmarshalTests { + c.Logf("test %d: %q", i, item.data) + if item.data == "" { + // Behaviour differs when there's no YAML. + continue + } + t := reflect.ValueOf(item.value).Type() + value := reflect.New(t) + err := yaml.NewDecoder(strings.NewReader(item.data)).Decode(value.Interface()) + if _, ok := err.(*yaml.TypeError); !ok { + c.Assert(err, IsNil) + } + c.Assert(value.Elem().Interface(), DeepEquals, item.value) + } +} + +var decoderTests = []struct { + data string + values []interface{} +}{{ + "", + nil, +}, { + "a: b", + []interface{}{ + map[interface{}]interface{}{"a": "b"}, + }, +}, { + "---\na: b\n...\n", + []interface{}{ + map[interface{}]interface{}{"a": "b"}, + }, +}, { + "---\n'hello'\n...\n---\ngoodbye\n...\n", + []interface{}{ + "hello", + "goodbye", + }, +}} + +func (s *S) TestDecoder(c *C) { + for i, item := range decoderTests { + c.Logf("test %d: %q", i, item.data) + var values []interface{} + dec := yaml.NewDecoder(strings.NewReader(item.data)) + for { + var value interface{} + err := dec.Decode(&value) + if err == io.EOF { + break + } + c.Assert(err, IsNil) + values = append(values, value) + } + c.Assert(values, DeepEquals, item.values) + } +} + +type errReader struct{} + +func (errReader) Read([]byte) (int, error) { + return 0, errors.New("some read error") +} + +func (s *S) TestDecoderReadError(c *C) { + err := yaml.NewDecoder(errReader{}).Decode(&struct{}{}) + c.Assert(err, ErrorMatches, `yaml: input error: some read error`) +} + +func (s *S) TestUnmarshalNaN(c *C) { + value := map[string]interface{}{} + err := yaml.Unmarshal([]byte("notanum: .NaN"), &value) + c.Assert(err, IsNil) + c.Assert(math.IsNaN(value["notanum"].(float64)), Equals, true) +} + +var unmarshalErrorTests = []struct { + data, error string +}{ + {"v: !!float 'error'", "yaml: cannot decode !!str `error` as a !!float"}, + {"v: [A,", "yaml: line 1: did not find expected node content"}, + {"v:\n- [A,", "yaml: line 2: did not find expected node content"}, + {"a:\n- b: *,", "yaml: line 2: did not find expected alphabetic or numeric character"}, + {"a: *b\n", "yaml: unknown anchor 'b' referenced"}, + {"a: &a\n b: *a\n", "yaml: anchor 'a' value contains itself"}, + {"value: -", "yaml: block sequence entries are not allowed in this context"}, + {"a: !!binary ==", "yaml: !!binary value contains invalid base64 data"}, + {"{[.]}", `yaml: invalid map key: \[\]interface \{\}\{"\."\}`}, + {"{{.}}", `yaml: invalid map key: map\[interface\ \{\}\]interface \{\}\{".":interface \{\}\(nil\)\}`}, + {"b: *a\na: &a {c: 1}", `yaml: unknown anchor 'a' referenced`}, + {"%TAG !%79! tag:yaml.org,2002:\n---\nv: !%79!int '1'", "yaml: did not find expected whitespace"}, +} + +func (s *S) TestUnmarshalErrors(c *C) { + for i, item := range unmarshalErrorTests { + c.Logf("test %d: %q", i, item.data) + var value interface{} + err := yaml.Unmarshal([]byte(item.data), &value) + c.Assert(err, ErrorMatches, item.error, Commentf("Partial unmarshal: %#v", value)) + } +} + +func (s *S) TestDecoderErrors(c *C) { + for _, item := range unmarshalErrorTests { + var value interface{} + err := yaml.NewDecoder(strings.NewReader(item.data)).Decode(&value) + c.Assert(err, ErrorMatches, item.error, Commentf("Partial unmarshal: %#v", value)) + } +} + +var unmarshalerTests = []struct { + data, tag string + value interface{} +}{ + {"_: {hi: there}", "!!map", map[interface{}]interface{}{"hi": "there"}}, + {"_: [1,A]", "!!seq", []interface{}{1, "A"}}, + {"_: 10", "!!int", 10}, + {"_: null", "!!null", nil}, + {`_: BAR!`, "!!str", "BAR!"}, + {`_: "BAR!"`, "!!str", "BAR!"}, + {"_: !!foo 'BAR!'", "!!foo", "BAR!"}, + {`_: ""`, "!!str", ""}, +} + +var unmarshalerResult = map[int]error{} + +type unmarshalerType struct { + value interface{} +} + +func (o *unmarshalerType) UnmarshalYAML(unmarshal func(v interface{}) error) error { + if err := unmarshal(&o.value); err != nil { + return err + } + if i, ok := o.value.(int); ok { + if result, ok := unmarshalerResult[i]; ok { + return result + } + } + return nil +} + +type unmarshalerPointer struct { + Field *unmarshalerType "_" +} + +type unmarshalerValue struct { + Field unmarshalerType "_" +} + +func (s *S) TestUnmarshalerPointerField(c *C) { + for _, item := range unmarshalerTests { + obj := &unmarshalerPointer{} + err := yaml.Unmarshal([]byte(item.data), obj) + c.Assert(err, IsNil) + if item.value == nil { + c.Assert(obj.Field, IsNil) + } else { + c.Assert(obj.Field, NotNil, Commentf("Pointer not initialized (%#v)", item.value)) + c.Assert(obj.Field.value, DeepEquals, item.value) + } + } +} + +func (s *S) TestUnmarshalerValueField(c *C) { + for _, item := range unmarshalerTests { + obj := &unmarshalerValue{} + err := yaml.Unmarshal([]byte(item.data), obj) + c.Assert(err, IsNil) + c.Assert(obj.Field, NotNil, Commentf("Pointer not initialized (%#v)", item.value)) + c.Assert(obj.Field.value, DeepEquals, item.value) + } +} + +func (s *S) TestUnmarshalerWholeDocument(c *C) { + obj := &unmarshalerType{} + err := yaml.Unmarshal([]byte(unmarshalerTests[0].data), obj) + c.Assert(err, IsNil) + value, ok := obj.value.(map[interface{}]interface{}) + c.Assert(ok, Equals, true, Commentf("value: %#v", obj.value)) + c.Assert(value["_"], DeepEquals, unmarshalerTests[0].value) +} + +func (s *S) TestUnmarshalerTypeError(c *C) { + unmarshalerResult[2] = &yaml.TypeError{[]string{"foo"}} + unmarshalerResult[4] = &yaml.TypeError{[]string{"bar"}} + defer func() { + delete(unmarshalerResult, 2) + delete(unmarshalerResult, 4) + }() + + type T struct { + Before int + After int + M map[string]*unmarshalerType + } + var v T + data := `{before: A, m: {abc: 1, def: 2, ghi: 3, jkl: 4}, after: B}` + err := yaml.Unmarshal([]byte(data), &v) + c.Assert(err, ErrorMatches, ""+ + "yaml: unmarshal errors:\n"+ + " line 1: cannot unmarshal !!str `A` into int\n"+ + " foo\n"+ + " bar\n"+ + " line 1: cannot unmarshal !!str `B` into int") + c.Assert(v.M["abc"], NotNil) + c.Assert(v.M["def"], IsNil) + c.Assert(v.M["ghi"], NotNil) + c.Assert(v.M["jkl"], IsNil) + + c.Assert(v.M["abc"].value, Equals, 1) + c.Assert(v.M["ghi"].value, Equals, 3) +} + +type proxyTypeError struct{} + +func (v *proxyTypeError) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + var a int32 + var b int64 + if err := unmarshal(&s); err != nil { + panic(err) + } + if s == "a" { + if err := unmarshal(&b); err == nil { + panic("should have failed") + } + return unmarshal(&a) + } + if err := unmarshal(&a); err == nil { + panic("should have failed") + } + return unmarshal(&b) +} + +func (s *S) TestUnmarshalerTypeErrorProxying(c *C) { + type T struct { + Before int + After int + M map[string]*proxyTypeError + } + var v T + data := `{before: A, m: {abc: a, def: b}, after: B}` + err := yaml.Unmarshal([]byte(data), &v) + c.Assert(err, ErrorMatches, ""+ + "yaml: unmarshal errors:\n"+ + " line 1: cannot unmarshal !!str `A` into int\n"+ + " line 1: cannot unmarshal !!str `a` into int32\n"+ + " line 1: cannot unmarshal !!str `b` into int64\n"+ + " line 1: cannot unmarshal !!str `B` into int") +} + +type failingUnmarshaler struct{} + +var failingErr = errors.New("failingErr") + +func (ft *failingUnmarshaler) UnmarshalYAML(unmarshal func(interface{}) error) error { + return failingErr +} + +func (s *S) TestUnmarshalerError(c *C) { + err := yaml.Unmarshal([]byte("a: b"), &failingUnmarshaler{}) + c.Assert(err, Equals, failingErr) +} + +type sliceUnmarshaler []int + +func (su *sliceUnmarshaler) UnmarshalYAML(unmarshal func(interface{}) error) error { + var slice []int + err := unmarshal(&slice) + if err == nil { + *su = slice + return nil + } + + var intVal int + err = unmarshal(&intVal) + if err == nil { + *su = []int{intVal} + return nil + } + + return err +} + +func (s *S) TestUnmarshalerRetry(c *C) { + var su sliceUnmarshaler + err := yaml.Unmarshal([]byte("[1, 2, 3]"), &su) + c.Assert(err, IsNil) + c.Assert(su, DeepEquals, sliceUnmarshaler([]int{1, 2, 3})) + + err = yaml.Unmarshal([]byte("1"), &su) + c.Assert(err, IsNil) + c.Assert(su, DeepEquals, sliceUnmarshaler([]int{1})) +} + +// From http://yaml.org/type/merge.html +var mergeTests = ` +anchors: + list: + - &CENTER { "x": 1, "y": 2 } + - &LEFT { "x": 0, "y": 2 } + - &BIG { "r": 10 } + - &SMALL { "r": 1 } + +# All the following maps are equal: + +plain: + # Explicit keys + "x": 1 + "y": 2 + "r": 10 + label: center/big + +mergeOne: + # Merge one map + << : *CENTER + "r": 10 + label: center/big + +mergeMultiple: + # Merge multiple maps + << : [ *CENTER, *BIG ] + label: center/big + +override: + # Override + << : [ *BIG, *LEFT, *SMALL ] + "x": 1 + label: center/big + +shortTag: + # Explicit short merge tag + !!merge "<<" : [ *CENTER, *BIG ] + label: center/big + +longTag: + # Explicit merge long tag + ! "<<" : [ *CENTER, *BIG ] + label: center/big + +inlineMap: + # Inlined map + << : {"x": 1, "y": 2, "r": 10} + label: center/big + +inlineSequenceMap: + # Inlined map in sequence + << : [ *CENTER, {"r": 10} ] + label: center/big +` + +func (s *S) TestMerge(c *C) { + var want = map[interface{}]interface{}{ + "x": 1, + "y": 2, + "r": 10, + "label": "center/big", + } + + var m map[interface{}]interface{} + err := yaml.Unmarshal([]byte(mergeTests), &m) + c.Assert(err, IsNil) + for name, test := range m { + if name == "anchors" { + continue + } + c.Assert(test, DeepEquals, want, Commentf("test %q failed", name)) + } +} + +func (s *S) TestMergeStruct(c *C) { + type Data struct { + X, Y, R int + Label string + } + want := Data{1, 2, 10, "center/big"} + + var m map[string]Data + err := yaml.Unmarshal([]byte(mergeTests), &m) + c.Assert(err, IsNil) + for name, test := range m { + if name == "anchors" { + continue + } + c.Assert(test, Equals, want, Commentf("test %q failed", name)) + } +} + +var unmarshalNullTests = []func() interface{}{ + func() interface{} { var v interface{}; v = "v"; return &v }, + func() interface{} { var s = "s"; return &s }, + func() interface{} { var s = "s"; sptr := &s; return &sptr }, + func() interface{} { var i = 1; return &i }, + func() interface{} { var i = 1; iptr := &i; return &iptr }, + func() interface{} { m := map[string]int{"s": 1}; return &m }, + func() interface{} { m := map[string]int{"s": 1}; return m }, +} + +func (s *S) TestUnmarshalNull(c *C) { + for _, test := range unmarshalNullTests { + item := test() + zero := reflect.Zero(reflect.TypeOf(item).Elem()).Interface() + err := yaml.Unmarshal([]byte("null"), item) + c.Assert(err, IsNil) + if reflect.TypeOf(item).Kind() == reflect.Map { + c.Assert(reflect.ValueOf(item).Interface(), DeepEquals, reflect.MakeMap(reflect.TypeOf(item)).Interface()) + } else { + c.Assert(reflect.ValueOf(item).Elem().Interface(), DeepEquals, zero) + } + } +} + +func (s *S) TestUnmarshalSliceOnPreset(c *C) { + // Issue #48. + v := struct{ A []int }{[]int{1}} + yaml.Unmarshal([]byte("a: [2]"), &v) + c.Assert(v.A, DeepEquals, []int{2}) +} + +var unmarshalStrictTests = []struct { + data string + value interface{} + error string +}{{ + data: "a: 1\nc: 2\n", + value: struct{ A, B int }{A: 1}, + error: `yaml: unmarshal errors:\n line 2: field c not found in type struct { A int; B int }`, +}, { + data: "a: 1\nb: 2\na: 3\n", + value: struct{ A, B int }{A: 3, B: 2}, + error: `yaml: unmarshal errors:\n line 3: field a already set in type struct { A int; B int }`, +}, { + data: "c: 3\na: 1\nb: 2\nc: 4\n", + value: struct { + A int + inlineB `yaml:",inline"` + }{ + A: 1, + inlineB: inlineB{ + B: 2, + inlineC: inlineC{ + C: 4, + }, + }, + }, + error: `yaml: unmarshal errors:\n line 4: field c already set in type struct { A int; yaml_test.inlineB "yaml:\\",inline\\"" }`, +}, { + data: "c: 0\na: 1\nb: 2\nc: 1\n", + value: struct { + A int + inlineB `yaml:",inline"` + }{ + A: 1, + inlineB: inlineB{ + B: 2, + inlineC: inlineC{ + C: 1, + }, + }, + }, + error: `yaml: unmarshal errors:\n line 4: field c already set in type struct { A int; yaml_test.inlineB "yaml:\\",inline\\"" }`, +}, { + data: "c: 1\na: 1\nb: 2\nc: 3\n", + value: struct { + A int + M map[string]interface{} `yaml:",inline"` + }{ + A: 1, + M: map[string]interface{}{ + "b": 2, + "c": 3, + }, + }, + error: `yaml: unmarshal errors:\n line 4: key "c" already set in map`, +}, { + data: "a: 1\n9: 2\nnull: 3\n9: 4", + value: map[interface{}]interface{}{ + "a": 1, + nil: 3, + 9: 4, + }, + error: `yaml: unmarshal errors:\n line 4: key 9 already set in map`, +}} + +func (s *S) TestUnmarshalStrict(c *C) { + for i, item := range unmarshalStrictTests { + c.Logf("test %d: %q", i, item.data) + // First test that normal Unmarshal unmarshals to the expected value. + t := reflect.ValueOf(item.value).Type() + value := reflect.New(t) + err := yaml.Unmarshal([]byte(item.data), value.Interface()) + c.Assert(err, Equals, nil) + c.Assert(value.Elem().Interface(), DeepEquals, item.value) + + // Then test that UnmarshalStrict fails on the same thing. + t = reflect.ValueOf(item.value).Type() + value = reflect.New(t) + err = yaml.UnmarshalStrict([]byte(item.data), value.Interface()) + c.Assert(err, ErrorMatches, item.error) + } +} + +type textUnmarshaler struct { + S string +} + +func (t *textUnmarshaler) UnmarshalText(s []byte) error { + t.S = string(s) + return nil +} + +func (s *S) TestFuzzCrashers(c *C) { + cases := []string{ + // runtime error: index out of range + "\"\\0\\\r\n", + + // should not happen + " 0: [\n] 0", + "? ? \"\n\" 0", + " - {\n000}0", + "0:\n 0: [0\n] 0", + " - \"\n000\"0", + " - \"\n000\"\"", + "0:\n - {\n000}0", + "0:\n - \"\n000\"0", + "0:\n - \"\n000\"\"", + + // runtime error: index out of range + " \ufeff\n", + "? \ufeff\n", + "? \ufeff:\n", + "0: \ufeff\n", + "? \ufeff: \ufeff\n", + } + for _, data := range cases { + var v interface{} + _ = yaml.Unmarshal([]byte(data), &v) + } +} + +//var data []byte +//func init() { +// var err error +// data, err = ioutil.ReadFile("/tmp/file.yaml") +// if err != nil { +// panic(err) +// } +//} +// +//func (s *S) BenchmarkUnmarshal(c *C) { +// var err error +// for i := 0; i < c.N; i++ { +// var v map[string]interface{} +// err = yaml.Unmarshal(data, &v) +// } +// if err != nil { +// panic(err) +// } +//} +// +//func (s *S) BenchmarkMarshal(c *C) { +// var v map[string]interface{} +// yaml.Unmarshal(data, &v) +// c.ResetTimer() +// for i := 0; i < c.N; i++ { +// yaml.Marshal(&v) +// } +//} diff --git a/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go new file mode 100644 index 0000000..a1c2cc5 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/emitterc.go @@ -0,0 +1,1685 @@ +package yaml + +import ( + "bytes" + "fmt" +) + +// Flush the buffer if needed. +func flush(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) { + return yaml_emitter_flush(emitter) + } + return true +} + +// Put a character to the output buffer. +func put(emitter *yaml_emitter_t, value byte) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + emitter.buffer[emitter.buffer_pos] = value + emitter.buffer_pos++ + emitter.column++ + return true +} + +// Put a line break to the output buffer. +func put_break(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + switch emitter.line_break { + case yaml_CR_BREAK: + emitter.buffer[emitter.buffer_pos] = '\r' + emitter.buffer_pos += 1 + case yaml_LN_BREAK: + emitter.buffer[emitter.buffer_pos] = '\n' + emitter.buffer_pos += 1 + case yaml_CRLN_BREAK: + emitter.buffer[emitter.buffer_pos+0] = '\r' + emitter.buffer[emitter.buffer_pos+1] = '\n' + emitter.buffer_pos += 2 + default: + panic("unknown line break setting") + } + emitter.column = 0 + emitter.line++ + return true +} + +// Copy a character from a string into buffer. +func write(emitter *yaml_emitter_t, s []byte, i *int) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + p := emitter.buffer_pos + w := width(s[*i]) + switch w { + case 4: + emitter.buffer[p+3] = s[*i+3] + fallthrough + case 3: + emitter.buffer[p+2] = s[*i+2] + fallthrough + case 2: + emitter.buffer[p+1] = s[*i+1] + fallthrough + case 1: + emitter.buffer[p+0] = s[*i+0] + default: + panic("unknown character width") + } + emitter.column++ + emitter.buffer_pos += w + *i += w + return true +} + +// Write a whole string into buffer. +func write_all(emitter *yaml_emitter_t, s []byte) bool { + for i := 0; i < len(s); { + if !write(emitter, s, &i) { + return false + } + } + return true +} + +// Copy a line break character from a string into buffer. +func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { + if s[*i] == '\n' { + if !put_break(emitter) { + return false + } + *i++ + } else { + if !write(emitter, s, i) { + return false + } + emitter.column = 0 + emitter.line++ + } + return true +} + +// Set an emitter error and return false. +func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_EMITTER_ERROR + emitter.problem = problem + return false +} + +// Emit an event. +func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.events = append(emitter.events, *event) + for !yaml_emitter_need_more_events(emitter) { + event := &emitter.events[emitter.events_head] + if !yaml_emitter_analyze_event(emitter, event) { + return false + } + if !yaml_emitter_state_machine(emitter, event) { + return false + } + yaml_event_delete(event) + emitter.events_head++ + } + return true +} + +// Check if we need to accumulate more events before emitting. +// +// We accumulate extra +// - 1 event for DOCUMENT-START +// - 2 events for SEQUENCE-START +// - 3 events for MAPPING-START +// +func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { + if emitter.events_head == len(emitter.events) { + return true + } + var accumulate int + switch emitter.events[emitter.events_head].typ { + case yaml_DOCUMENT_START_EVENT: + accumulate = 1 + break + case yaml_SEQUENCE_START_EVENT: + accumulate = 2 + break + case yaml_MAPPING_START_EVENT: + accumulate = 3 + break + default: + return false + } + if len(emitter.events)-emitter.events_head > accumulate { + return false + } + var level int + for i := emitter.events_head; i < len(emitter.events); i++ { + switch emitter.events[i].typ { + case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: + level++ + case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: + level-- + } + if level == 0 { + return false + } + } + return true +} + +// Append a directive to the directives stack. +func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { + for i := 0; i < len(emitter.tag_directives); i++ { + if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") + } + } + + // [Go] Do we actually need to copy this given garbage collection + // and the lack of deallocating destructors? + tag_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(tag_copy.handle, value.handle) + copy(tag_copy.prefix, value.prefix) + emitter.tag_directives = append(emitter.tag_directives, tag_copy) + return true +} + +// Increase the indentation level. +func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { + emitter.indents = append(emitter.indents, emitter.indent) + if emitter.indent < 0 { + if flow { + emitter.indent = emitter.best_indent + } else { + emitter.indent = 0 + } + } else if !indentless { + emitter.indent += emitter.best_indent + } + return true +} + +// State dispatcher. +func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { + switch emitter.state { + default: + case yaml_EMIT_STREAM_START_STATE: + return yaml_emitter_emit_stream_start(emitter, event) + + case yaml_EMIT_FIRST_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, true) + + case yaml_EMIT_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, false) + + case yaml_EMIT_DOCUMENT_CONTENT_STATE: + return yaml_emitter_emit_document_content(emitter, event) + + case yaml_EMIT_DOCUMENT_END_STATE: + return yaml_emitter_emit_document_end(emitter, event) + + case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, true) + + case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, false) + + case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, true) + + case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, false) + + case yaml_EMIT_END_STATE: + return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") + } + panic("invalid emitter state") +} + +// Expect STREAM-START. +func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_STREAM_START_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") + } + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = event.encoding + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = yaml_UTF8_ENCODING + } + } + if emitter.best_indent < 2 || emitter.best_indent > 9 { + emitter.best_indent = 2 + } + if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { + emitter.best_width = 80 + } + if emitter.best_width < 0 { + emitter.best_width = 1<<31 - 1 + } + if emitter.line_break == yaml_ANY_BREAK { + emitter.line_break = yaml_LN_BREAK + } + + emitter.indent = -1 + emitter.line = 0 + emitter.column = 0 + emitter.whitespace = true + emitter.indention = true + + if emitter.encoding != yaml_UTF8_ENCODING { + if !yaml_emitter_write_bom(emitter) { + return false + } + } + emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE + return true +} + +// Expect DOCUMENT-START or STREAM-END. +func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + + if event.typ == yaml_DOCUMENT_START_EVENT { + + if event.version_directive != nil { + if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { + return false + } + } + + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { + return false + } + if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { + return false + } + } + + for i := 0; i < len(default_tag_directives); i++ { + tag_directive := &default_tag_directives[i] + if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { + return false + } + } + + implicit := event.implicit + if !first || emitter.canonical { + implicit = false + } + + if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if event.version_directive != nil { + implicit = false + if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if len(event.tag_directives) > 0 { + implicit = false + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { + return false + } + if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + if yaml_emitter_check_empty_document(emitter) { + implicit = false + } + if !implicit { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { + return false + } + if emitter.canonical { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE + return true + } + + if event.typ == yaml_STREAM_END_EVENT { + if emitter.open_ended { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_END_STATE + return true + } + + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") +} + +// Expect the root node. +func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) + return yaml_emitter_emit_node(emitter, event, true, false, false, false) +} + +// Expect DOCUMENT-END. +func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_DOCUMENT_END_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !event.implicit { + // [Go] Allocate the slice elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_DOCUMENT_START_STATE + emitter.tag_directives = emitter.tag_directives[:0] + return true +} + +// Expect a flow item node. +func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a flow key node. +func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_MAPPING_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a flow value node. +func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block item node. +func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { + return false + } + } + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a block key node. +func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, false) { + return false + } + } + if event.typ == yaml_MAPPING_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block value node. +func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a node. +func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, + root bool, sequence bool, mapping bool, simple_key bool) bool { + + emitter.root_context = root + emitter.sequence_context = sequence + emitter.mapping_context = mapping + emitter.simple_key_context = simple_key + + switch event.typ { + case yaml_ALIAS_EVENT: + return yaml_emitter_emit_alias(emitter, event) + case yaml_SCALAR_EVENT: + return yaml_emitter_emit_scalar(emitter, event) + case yaml_SEQUENCE_START_EVENT: + return yaml_emitter_emit_sequence_start(emitter, event) + case yaml_MAPPING_START_EVENT: + return yaml_emitter_emit_mapping_start(emitter, event) + default: + return yaml_emitter_set_emitter_error(emitter, + fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ)) + } +} + +// Expect ALIAS. +func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SCALAR. +func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_select_scalar_style(emitter, event) { + return false + } + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + if !yaml_emitter_process_scalar(emitter) { + return false + } + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SEQUENCE-START. +func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || + yaml_emitter_check_empty_sequence(emitter) { + emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE + } + return true +} + +// Expect MAPPING-START. +func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || + yaml_emitter_check_empty_mapping(emitter) { + emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE + } + return true +} + +// Check if the document content is an empty scalar. +func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { + return false // [Go] Huh? +} + +// Check if the next events represent an empty sequence. +func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT +} + +// Check if the next events represent an empty mapping. +func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT +} + +// Check if the next node can be expressed as a simple key. +func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { + length := 0 + switch emitter.events[emitter.events_head].typ { + case yaml_ALIAS_EVENT: + length += len(emitter.anchor_data.anchor) + case yaml_SCALAR_EVENT: + if emitter.scalar_data.multiline { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + + len(emitter.scalar_data.value) + case yaml_SEQUENCE_START_EVENT: + if !yaml_emitter_check_empty_sequence(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + case yaml_MAPPING_START_EVENT: + if !yaml_emitter_check_empty_mapping(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + default: + return false + } + return length <= 128 +} + +// Determine an acceptable scalar style. +func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 + if no_tag && !event.implicit && !event.quoted_implicit { + return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") + } + + style := event.scalar_style() + if style == yaml_ANY_SCALAR_STYLE { + style = yaml_PLAIN_SCALAR_STYLE + } + if emitter.canonical { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + if emitter.simple_key_context && emitter.scalar_data.multiline { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + + if style == yaml_PLAIN_SCALAR_STYLE { + if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || + emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if no_tag && !event.implicit { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { + if !emitter.scalar_data.single_quoted_allowed { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { + if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + + if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { + emitter.tag_data.handle = []byte{'!'} + } + emitter.scalar_data.style = style + return true +} + +// Write an anchor. +func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { + if emitter.anchor_data.anchor == nil { + return true + } + c := []byte{'&'} + if emitter.anchor_data.alias { + c[0] = '*' + } + if !yaml_emitter_write_indicator(emitter, c, true, false, false) { + return false + } + return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) +} + +// Write a tag. +func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { + if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { + return true + } + if len(emitter.tag_data.handle) > 0 { + if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { + return false + } + if len(emitter.tag_data.suffix) > 0 { + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + } + } else { + // [Go] Allocate these slices elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { + return false + } + } + return true +} + +// Write a scalar. +func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { + switch emitter.scalar_data.style { + case yaml_PLAIN_SCALAR_STYLE: + return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_SINGLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_DOUBLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_LITERAL_SCALAR_STYLE: + return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) + + case yaml_FOLDED_SCALAR_STYLE: + return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) + } + panic("unknown scalar style") +} + +// Check if a %YAML directive is valid. +func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { + if version_directive.major != 1 || version_directive.minor != 1 { + return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") + } + return true +} + +// Check if a %TAG directive is valid. +func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { + handle := tag_directive.handle + prefix := tag_directive.prefix + if len(handle) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") + } + if handle[0] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") + } + if handle[len(handle)-1] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") + } + for i := 1; i < len(handle)-1; i += width(handle[i]) { + if !is_alpha(handle, i) { + return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") + } + } + if len(prefix) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") + } + return true +} + +// Check if an anchor is valid. +func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { + if len(anchor) == 0 { + problem := "anchor value must not be empty" + if alias { + problem = "alias value must not be empty" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + for i := 0; i < len(anchor); i += width(anchor[i]) { + if !is_alpha(anchor, i) { + problem := "anchor value must contain alphanumerical characters only" + if alias { + problem = "alias value must contain alphanumerical characters only" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + } + emitter.anchor_data.anchor = anchor + emitter.anchor_data.alias = alias + return true +} + +// Check if a tag is valid. +func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { + if len(tag) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") + } + for i := 0; i < len(emitter.tag_directives); i++ { + tag_directive := &emitter.tag_directives[i] + if bytes.HasPrefix(tag, tag_directive.prefix) { + emitter.tag_data.handle = tag_directive.handle + emitter.tag_data.suffix = tag[len(tag_directive.prefix):] + return true + } + } + emitter.tag_data.suffix = tag + return true +} + +// Check if a scalar is valid. +func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { + var ( + block_indicators = false + flow_indicators = false + line_breaks = false + special_characters = false + + leading_space = false + leading_break = false + trailing_space = false + trailing_break = false + break_space = false + space_break = false + + preceded_by_whitespace = false + followed_by_whitespace = false + previous_space = false + previous_break = false + ) + + emitter.scalar_data.value = value + + if len(value) == 0 { + emitter.scalar_data.multiline = false + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = false + return true + } + + if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { + block_indicators = true + flow_indicators = true + } + + preceded_by_whitespace = true + for i, w := 0, 0; i < len(value); i += w { + w = width(value[i]) + followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) + + if i == 0 { + switch value[i] { + case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': + flow_indicators = true + block_indicators = true + case '?', ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '-': + if followed_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } else { + switch value[i] { + case ',', '?', '[', ']', '{', '}': + flow_indicators = true + case ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '#': + if preceded_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } + + if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { + special_characters = true + } + if is_space(value, i) { + if i == 0 { + leading_space = true + } + if i+width(value[i]) == len(value) { + trailing_space = true + } + if previous_break { + break_space = true + } + previous_space = true + previous_break = false + } else if is_break(value, i) { + line_breaks = true + if i == 0 { + leading_break = true + } + if i+width(value[i]) == len(value) { + trailing_break = true + } + if previous_space { + space_break = true + } + previous_space = false + previous_break = true + } else { + previous_space = false + previous_break = false + } + + // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. + preceded_by_whitespace = is_blankz(value, i) + } + + emitter.scalar_data.multiline = line_breaks + emitter.scalar_data.flow_plain_allowed = true + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = true + + if leading_space || leading_break || trailing_space || trailing_break { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if trailing_space { + emitter.scalar_data.block_allowed = false + } + if break_space { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + } + if space_break || special_characters { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + emitter.scalar_data.block_allowed = false + } + if line_breaks { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if flow_indicators { + emitter.scalar_data.flow_plain_allowed = false + } + if block_indicators { + emitter.scalar_data.block_plain_allowed = false + } + return true +} + +// Check if the event data is valid. +func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + emitter.anchor_data.anchor = nil + emitter.tag_data.handle = nil + emitter.tag_data.suffix = nil + emitter.scalar_data.value = nil + + switch event.typ { + case yaml_ALIAS_EVENT: + if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { + return false + } + + case yaml_SCALAR_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + if !yaml_emitter_analyze_scalar(emitter, event.value) { + return false + } + + case yaml_SEQUENCE_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + + case yaml_MAPPING_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + } + return true +} + +// Write the BOM character. +func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { + if !flush(emitter) { + return false + } + pos := emitter.buffer_pos + emitter.buffer[pos+0] = '\xEF' + emitter.buffer[pos+1] = '\xBB' + emitter.buffer[pos+2] = '\xBF' + emitter.buffer_pos += 3 + return true +} + +func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { + indent := emitter.indent + if indent < 0 { + indent = 0 + } + if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { + if !put_break(emitter) { + return false + } + } + for emitter.column < indent { + if !put(emitter, ' ') { + return false + } + } + emitter.whitespace = true + emitter.indention = true + return true +} + +func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, indicator) { + return false + } + emitter.whitespace = is_whitespace + emitter.indention = (emitter.indention && is_indention) + emitter.open_ended = false + return true +} + +func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + for i := 0; i < len(value); { + var must_write bool + switch value[i] { + case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': + must_write = true + default: + must_write = is_alpha(value, i) + } + if must_write { + if !write(emitter, value, &i) { + return false + } + } else { + w := width(value[i]) + for k := 0; k < w; k++ { + octet := value[i] + i++ + if !put(emitter, '%') { + return false + } + + c := octet >> 4 + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + + c = octet & 0x0f + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + } + } + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + + emitter.whitespace = false + emitter.indention = false + if emitter.root_context { + emitter.open_ended = true + } + + return true +} + +func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { + return false + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if value[i] == '\'' { + if !put(emitter, '\'') { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + spaces := false + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { + return false + } + + for i := 0; i < len(value); { + if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || + is_bom(value, i) || is_break(value, i) || + value[i] == '"' || value[i] == '\\' { + + octet := value[i] + + var w int + var v rune + switch { + case octet&0x80 == 0x00: + w, v = 1, rune(octet&0x7F) + case octet&0xE0 == 0xC0: + w, v = 2, rune(octet&0x1F) + case octet&0xF0 == 0xE0: + w, v = 3, rune(octet&0x0F) + case octet&0xF8 == 0xF0: + w, v = 4, rune(octet&0x07) + } + for k := 1; k < w; k++ { + octet = value[i+k] + v = (v << 6) + (rune(octet) & 0x3F) + } + i += w + + if !put(emitter, '\\') { + return false + } + + var ok bool + switch v { + case 0x00: + ok = put(emitter, '0') + case 0x07: + ok = put(emitter, 'a') + case 0x08: + ok = put(emitter, 'b') + case 0x09: + ok = put(emitter, 't') + case 0x0A: + ok = put(emitter, 'n') + case 0x0b: + ok = put(emitter, 'v') + case 0x0c: + ok = put(emitter, 'f') + case 0x0d: + ok = put(emitter, 'r') + case 0x1b: + ok = put(emitter, 'e') + case 0x22: + ok = put(emitter, '"') + case 0x5c: + ok = put(emitter, '\\') + case 0x85: + ok = put(emitter, 'N') + case 0xA0: + ok = put(emitter, '_') + case 0x2028: + ok = put(emitter, 'L') + case 0x2029: + ok = put(emitter, 'P') + default: + if v <= 0xFF { + ok = put(emitter, 'x') + w = 2 + } else if v <= 0xFFFF { + ok = put(emitter, 'u') + w = 4 + } else { + ok = put(emitter, 'U') + w = 8 + } + for k := (w - 1) * 4; ok && k >= 0; k -= 4 { + digit := byte((v >> uint(k)) & 0x0F) + if digit < 10 { + ok = put(emitter, digit+'0') + } else { + ok = put(emitter, digit+'A'-10) + } + } + } + if !ok { + return false + } + spaces = false + } else if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { + if !yaml_emitter_write_indent(emitter) { + return false + } + if is_space(value, i+1) { + if !put(emitter, '\\') { + return false + } + } + i += width(value[i]) + } else if !write(emitter, value, &i) { + return false + } + spaces = true + } else { + if !write(emitter, value, &i) { + return false + } + spaces = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { + if is_space(value, 0) || is_break(value, 0) { + indent_hint := []byte{'0' + byte(emitter.best_indent)} + if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { + return false + } + } + + emitter.open_ended = false + + var chomp_hint [1]byte + if len(value) == 0 { + chomp_hint[0] = '-' + } else { + i := len(value) - 1 + for value[i]&0xC0 == 0x80 { + i-- + } + if !is_break(value, i) { + chomp_hint[0] = '-' + } else if i == 0 { + chomp_hint[0] = '+' + emitter.open_ended = true + } else { + i-- + for value[i]&0xC0 == 0x80 { + i-- + } + if is_break(value, i) { + chomp_hint[0] = '+' + emitter.open_ended = true + } + } + } + if chomp_hint[0] != 0 { + if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { + return false + } + } + return true +} + +func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + breaks := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + breaks = false + } + } + + return true +} + +func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + + breaks := true + leading_spaces := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !breaks && !leading_spaces && value[i] == '\n' { + k := 0 + for is_break(value, k) { + k += width(value[k]) + } + if !is_blankz(value, k) { + if !put_break(emitter) { + return false + } + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + leading_spaces = is_blank(value, i) + } + if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + emitter.indention = false + breaks = false + } + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go new file mode 100644 index 0000000..a14435e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/encode.go @@ -0,0 +1,362 @@ +package yaml + +import ( + "encoding" + "fmt" + "io" + "reflect" + "regexp" + "sort" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +type encoder struct { + emitter yaml_emitter_t + event yaml_event_t + out []byte + flow bool + // doneInit holds whether the initial stream_start_event has been + // emitted. + doneInit bool +} + +func newEncoder() *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_string(&e.emitter, &e.out) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func newEncoderWithWriter(w io.Writer) *encoder { + e := &encoder{} + yaml_emitter_initialize(&e.emitter) + yaml_emitter_set_output_writer(&e.emitter, w) + yaml_emitter_set_unicode(&e.emitter, true) + return e +} + +func (e *encoder) init() { + if e.doneInit { + return + } + yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING) + e.emit() + e.doneInit = true +} + +func (e *encoder) finish() { + e.emitter.open_ended = false + yaml_stream_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) destroy() { + yaml_emitter_delete(&e.emitter) +} + +func (e *encoder) emit() { + // This will internally delete the e.event value. + e.must(yaml_emitter_emit(&e.emitter, &e.event)) +} + +func (e *encoder) must(ok bool) { + if !ok { + msg := e.emitter.problem + if msg == "" { + msg = "unknown problem generating YAML content" + } + failf("%s", msg) + } +} + +func (e *encoder) marshalDoc(tag string, in reflect.Value) { + e.init() + yaml_document_start_event_initialize(&e.event, nil, nil, true) + e.emit() + e.marshal(tag, in) + yaml_document_end_event_initialize(&e.event, true) + e.emit() +} + +func (e *encoder) marshal(tag string, in reflect.Value) { + if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() { + e.nilv() + return + } + iface := in.Interface() + switch m := iface.(type) { + case time.Time, *time.Time: + // Although time.Time implements TextMarshaler, + // we don't want to treat it as a string for YAML + // purposes because YAML has special support for + // timestamps. + case Marshaler: + v, err := m.MarshalYAML() + if err != nil { + fail(err) + } + if v == nil { + e.nilv() + return + } + in = reflect.ValueOf(v) + case encoding.TextMarshaler: + text, err := m.MarshalText() + if err != nil { + fail(err) + } + in = reflect.ValueOf(string(text)) + case nil: + e.nilv() + return + } + switch in.Kind() { + case reflect.Interface: + e.marshal(tag, in.Elem()) + case reflect.Map: + e.mapv(tag, in) + case reflect.Ptr: + if in.Type() == ptrTimeType { + e.timev(tag, in.Elem()) + } else { + e.marshal(tag, in.Elem()) + } + case reflect.Struct: + if in.Type() == timeType { + e.timev(tag, in) + } else { + e.structv(tag, in) + } + case reflect.Slice, reflect.Array: + if in.Type().Elem() == mapItemType { + e.itemsv(tag, in) + } else { + e.slicev(tag, in) + } + case reflect.String: + e.stringv(tag, in) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if in.Type() == durationType { + e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) + } else { + e.intv(tag, in) + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + e.uintv(tag, in) + case reflect.Float32, reflect.Float64: + e.floatv(tag, in) + case reflect.Bool: + e.boolv(tag, in) + default: + panic("cannot marshal type: " + in.Type().String()) + } +} + +func (e *encoder) mapv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + keys := keyList(in.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + e.marshal("", k) + e.marshal("", in.MapIndex(k)) + } + }) +} + +func (e *encoder) itemsv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) + for _, item := range slice { + e.marshal("", reflect.ValueOf(item.Key)) + e.marshal("", reflect.ValueOf(item.Value)) + } + }) +} + +func (e *encoder) structv(tag string, in reflect.Value) { + sinfo, err := getStructInfo(in.Type()) + if err != nil { + panic(err) + } + e.mappingv(tag, func() { + for _, info := range sinfo.FieldsList { + var value reflect.Value + if info.Inline == nil { + value = in.Field(info.Num) + } else { + value = in.FieldByIndex(info.Inline) + } + if info.OmitEmpty && isZero(value) { + continue + } + e.marshal("", reflect.ValueOf(info.Key)) + e.flow = info.Flow + e.marshal("", value) + } + if sinfo.InlineMap >= 0 { + m := in.Field(sinfo.InlineMap) + if m.Len() > 0 { + e.flow = false + keys := keyList(m.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + if _, found := sinfo.FieldsMap[k.String()]; found { + panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) + } + e.marshal("", k) + e.flow = false + e.marshal("", m.MapIndex(k)) + } + } + } + }) +} + +func (e *encoder) mappingv(tag string, f func()) { + implicit := tag == "" + style := yaml_BLOCK_MAPPING_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_MAPPING_STYLE + } + yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style) + e.emit() + f() + yaml_mapping_end_event_initialize(&e.event) + e.emit() +} + +func (e *encoder) slicev(tag string, in reflect.Value) { + implicit := tag == "" + style := yaml_BLOCK_SEQUENCE_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_SEQUENCE_STYLE + } + e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) + e.emit() + n := in.Len() + for i := 0; i < n; i++ { + e.marshal("", in.Index(i)) + } + e.must(yaml_sequence_end_event_initialize(&e.event)) + e.emit() +} + +// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. +// +// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported +// in YAML 1.2 and by this package, but these should be marshalled quoted for +// the time being for compatibility with other parsers. +func isBase60Float(s string) (result bool) { + // Fast path. + if s == "" { + return false + } + c := s[0] + if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { + return false + } + // Do the full match. + return base60float.MatchString(s) +} + +// From http://yaml.org/type/float.html, except the regular expression there +// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. +var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) + +func (e *encoder) stringv(tag string, in reflect.Value) { + var style yaml_scalar_style_t + s := in.String() + canUsePlain := true + switch { + case !utf8.ValidString(s): + if tag == yaml_BINARY_TAG { + failf("explicitly tagged !!binary data must be base64-encoded") + } + if tag != "" { + failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) + } + // It can't be encoded directly as YAML so use a binary tag + // and encode it as base64. + tag = yaml_BINARY_TAG + s = encodeBase64(s) + case tag == "": + // Check to see if it would resolve to a specific + // tag when encoded unquoted. If it doesn't, + // there's no need to quote it. + rtag, _ := resolve("", s) + canUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s) + } + // Note: it's possible for user code to emit invalid YAML + // if they explicitly specify a tag and a string containing + // text that's incompatible with that tag. + switch { + case strings.Contains(s, "\n"): + style = yaml_LITERAL_SCALAR_STYLE + case canUsePlain: + style = yaml_PLAIN_SCALAR_STYLE + default: + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + e.emitScalar(s, "", tag, style) +} + +func (e *encoder) boolv(tag string, in reflect.Value) { + var s string + if in.Bool() { + s = "true" + } else { + s = "false" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) intv(tag string, in reflect.Value) { + s := strconv.FormatInt(in.Int(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) uintv(tag string, in reflect.Value) { + s := strconv.FormatUint(in.Uint(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) timev(tag string, in reflect.Value) { + t := in.Interface().(time.Time) + s := t.Format(time.RFC3339Nano) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) floatv(tag string, in reflect.Value) { + // Issue #352: When formatting, use the precision of the underlying value + precision := 64 + if in.Kind() == reflect.Float32 { + precision = 32 + } + + s := strconv.FormatFloat(in.Float(), 'g', -1, precision) + switch s { + case "+Inf": + s = ".inf" + case "-Inf": + s = "-.inf" + case "NaN": + s = ".nan" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) nilv() { + e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { + implicit := tag == "" + e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) + e.emit() +} diff --git a/vendor/gopkg.in/yaml.v2/encode_test.go b/vendor/gopkg.in/yaml.v2/encode_test.go new file mode 100644 index 0000000..f0911a7 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/encode_test.go @@ -0,0 +1,595 @@ +package yaml_test + +import ( + "bytes" + "fmt" + "math" + "strconv" + "strings" + "time" + + "net" + "os" + + . "gopkg.in/check.v1" + "gopkg.in/yaml.v2" +) + +var marshalIntTest = 123 + +var marshalTests = []struct { + value interface{} + data string +}{ + { + nil, + "null\n", + }, { + (*marshalerType)(nil), + "null\n", + }, { + &struct{}{}, + "{}\n", + }, { + map[string]string{"v": "hi"}, + "v: hi\n", + }, { + map[string]interface{}{"v": "hi"}, + "v: hi\n", + }, { + map[string]string{"v": "true"}, + "v: \"true\"\n", + }, { + map[string]string{"v": "false"}, + "v: \"false\"\n", + }, { + map[string]interface{}{"v": true}, + "v: true\n", + }, { + map[string]interface{}{"v": false}, + "v: false\n", + }, { + map[string]interface{}{"v": 10}, + "v: 10\n", + }, { + map[string]interface{}{"v": -10}, + "v: -10\n", + }, { + map[string]uint{"v": 42}, + "v: 42\n", + }, { + map[string]interface{}{"v": int64(4294967296)}, + "v: 4294967296\n", + }, { + map[string]int64{"v": int64(4294967296)}, + "v: 4294967296\n", + }, { + map[string]uint64{"v": 4294967296}, + "v: 4294967296\n", + }, { + map[string]interface{}{"v": "10"}, + "v: \"10\"\n", + }, { + map[string]interface{}{"v": 0.1}, + "v: 0.1\n", + }, { + map[string]interface{}{"v": float64(0.1)}, + "v: 0.1\n", + }, { + map[string]interface{}{"v": float32(0.99)}, + "v: 0.99\n", + }, { + map[string]interface{}{"v": -0.1}, + "v: -0.1\n", + }, { + map[string]interface{}{"v": math.Inf(+1)}, + "v: .inf\n", + }, { + map[string]interface{}{"v": math.Inf(-1)}, + "v: -.inf\n", + }, { + map[string]interface{}{"v": math.NaN()}, + "v: .nan\n", + }, { + map[string]interface{}{"v": nil}, + "v: null\n", + }, { + map[string]interface{}{"v": ""}, + "v: \"\"\n", + }, { + map[string][]string{"v": []string{"A", "B"}}, + "v:\n- A\n- B\n", + }, { + map[string][]string{"v": []string{"A", "B\nC"}}, + "v:\n- A\n- |-\n B\n C\n", + }, { + map[string][]interface{}{"v": []interface{}{"A", 1, map[string][]int{"B": []int{2, 3}}}}, + "v:\n- A\n- 1\n- B:\n - 2\n - 3\n", + }, { + map[string]interface{}{"a": map[interface{}]interface{}{"b": "c"}}, + "a:\n b: c\n", + }, { + map[string]interface{}{"a": "-"}, + "a: '-'\n", + }, + + // Simple values. + { + &marshalIntTest, + "123\n", + }, + + // Structures + { + &struct{ Hello string }{"world"}, + "hello: world\n", + }, { + &struct { + A struct { + B string + } + }{struct{ B string }{"c"}}, + "a:\n b: c\n", + }, { + &struct { + A *struct { + B string + } + }{&struct{ B string }{"c"}}, + "a:\n b: c\n", + }, { + &struct { + A *struct { + B string + } + }{}, + "a: null\n", + }, { + &struct{ A int }{1}, + "a: 1\n", + }, { + &struct{ A []int }{[]int{1, 2}}, + "a:\n- 1\n- 2\n", + }, { + &struct{ A [2]int }{[2]int{1, 2}}, + "a:\n- 1\n- 2\n", + }, { + &struct { + B int "a" + }{1}, + "a: 1\n", + }, { + &struct{ A bool }{true}, + "a: true\n", + }, + + // Conditional flag + { + &struct { + A int "a,omitempty" + B int "b,omitempty" + }{1, 0}, + "a: 1\n", + }, { + &struct { + A int "a,omitempty" + B int "b,omitempty" + }{0, 0}, + "{}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{&struct{ X, y int }{1, 2}}, + "a: {x: 1}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{nil}, + "{}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{&struct{ X, y int }{}}, + "a: {x: 0}\n", + }, { + &struct { + A struct{ X, y int } "a,omitempty,flow" + }{struct{ X, y int }{1, 2}}, + "a: {x: 1}\n", + }, { + &struct { + A struct{ X, y int } "a,omitempty,flow" + }{struct{ X, y int }{0, 1}}, + "{}\n", + }, { + &struct { + A float64 "a,omitempty" + B float64 "b,omitempty" + }{1, 0}, + "a: 1\n", + }, + { + &struct { + T1 time.Time "t1,omitempty" + T2 time.Time "t2,omitempty" + T3 *time.Time "t3,omitempty" + T4 *time.Time "t4,omitempty" + }{ + T2: time.Date(2018, 1, 9, 10, 40, 47, 0, time.UTC), + T4: newTime(time.Date(2098, 1, 9, 10, 40, 47, 0, time.UTC)), + }, + "t2: 2018-01-09T10:40:47Z\nt4: 2098-01-09T10:40:47Z\n", + }, + // Nil interface that implements Marshaler. + { + map[string]yaml.Marshaler{ + "a": nil, + }, + "a: null\n", + }, + + // Flow flag + { + &struct { + A []int "a,flow" + }{[]int{1, 2}}, + "a: [1, 2]\n", + }, { + &struct { + A map[string]string "a,flow" + }{map[string]string{"b": "c", "d": "e"}}, + "a: {b: c, d: e}\n", + }, { + &struct { + A struct { + B, D string + } "a,flow" + }{struct{ B, D string }{"c", "e"}}, + "a: {b: c, d: e}\n", + }, + + // Unexported field + { + &struct { + u int + A int + }{0, 1}, + "a: 1\n", + }, + + // Ignored field + { + &struct { + A int + B int "-" + }{1, 2}, + "a: 1\n", + }, + + // Struct inlining + { + &struct { + A int + C inlineB `yaml:",inline"` + }{1, inlineB{2, inlineC{3}}}, + "a: 1\nb: 2\nc: 3\n", + }, + + // Map inlining + { + &struct { + A int + C map[string]int `yaml:",inline"` + }{1, map[string]int{"b": 2, "c": 3}}, + "a: 1\nb: 2\nc: 3\n", + }, + + // Duration + { + map[string]time.Duration{"a": 3 * time.Second}, + "a: 3s\n", + }, + + // Issue #24: bug in map merging logic. + { + map[string]string{"a": ""}, + "a: \n", + }, + + // Issue #34: marshal unsupported base 60 floats quoted for compatibility + // with old YAML 1.1 parsers. + { + map[string]string{"a": "1:1"}, + "a: \"1:1\"\n", + }, + + // Binary data. + { + map[string]string{"a": "\x00"}, + "a: \"\\0\"\n", + }, { + map[string]string{"a": "\x80\x81\x82"}, + "a: !!binary gIGC\n", + }, { + map[string]string{"a": strings.Repeat("\x90", 54)}, + "a: !!binary |\n " + strings.Repeat("kJCQ", 17) + "kJ\n CQ\n", + }, + + // Ordered maps. + { + &yaml.MapSlice{{"b", 2}, {"a", 1}, {"d", 4}, {"c", 3}, {"sub", yaml.MapSlice{{"e", 5}}}}, + "b: 2\na: 1\nd: 4\nc: 3\nsub:\n e: 5\n", + }, + + // Encode unicode as utf-8 rather than in escaped form. + { + map[string]string{"a": "你好"}, + "a: 你好\n", + }, + + // Support encoding.TextMarshaler. + { + map[string]net.IP{"a": net.IPv4(1, 2, 3, 4)}, + "a: 1.2.3.4\n", + }, + // time.Time gets a timestamp tag. + { + map[string]time.Time{"a": time.Date(2015, 2, 24, 18, 19, 39, 0, time.UTC)}, + "a: 2015-02-24T18:19:39Z\n", + }, + { + map[string]*time.Time{"a": newTime(time.Date(2015, 2, 24, 18, 19, 39, 0, time.UTC))}, + "a: 2015-02-24T18:19:39Z\n", + }, + { + // This is confirmed to be properly decoded in Python (libyaml) without a timestamp tag. + map[string]time.Time{"a": time.Date(2015, 2, 24, 18, 19, 39, 123456789, time.FixedZone("FOO", -3*60*60))}, + "a: 2015-02-24T18:19:39.123456789-03:00\n", + }, + // Ensure timestamp-like strings are quoted. + { + map[string]string{"a": "2015-02-24T18:19:39Z"}, + "a: \"2015-02-24T18:19:39Z\"\n", + }, + + // Ensure strings containing ": " are quoted (reported as PR #43, but not reproducible). + { + map[string]string{"a": "b: c"}, + "a: 'b: c'\n", + }, + + // Containing hash mark ('#') in string should be quoted + { + map[string]string{"a": "Hello #comment"}, + "a: 'Hello #comment'\n", + }, + { + map[string]string{"a": "你好 #comment"}, + "a: '你好 #comment'\n", + }, +} + +func (s *S) TestMarshal(c *C) { + defer os.Setenv("TZ", os.Getenv("TZ")) + os.Setenv("TZ", "UTC") + for i, item := range marshalTests { + c.Logf("test %d: %q", i, item.data) + data, err := yaml.Marshal(item.value) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, item.data) + } +} + +func (s *S) TestEncoderSingleDocument(c *C) { + for i, item := range marshalTests { + c.Logf("test %d. %q", i, item.data) + var buf bytes.Buffer + enc := yaml.NewEncoder(&buf) + err := enc.Encode(item.value) + c.Assert(err, Equals, nil) + err = enc.Close() + c.Assert(err, Equals, nil) + c.Assert(buf.String(), Equals, item.data) + } +} + +func (s *S) TestEncoderMultipleDocuments(c *C) { + var buf bytes.Buffer + enc := yaml.NewEncoder(&buf) + err := enc.Encode(map[string]string{"a": "b"}) + c.Assert(err, Equals, nil) + err = enc.Encode(map[string]string{"c": "d"}) + c.Assert(err, Equals, nil) + err = enc.Close() + c.Assert(err, Equals, nil) + c.Assert(buf.String(), Equals, "a: b\n---\nc: d\n") +} + +func (s *S) TestEncoderWriteError(c *C) { + enc := yaml.NewEncoder(errorWriter{}) + err := enc.Encode(map[string]string{"a": "b"}) + c.Assert(err, ErrorMatches, `yaml: write error: some write error`) // Data not flushed yet +} + +type errorWriter struct{} + +func (errorWriter) Write([]byte) (int, error) { + return 0, fmt.Errorf("some write error") +} + +var marshalErrorTests = []struct { + value interface{} + error string + panic string +}{{ + value: &struct { + B int + inlineB ",inline" + }{1, inlineB{2, inlineC{3}}}, + panic: `Duplicated key 'b' in struct struct \{ B int; .*`, +}, { + value: &struct { + A int + B map[string]int ",inline" + }{1, map[string]int{"a": 2}}, + panic: `Can't have key "a" in inlined map; conflicts with struct field`, +}} + +func (s *S) TestMarshalErrors(c *C) { + for _, item := range marshalErrorTests { + if item.panic != "" { + c.Assert(func() { yaml.Marshal(item.value) }, PanicMatches, item.panic) + } else { + _, err := yaml.Marshal(item.value) + c.Assert(err, ErrorMatches, item.error) + } + } +} + +func (s *S) TestMarshalTypeCache(c *C) { + var data []byte + var err error + func() { + type T struct{ A int } + data, err = yaml.Marshal(&T{}) + c.Assert(err, IsNil) + }() + func() { + type T struct{ B int } + data, err = yaml.Marshal(&T{}) + c.Assert(err, IsNil) + }() + c.Assert(string(data), Equals, "b: 0\n") +} + +var marshalerTests = []struct { + data string + value interface{} +}{ + {"_:\n hi: there\n", map[interface{}]interface{}{"hi": "there"}}, + {"_:\n- 1\n- A\n", []interface{}{1, "A"}}, + {"_: 10\n", 10}, + {"_: null\n", nil}, + {"_: BAR!\n", "BAR!"}, +} + +type marshalerType struct { + value interface{} +} + +func (o marshalerType) MarshalText() ([]byte, error) { + panic("MarshalText called on type with MarshalYAML") +} + +func (o marshalerType) MarshalYAML() (interface{}, error) { + return o.value, nil +} + +type marshalerValue struct { + Field marshalerType "_" +} + +func (s *S) TestMarshaler(c *C) { + for _, item := range marshalerTests { + obj := &marshalerValue{} + obj.Field.value = item.value + data, err := yaml.Marshal(obj) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, string(item.data)) + } +} + +func (s *S) TestMarshalerWholeDocument(c *C) { + obj := &marshalerType{} + obj.value = map[string]string{"hello": "world!"} + data, err := yaml.Marshal(obj) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, "hello: world!\n") +} + +type failingMarshaler struct{} + +func (ft *failingMarshaler) MarshalYAML() (interface{}, error) { + return nil, failingErr +} + +func (s *S) TestMarshalerError(c *C) { + _, err := yaml.Marshal(&failingMarshaler{}) + c.Assert(err, Equals, failingErr) +} + +func (s *S) TestSortedOutput(c *C) { + order := []interface{}{ + false, + true, + 1, + uint(1), + 1.0, + 1.1, + 1.2, + 2, + uint(2), + 2.0, + 2.1, + "", + ".1", + ".2", + ".a", + "1", + "2", + "a!10", + "a/0001", + "a/002", + "a/3", + "a/10", + "a/11", + "a/0012", + "a/100", + "a~10", + "ab/1", + "b/1", + "b/01", + "b/2", + "b/02", + "b/3", + "b/03", + "b1", + "b01", + "b3", + "c2.10", + "c10.2", + "d1", + "d7", + "d7abc", + "d12", + "d12a", + } + m := make(map[interface{}]int) + for _, k := range order { + m[k] = 1 + } + data, err := yaml.Marshal(m) + c.Assert(err, IsNil) + out := "\n" + string(data) + last := 0 + for i, k := range order { + repr := fmt.Sprint(k) + if s, ok := k.(string); ok { + if _, err = strconv.ParseFloat(repr, 32); s == "" || err == nil { + repr = `"` + repr + `"` + } + } + index := strings.Index(out, "\n"+repr+":") + if index == -1 { + c.Fatalf("%#v is not in the output: %#v", k, out) + } + if index < last { + c.Fatalf("%#v was generated before %#v: %q", k, order[i-1], out) + } + last = index + } +} + +func newTime(t time.Time) *time.Time { + return &t +} diff --git a/vendor/gopkg.in/yaml.v2/example_embedded_test.go b/vendor/gopkg.in/yaml.v2/example_embedded_test.go new file mode 100644 index 0000000..171c093 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/example_embedded_test.go @@ -0,0 +1,41 @@ +package yaml_test + +import ( + "fmt" + "log" + + "gopkg.in/yaml.v2" +) + +// An example showing how to unmarshal embedded +// structs from YAML. + +type StructA struct { + A string `yaml:"a"` +} + +type StructB struct { + // Embedded structs are not treated as embedded in YAML by default. To do that, + // add the ",inline" annotation below + StructA `yaml:",inline"` + B string `yaml:"b"` +} + +var data = ` +a: a string from struct A +b: a string from struct B +` + +func ExampleUnmarshal_embedded() { + var b StructB + + err := yaml.Unmarshal([]byte(data), &b) + if err != nil { + log.Fatalf("cannot unmarshal data: %v", err) + } + fmt.Println(b.A) + fmt.Println(b.B) + // Output: + // a string from struct A + // a string from struct B +} diff --git a/vendor/gopkg.in/yaml.v2/go.mod b/vendor/gopkg.in/yaml.v2/go.mod new file mode 100644 index 0000000..1934e87 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/go.mod @@ -0,0 +1,5 @@ +module "gopkg.in/yaml.v2" + +require ( + "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405 +) diff --git a/vendor/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go new file mode 100644 index 0000000..81d05df --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/parserc.go @@ -0,0 +1,1095 @@ +package yaml + +import ( + "bytes" +) + +// The parser implements the following grammar: +// +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// implicit_document ::= block_node DOCUMENT-END* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// block_node_or_indentless_sequence ::= +// ALIAS +// | properties (block_content | indentless_block_sequence)? +// | block_content +// | indentless_block_sequence +// block_node ::= ALIAS +// | properties block_content? +// | block_content +// flow_node ::= ALIAS +// | properties flow_content? +// | flow_content +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// block_content ::= block_collection | flow_collection | SCALAR +// flow_content ::= flow_collection | SCALAR +// block_collection ::= block_sequence | block_mapping +// flow_collection ::= flow_sequence | flow_mapping +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// block_mapping ::= BLOCK-MAPPING_START +// ((KEY block_node_or_indentless_sequence?)? +// (VALUE block_node_or_indentless_sequence?)?)* +// BLOCK-END +// flow_sequence ::= FLOW-SEQUENCE-START +// (flow_sequence_entry FLOW-ENTRY)* +// flow_sequence_entry? +// FLOW-SEQUENCE-END +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// flow_mapping ::= FLOW-MAPPING-START +// (flow_mapping_entry FLOW-ENTRY)* +// flow_mapping_entry? +// FLOW-MAPPING-END +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + +// Peek the next token in the token queue. +func peek_token(parser *yaml_parser_t) *yaml_token_t { + if parser.token_available || yaml_parser_fetch_more_tokens(parser) { + return &parser.tokens[parser.tokens_head] + } + return nil +} + +// Remove the next token from the queue (must be called after peek_token). +func skip_token(parser *yaml_parser_t) { + parser.token_available = false + parser.tokens_parsed++ + parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN + parser.tokens_head++ +} + +// Get the next event. +func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { + // Erase the event object. + *event = yaml_event_t{} + + // No events after the end of the stream or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { + return true + } + + // Generate the next event. + return yaml_parser_state_machine(parser, event) +} + +// Set parser error. +func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +// State dispatcher. +func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { + //trace("yaml_parser_state_machine", "state:", parser.state.String()) + + switch parser.state { + case yaml_PARSE_STREAM_START_STATE: + return yaml_parser_parse_stream_start(parser, event) + + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, true) + + case yaml_PARSE_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, false) + + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return yaml_parser_parse_document_content(parser, event) + + case yaml_PARSE_DOCUMENT_END_STATE: + return yaml_parser_parse_document_end(parser, event) + + case yaml_PARSE_BLOCK_NODE_STATE: + return yaml_parser_parse_node(parser, event, true, false) + + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return yaml_parser_parse_node(parser, event, true, true) + + case yaml_PARSE_FLOW_NODE_STATE: + return yaml_parser_parse_node(parser, event, false, false) + + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, true) + + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, false) + + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_indentless_sequence_entry(parser, event) + + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, true) + + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, false) + + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return yaml_parser_parse_block_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, true) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, false) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) + + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, true) + + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, true) + + default: + panic("invalid parser state") + } +} + +// Parse the production: +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// ************ +func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_STREAM_START_TOKEN { + return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) + } + parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + encoding: token.encoding, + } + skip_token(parser) + return true +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// * +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// ************************* +func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { + + token := peek_token(parser) + if token == nil { + return false + } + + // Parse extra document end indicators. + if !implicit { + for token.typ == yaml_DOCUMENT_END_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && + token.typ != yaml_TAG_DIRECTIVE_TOKEN && + token.typ != yaml_DOCUMENT_START_TOKEN && + token.typ != yaml_STREAM_END_TOKEN { + // Parse an implicit document. + if !yaml_parser_process_directives(parser, nil, nil) { + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_BLOCK_NODE_STATE + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + } else if token.typ != yaml_STREAM_END_TOKEN { + // Parse an explicit document. + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + start_mark := token.start_mark + if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { + return false + } + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_DOCUMENT_START_TOKEN { + yaml_parser_set_parser_error(parser, + "did not find expected ", token.start_mark) + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE + end_mark := token.end_mark + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: false, + } + skip_token(parser) + + } else { + // Parse the stream end. + parser.state = yaml_PARSE_END_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + } + + return true +} + +// Parse the productions: +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// *********** +// +func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || + token.typ == yaml_TAG_DIRECTIVE_TOKEN || + token.typ == yaml_DOCUMENT_START_TOKEN || + token.typ == yaml_DOCUMENT_END_TOKEN || + token.typ == yaml_STREAM_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + return yaml_parser_process_empty_scalar(parser, event, + token.start_mark) + } + return yaml_parser_parse_node(parser, event, true, false) +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// ************* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// +func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + start_mark := token.start_mark + end_mark := token.start_mark + + implicit := true + if token.typ == yaml_DOCUMENT_END_TOKEN { + end_mark = token.end_mark + skip_token(parser) + implicit = false + } + + parser.tag_directives = parser.tag_directives[:0] + + parser.state = yaml_PARSE_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + start_mark: start_mark, + end_mark: end_mark, + implicit: implicit, + } + return true +} + +// Parse the productions: +// block_node_or_indentless_sequence ::= +// ALIAS +// ***** +// | properties (block_content | indentless_block_sequence)? +// ********** * +// | block_content | indentless_block_sequence +// * +// block_node ::= ALIAS +// ***** +// | properties block_content? +// ********** * +// | block_content +// * +// flow_node ::= ALIAS +// ***** +// | properties flow_content? +// ********** * +// | flow_content +// * +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// ************************* +// block_content ::= block_collection | flow_collection | SCALAR +// ****** +// flow_content ::= flow_collection | SCALAR +// ****** +func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { + //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_ALIAS_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + *event = yaml_event_t{ + typ: yaml_ALIAS_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + anchor: token.value, + } + skip_token(parser) + return true + } + + start_mark := token.start_mark + end_mark := token.start_mark + + var tag_token bool + var tag_handle, tag_suffix, anchor []byte + var tag_mark yaml_mark_t + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + start_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } else if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + start_mark = token.start_mark + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + var tag []byte + if tag_token { + if len(tag_handle) == 0 { + tag = tag_suffix + tag_suffix = nil + } else { + for i := range parser.tag_directives { + if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { + tag = append([]byte(nil), parser.tag_directives[i].prefix...) + tag = append(tag, tag_suffix...) + break + } + } + if len(tag) == 0 { + yaml_parser_set_parser_error_context(parser, + "while parsing a node", start_mark, + "found undefined tag handle", tag_mark) + return false + } + } + } + + implicit := len(tag) == 0 + if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_SCALAR_TOKEN { + var plain_implicit, quoted_implicit bool + end_mark = token.end_mark + if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { + plain_implicit = true + } else if len(tag) == 0 { + quoted_implicit = true + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + value: token.value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(token.style), + } + skip_token(parser) + return true + } + if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { + // [Go] Some of the events below can be merged as they differ only on style. + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_FLOW_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), + } + return true + } + if len(anchor) > 0 || len(tag) > 0 { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + quoted_implicit: false, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true + } + + context := "while parsing a flow node" + if block { + context = "while parsing a block node" + } + yaml_parser_set_parser_error_context(parser, context, start_mark, + "did not find expected node content", token.start_mark) + return false +} + +// Parse the productions: +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// ******************** *********** * ********* +// +func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } else { + parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } + if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block collection", context_mark, + "did not find expected '-' indicator", token.start_mark) +} + +// Parse the productions: +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// *********** * +func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && + token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? + } + return true +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// ******************* +// ((KEY block_node_or_indentless_sequence?)? +// *** * +// (VALUE block_node_or_indentless_sequence?)?)* +// +// BLOCK-END +// ********* +// +func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_KEY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } else { + parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } else if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block mapping", context_mark, + "did not find expected key", token.start_mark) +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// +// ((KEY block_node_or_indentless_sequence?)? +// +// (VALUE block_node_or_indentless_sequence?)?)* +// ***** * +// BLOCK-END +// +// +func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence ::= FLOW-SEQUENCE-START +// ******************* +// (flow_sequence_entry FLOW-ENTRY)* +// * ********** +// flow_sequence_entry? +// * +// FLOW-SEQUENCE-END +// ***************** +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow sequence", context_mark, + "did not find expected ',' or ']'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + implicit: true, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + skip_token(parser) + return true + } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true +} + +// +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// *** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + mark := token.end_mark + skip_token(parser) + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// ***** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? + } + return true +} + +// Parse the productions: +// flow_mapping ::= FLOW-MAPPING-START +// ****************** +// (flow_mapping_entry FLOW-ENTRY)* +// * ********** +// flow_mapping_entry? +// ****************** +// FLOW-MAPPING-END +// **************** +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * *** * +// +func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow mapping", context_mark, + "did not find expected ',' or '}'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } else { + parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true +} + +// Parse the productions: +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * ***** * +// +func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { + token := peek_token(parser) + if token == nil { + return false + } + if empty { + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Generate an empty scalar event. +func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: mark, + end_mark: mark, + value: nil, // Empty + implicit: true, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true +} + +var default_tag_directives = []yaml_tag_directive_t{ + {[]byte("!"), []byte("!")}, + {[]byte("!!"), []byte("tag:yaml.org,2002:")}, +} + +// Parse directives. +func yaml_parser_process_directives(parser *yaml_parser_t, + version_directive_ref **yaml_version_directive_t, + tag_directives_ref *[]yaml_tag_directive_t) bool { + + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + + token := peek_token(parser) + if token == nil { + return false + } + + for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { + if version_directive != nil { + yaml_parser_set_parser_error(parser, + "found duplicate %YAML directive", token.start_mark) + return false + } + if token.major != 1 || token.minor != 1 { + yaml_parser_set_parser_error(parser, + "found incompatible YAML document", token.start_mark) + return false + } + version_directive = &yaml_version_directive_t{ + major: token.major, + minor: token.minor, + } + } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { + value := yaml_tag_directive_t{ + handle: token.value, + prefix: token.prefix, + } + if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { + return false + } + tag_directives = append(tag_directives, value) + } + + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + + for i := range default_tag_directives { + if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { + return false + } + } + + if version_directive_ref != nil { + *version_directive_ref = version_directive + } + if tag_directives_ref != nil { + *tag_directives_ref = tag_directives + } + return true +} + +// Append a tag directive to the directives stack. +func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { + for i := range parser.tag_directives { + if bytes.Equal(value.handle, parser.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) + } + } + + // [Go] I suspect the copy is unnecessary. This was likely done + // because there was no way to track ownership of the data. + value_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(value_copy.handle, value.handle) + copy(value_copy.prefix, value.prefix) + parser.tag_directives = append(parser.tag_directives, value_copy) + return true +} diff --git a/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go new file mode 100644 index 0000000..7c1f5fa --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/readerc.go @@ -0,0 +1,412 @@ +package yaml + +import ( + "io" +) + +// Set the reader error and return 0. +func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { + parser.error = yaml_READER_ERROR + parser.problem = problem + parser.problem_offset = offset + parser.problem_value = value + return false +} + +// Byte order marks. +const ( + bom_UTF8 = "\xef\xbb\xbf" + bom_UTF16LE = "\xff\xfe" + bom_UTF16BE = "\xfe\xff" +) + +// Determine the input stream encoding by checking the BOM symbol. If no BOM is +// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. +func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { + // Ensure that we had enough bytes in the raw buffer. + for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { + if !yaml_parser_update_raw_buffer(parser) { + return false + } + } + + // Determine the encoding. + buf := parser.raw_buffer + pos := parser.raw_buffer_pos + avail := len(buf) - pos + if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { + parser.encoding = yaml_UTF16LE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { + parser.encoding = yaml_UTF16BE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { + parser.encoding = yaml_UTF8_ENCODING + parser.raw_buffer_pos += 3 + parser.offset += 3 + } else { + parser.encoding = yaml_UTF8_ENCODING + } + return true +} + +// Update the raw buffer. +func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { + size_read := 0 + + // Return if the raw buffer is full. + if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { + return true + } + + // Return on EOF. + if parser.eof { + return true + } + + // Move the remaining bytes in the raw buffer to the beginning. + if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { + copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) + } + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] + parser.raw_buffer_pos = 0 + + // Call the read handler to fill the buffer. + size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] + if err == io.EOF { + parser.eof = true + } else if err != nil { + return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) + } + return true +} + +// Ensure that the buffer contains at least `length` characters. +// Return true on success, false on failure. +// +// The length is supposed to be significantly less that the buffer size. +func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { + if parser.read_handler == nil { + panic("read handler must be set") + } + + // [Go] This function was changed to guarantee the requested length size at EOF. + // The fact we need to do this is pretty awful, but the description above implies + // for that to be the case, and there are tests + + // If the EOF flag is set and the raw buffer is empty, do nothing. + if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { + // [Go] ACTUALLY! Read the documentation of this function above. + // This is just broken. To return true, we need to have the + // given length in the buffer. Not doing that means every single + // check that calls this function to make sure the buffer has a + // given length is Go) panicking; or C) accessing invalid memory. + //return true + } + + // Return if the buffer contains enough characters. + if parser.unread >= length { + return true + } + + // Determine the input encoding if it is not known yet. + if parser.encoding == yaml_ANY_ENCODING { + if !yaml_parser_determine_encoding(parser) { + return false + } + } + + // Move the unread characters to the beginning of the buffer. + buffer_len := len(parser.buffer) + if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { + copy(parser.buffer, parser.buffer[parser.buffer_pos:]) + buffer_len -= parser.buffer_pos + parser.buffer_pos = 0 + } else if parser.buffer_pos == buffer_len { + buffer_len = 0 + parser.buffer_pos = 0 + } + + // Open the whole buffer for writing, and cut it before returning. + parser.buffer = parser.buffer[:cap(parser.buffer)] + + // Fill the buffer until it has enough characters. + first := true + for parser.unread < length { + + // Fill the raw buffer if necessary. + if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { + if !yaml_parser_update_raw_buffer(parser) { + parser.buffer = parser.buffer[:buffer_len] + return false + } + } + first = false + + // Decode the raw buffer. + inner: + for parser.raw_buffer_pos != len(parser.raw_buffer) { + var value rune + var width int + + raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos + + // Decode the next character. + switch parser.encoding { + case yaml_UTF8_ENCODING: + // Decode a UTF-8 character. Check RFC 3629 + // (http://www.ietf.org/rfc/rfc3629.txt) for more details. + // + // The following table (taken from the RFC) is used for + // decoding. + // + // Char. number range | UTF-8 octet sequence + // (hexadecimal) | (binary) + // --------------------+------------------------------------ + // 0000 0000-0000 007F | 0xxxxxxx + // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx + // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx + // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + // + // Additionally, the characters in the range 0xD800-0xDFFF + // are prohibited as they are reserved for use with UTF-16 + // surrogate pairs. + + // Determine the length of the UTF-8 sequence. + octet := parser.raw_buffer[parser.raw_buffer_pos] + switch { + case octet&0x80 == 0x00: + width = 1 + case octet&0xE0 == 0xC0: + width = 2 + case octet&0xF0 == 0xE0: + width = 3 + case octet&0xF8 == 0xF0: + width = 4 + default: + // The leading octet is invalid. + return yaml_parser_set_reader_error(parser, + "invalid leading UTF-8 octet", + parser.offset, int(octet)) + } + + // Check if the raw buffer contains an incomplete character. + if width > raw_unread { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-8 octet sequence", + parser.offset, -1) + } + break inner + } + + // Decode the leading octet. + switch { + case octet&0x80 == 0x00: + value = rune(octet & 0x7F) + case octet&0xE0 == 0xC0: + value = rune(octet & 0x1F) + case octet&0xF0 == 0xE0: + value = rune(octet & 0x0F) + case octet&0xF8 == 0xF0: + value = rune(octet & 0x07) + default: + value = 0 + } + + // Check and decode the trailing octets. + for k := 1; k < width; k++ { + octet = parser.raw_buffer[parser.raw_buffer_pos+k] + + // Check if the octet is valid. + if (octet & 0xC0) != 0x80 { + return yaml_parser_set_reader_error(parser, + "invalid trailing UTF-8 octet", + parser.offset+k, int(octet)) + } + + // Decode the octet. + value = (value << 6) + rune(octet&0x3F) + } + + // Check the length of the sequence against the value. + switch { + case width == 1: + case width == 2 && value >= 0x80: + case width == 3 && value >= 0x800: + case width == 4 && value >= 0x10000: + default: + return yaml_parser_set_reader_error(parser, + "invalid length of a UTF-8 sequence", + parser.offset, -1) + } + + // Check the range of the value. + if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { + return yaml_parser_set_reader_error(parser, + "invalid Unicode character", + parser.offset, int(value)) + } + + case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: + var low, high int + if parser.encoding == yaml_UTF16LE_ENCODING { + low, high = 0, 1 + } else { + low, high = 1, 0 + } + + // The UTF-16 encoding is not as simple as one might + // naively think. Check RFC 2781 + // (http://www.ietf.org/rfc/rfc2781.txt). + // + // Normally, two subsequent bytes describe a Unicode + // character. However a special technique (called a + // surrogate pair) is used for specifying character + // values larger than 0xFFFF. + // + // A surrogate pair consists of two pseudo-characters: + // high surrogate area (0xD800-0xDBFF) + // low surrogate area (0xDC00-0xDFFF) + // + // The following formulas are used for decoding + // and encoding characters using surrogate pairs: + // + // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) + // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) + // W1 = 110110yyyyyyyyyy + // W2 = 110111xxxxxxxxxx + // + // where U is the character value, W1 is the high surrogate + // area, W2 is the low surrogate area. + + // Check for incomplete UTF-16 character. + if raw_unread < 2 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 character", + parser.offset, -1) + } + break inner + } + + // Get the character. + value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) + + // Check for unexpected low surrogate area. + if value&0xFC00 == 0xDC00 { + return yaml_parser_set_reader_error(parser, + "unexpected low surrogate area", + parser.offset, int(value)) + } + + // Check for a high surrogate area. + if value&0xFC00 == 0xD800 { + width = 4 + + // Check for incomplete surrogate pair. + if raw_unread < 4 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 surrogate pair", + parser.offset, -1) + } + break inner + } + + // Get the next character. + value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) + + // Check for a low surrogate area. + if value2&0xFC00 != 0xDC00 { + return yaml_parser_set_reader_error(parser, + "expected low surrogate area", + parser.offset+2, int(value2)) + } + + // Generate the value of the surrogate pair. + value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) + } else { + width = 2 + } + + default: + panic("impossible") + } + + // Check if the character is in the allowed range: + // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) + // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) + // | [#x10000-#x10FFFF] (32 bit) + switch { + case value == 0x09: + case value == 0x0A: + case value == 0x0D: + case value >= 0x20 && value <= 0x7E: + case value == 0x85: + case value >= 0xA0 && value <= 0xD7FF: + case value >= 0xE000 && value <= 0xFFFD: + case value >= 0x10000 && value <= 0x10FFFF: + default: + return yaml_parser_set_reader_error(parser, + "control characters are not allowed", + parser.offset, int(value)) + } + + // Move the raw pointers. + parser.raw_buffer_pos += width + parser.offset += width + + // Finally put the character into the buffer. + if value <= 0x7F { + // 0000 0000-0000 007F . 0xxxxxxx + parser.buffer[buffer_len+0] = byte(value) + buffer_len += 1 + } else if value <= 0x7FF { + // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) + parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) + buffer_len += 2 + } else if value <= 0xFFFF { + // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) + buffer_len += 3 + } else { + // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) + buffer_len += 4 + } + + parser.unread++ + } + + // On EOF, put NUL into the buffer and return. + if parser.eof { + parser.buffer[buffer_len] = 0 + buffer_len++ + parser.unread++ + break + } + } + // [Go] Read the documentation of this function above. To return true, + // we need to have the given length in the buffer. Not doing that means + // every single check that calls this function to make sure the buffer + // has a given length is Go) panicking; or C) accessing invalid memory. + // This happens here due to the EOF above breaking early. + for buffer_len < length { + parser.buffer[buffer_len] = 0 + buffer_len++ + } + parser.buffer = parser.buffer[:buffer_len] + return true +} diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go new file mode 100644 index 0000000..6c151db --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/resolve.go @@ -0,0 +1,258 @@ +package yaml + +import ( + "encoding/base64" + "math" + "regexp" + "strconv" + "strings" + "time" +) + +type resolveMapItem struct { + value interface{} + tag string +} + +var resolveTable = make([]byte, 256) +var resolveMap = make(map[string]resolveMapItem) + +func init() { + t := resolveTable + t[int('+')] = 'S' // Sign + t[int('-')] = 'S' + for _, c := range "0123456789" { + t[int(c)] = 'D' // Digit + } + for _, c := range "yYnNtTfFoO~" { + t[int(c)] = 'M' // In map + } + t[int('.')] = '.' // Float (potentially in map) + + var resolveMapList = []struct { + v interface{} + tag string + l []string + }{ + {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, + {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, + {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, + {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, + {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, + {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, + {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, + {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, + {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, + {"<<", yaml_MERGE_TAG, []string{"<<"}}, + } + + m := resolveMap + for _, item := range resolveMapList { + for _, s := range item.l { + m[s] = resolveMapItem{item.v, item.tag} + } + } +} + +const longTagPrefix = "tag:yaml.org,2002:" + +func shortTag(tag string) string { + // TODO This can easily be made faster and produce less garbage. + if strings.HasPrefix(tag, longTagPrefix) { + return "!!" + tag[len(longTagPrefix):] + } + return tag +} + +func longTag(tag string) string { + if strings.HasPrefix(tag, "!!") { + return longTagPrefix + tag[2:] + } + return tag +} + +func resolvableTag(tag string) bool { + switch tag { + case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG: + return true + } + return false +} + +var yamlStyleFloat = regexp.MustCompile(`^[-+]?[0-9]*\.?[0-9]+([eE][-+][0-9]+)?$`) + +func resolve(tag string, in string) (rtag string, out interface{}) { + if !resolvableTag(tag) { + return tag, in + } + + defer func() { + switch tag { + case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: + return + case yaml_FLOAT_TAG: + if rtag == yaml_INT_TAG { + switch v := out.(type) { + case int64: + rtag = yaml_FLOAT_TAG + out = float64(v) + return + case int: + rtag = yaml_FLOAT_TAG + out = float64(v) + return + } + } + } + failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) + }() + + // Any data is accepted as a !!str or !!binary. + // Otherwise, the prefix is enough of a hint about what it might be. + hint := byte('N') + if in != "" { + hint = resolveTable[in[0]] + } + if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { + // Handle things we can lookup in a map. + if item, ok := resolveMap[in]; ok { + return item.tag, item.value + } + + // Base 60 floats are a bad idea, were dropped in YAML 1.2, and + // are purposefully unsupported here. They're still quoted on + // the way out for compatibility with other parser, though. + + switch hint { + case 'M': + // We've already checked the map above. + + case '.': + // Not in the map, so maybe a normal float. + floatv, err := strconv.ParseFloat(in, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + + case 'D', 'S': + // Int, float, or timestamp. + // Only try values as a timestamp if the value is unquoted or there's an explicit + // !!timestamp tag. + if tag == "" || tag == yaml_TIMESTAMP_TAG { + t, ok := parseTimestamp(in) + if ok { + return yaml_TIMESTAMP_TAG, t + } + } + + plain := strings.Replace(in, "_", "", -1) + intv, err := strconv.ParseInt(plain, 0, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain, 0, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + if yamlStyleFloat.MatchString(plain) { + floatv, err := strconv.ParseFloat(plain, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + } + if strings.HasPrefix(plain, "0b") { + intv, err := strconv.ParseInt(plain[2:], 2, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain[2:], 2, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + } else if strings.HasPrefix(plain, "-0b") { + intv, err := strconv.ParseInt("-" + plain[3:], 2, 64) + if err == nil { + if true || intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + } + default: + panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") + } + } + return yaml_STR_TAG, in +} + +// encodeBase64 encodes s as base64 that is broken up into multiple lines +// as appropriate for the resulting length. +func encodeBase64(s string) string { + const lineLen = 70 + encLen := base64.StdEncoding.EncodedLen(len(s)) + lines := encLen/lineLen + 1 + buf := make([]byte, encLen*2+lines) + in := buf[0:encLen] + out := buf[encLen:] + base64.StdEncoding.Encode(in, []byte(s)) + k := 0 + for i := 0; i < len(in); i += lineLen { + j := i + lineLen + if j > len(in) { + j = len(in) + } + k += copy(out[k:], in[i:j]) + if lines > 1 { + out[k] = '\n' + k++ + } + } + return string(out[:k]) +} + +// This is a subset of the formats allowed by the regular expression +// defined at http://yaml.org/type/timestamp.html. +var allowedTimestampFormats = []string{ + "2006-1-2T15:4:5.999999999Z07:00", // RCF3339Nano with short date fields. + "2006-1-2t15:4:5.999999999Z07:00", // RFC3339Nano with short date fields and lower-case "t". + "2006-1-2 15:4:5.999999999", // space separated with no time zone + "2006-1-2", // date only + // Notable exception: time.Parse cannot handle: "2001-12-14 21:59:43.10 -5" + // from the set of examples. +} + +// parseTimestamp parses s as a timestamp string and +// returns the timestamp and reports whether it succeeded. +// Timestamp formats are defined at http://yaml.org/type/timestamp.html +func parseTimestamp(s string) (time.Time, bool) { + // TODO write code to check all the formats supported by + // http://yaml.org/type/timestamp.html instead of using time.Parse. + + // Quick check: all date formats start with YYYY-. + i := 0 + for ; i < len(s); i++ { + if c := s[i]; c < '0' || c > '9' { + break + } + } + if i != 4 || i == len(s) || s[i] != '-' { + return time.Time{}, false + } + for _, format := range allowedTimestampFormats { + if t, err := time.Parse(format, s); err == nil { + return t, true + } + } + return time.Time{}, false +} diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go new file mode 100644 index 0000000..077fd1d --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/scannerc.go @@ -0,0 +1,2696 @@ +package yaml + +import ( + "bytes" + "fmt" +) + +// Introduction +// ************ +// +// The following notes assume that you are familiar with the YAML specification +// (http://yaml.org/spec/1.2/spec.html). We mostly follow it, although in +// some cases we are less restrictive that it requires. +// +// The process of transforming a YAML stream into a sequence of events is +// divided on two steps: Scanning and Parsing. +// +// The Scanner transforms the input stream into a sequence of tokens, while the +// parser transform the sequence of tokens produced by the Scanner into a +// sequence of parsing events. +// +// The Scanner is rather clever and complicated. The Parser, on the contrary, +// is a straightforward implementation of a recursive-descendant parser (or, +// LL(1) parser, as it is usually called). +// +// Actually there are two issues of Scanning that might be called "clever", the +// rest is quite straightforward. The issues are "block collection start" and +// "simple keys". Both issues are explained below in details. +// +// Here the Scanning step is explained and implemented. We start with the list +// of all the tokens produced by the Scanner together with short descriptions. +// +// Now, tokens: +// +// STREAM-START(encoding) # The stream start. +// STREAM-END # The stream end. +// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. +// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. +// DOCUMENT-START # '---' +// DOCUMENT-END # '...' +// BLOCK-SEQUENCE-START # Indentation increase denoting a block +// BLOCK-MAPPING-START # sequence or a block mapping. +// BLOCK-END # Indentation decrease. +// FLOW-SEQUENCE-START # '[' +// FLOW-SEQUENCE-END # ']' +// BLOCK-SEQUENCE-START # '{' +// BLOCK-SEQUENCE-END # '}' +// BLOCK-ENTRY # '-' +// FLOW-ENTRY # ',' +// KEY # '?' or nothing (simple keys). +// VALUE # ':' +// ALIAS(anchor) # '*anchor' +// ANCHOR(anchor) # '&anchor' +// TAG(handle,suffix) # '!handle!suffix' +// SCALAR(value,style) # A scalar. +// +// The following two tokens are "virtual" tokens denoting the beginning and the +// end of the stream: +// +// STREAM-START(encoding) +// STREAM-END +// +// We pass the information about the input stream encoding with the +// STREAM-START token. +// +// The next two tokens are responsible for tags: +// +// VERSION-DIRECTIVE(major,minor) +// TAG-DIRECTIVE(handle,prefix) +// +// Example: +// +// %YAML 1.1 +// %TAG ! !foo +// %TAG !yaml! tag:yaml.org,2002: +// --- +// +// The correspoding sequence of tokens: +// +// STREAM-START(utf-8) +// VERSION-DIRECTIVE(1,1) +// TAG-DIRECTIVE("!","!foo") +// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") +// DOCUMENT-START +// STREAM-END +// +// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole +// line. +// +// The document start and end indicators are represented by: +// +// DOCUMENT-START +// DOCUMENT-END +// +// Note that if a YAML stream contains an implicit document (without '---' +// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be +// produced. +// +// In the following examples, we present whole documents together with the +// produced tokens. +// +// 1. An implicit document: +// +// 'a scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// STREAM-END +// +// 2. An explicit document: +// +// --- +// 'a scalar' +// ... +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// SCALAR("a scalar",single-quoted) +// DOCUMENT-END +// STREAM-END +// +// 3. Several documents in a stream: +// +// 'a scalar' +// --- +// 'another scalar' +// --- +// 'yet another scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// DOCUMENT-START +// SCALAR("another scalar",single-quoted) +// DOCUMENT-START +// SCALAR("yet another scalar",single-quoted) +// STREAM-END +// +// We have already introduced the SCALAR token above. The following tokens are +// used to describe aliases, anchors, tag, and scalars: +// +// ALIAS(anchor) +// ANCHOR(anchor) +// TAG(handle,suffix) +// SCALAR(value,style) +// +// The following series of examples illustrate the usage of these tokens: +// +// 1. A recursive sequence: +// +// &A [ *A ] +// +// Tokens: +// +// STREAM-START(utf-8) +// ANCHOR("A") +// FLOW-SEQUENCE-START +// ALIAS("A") +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A tagged scalar: +// +// !!float "3.14" # A good approximation. +// +// Tokens: +// +// STREAM-START(utf-8) +// TAG("!!","float") +// SCALAR("3.14",double-quoted) +// STREAM-END +// +// 3. Various scalar styles: +// +// --- # Implicit empty plain scalars do not produce tokens. +// --- a plain scalar +// --- 'a single-quoted scalar' +// --- "a double-quoted scalar" +// --- |- +// a literal scalar +// --- >- +// a folded +// scalar +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// DOCUMENT-START +// SCALAR("a plain scalar",plain) +// DOCUMENT-START +// SCALAR("a single-quoted scalar",single-quoted) +// DOCUMENT-START +// SCALAR("a double-quoted scalar",double-quoted) +// DOCUMENT-START +// SCALAR("a literal scalar",literal) +// DOCUMENT-START +// SCALAR("a folded scalar",folded) +// STREAM-END +// +// Now it's time to review collection-related tokens. We will start with +// flow collections: +// +// FLOW-SEQUENCE-START +// FLOW-SEQUENCE-END +// FLOW-MAPPING-START +// FLOW-MAPPING-END +// FLOW-ENTRY +// KEY +// VALUE +// +// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and +// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' +// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the +// indicators '?' and ':', which are used for denoting mapping keys and values, +// are represented by the KEY and VALUE tokens. +// +// The following examples show flow collections: +// +// 1. A flow sequence: +// +// [item 1, item 2, item 3] +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-SEQUENCE-START +// SCALAR("item 1",plain) +// FLOW-ENTRY +// SCALAR("item 2",plain) +// FLOW-ENTRY +// SCALAR("item 3",plain) +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A flow mapping: +// +// { +// a simple key: a value, # Note that the KEY token is produced. +// ? a complex key: another value, +// } +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// FLOW-ENTRY +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// FLOW-ENTRY +// FLOW-MAPPING-END +// STREAM-END +// +// A simple key is a key which is not denoted by the '?' indicator. Note that +// the Scanner still produce the KEY token whenever it encounters a simple key. +// +// For scanning block collections, the following tokens are used (note that we +// repeat KEY and VALUE here): +// +// BLOCK-SEQUENCE-START +// BLOCK-MAPPING-START +// BLOCK-END +// BLOCK-ENTRY +// KEY +// VALUE +// +// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation +// increase that precedes a block collection (cf. the INDENT token in Python). +// The token BLOCK-END denote indentation decrease that ends a block collection +// (cf. the DEDENT token in Python). However YAML has some syntax pecularities +// that makes detections of these tokens more complex. +// +// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators +// '-', '?', and ':' correspondingly. +// +// The following examples show how the tokens BLOCK-SEQUENCE-START, +// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: +// +// 1. Block sequences: +// +// - item 1 +// - item 2 +// - +// - item 3.1 +// - item 3.2 +// - +// key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 3.1",plain) +// BLOCK-ENTRY +// SCALAR("item 3.2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Block mappings: +// +// a simple key: a value # The KEY token is produced here. +// ? a complex key +// : another value +// a mapping: +// key 1: value 1 +// key 2: value 2 +// a sequence: +// - item 1 +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// KEY +// SCALAR("a mapping",plain) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML does not always require to start a new block collection from a new +// line. If the current line contains only '-', '?', and ':' indicators, a new +// block collection may start at the current line. The following examples +// illustrate this case: +// +// 1. Collections in a sequence: +// +// - - item 1 +// - item 2 +// - key 1: value 1 +// key 2: value 2 +// - ? complex key +// : complex value +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("complex key") +// VALUE +// SCALAR("complex value") +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Collections in a mapping: +// +// ? a sequence +// : - item 1 +// - item 2 +// ? a mapping +// : key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// KEY +// SCALAR("a mapping",plain) +// VALUE +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML also permits non-indented sequences if they are included into a block +// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: +// +// key: +// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key",plain) +// VALUE +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// + +// Ensure that the buffer contains the required number of characters. +// Return true on success, false on failure (reader error or memory error). +func cache(parser *yaml_parser_t, length int) bool { + // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) + return parser.unread >= length || yaml_parser_update_buffer(parser, length) +} + +// Advance the buffer pointer. +func skip(parser *yaml_parser_t) { + parser.mark.index++ + parser.mark.column++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) +} + +func skip_line(parser *yaml_parser_t) { + if is_crlf(parser.buffer, parser.buffer_pos) { + parser.mark.index += 2 + parser.mark.column = 0 + parser.mark.line++ + parser.unread -= 2 + parser.buffer_pos += 2 + } else if is_break(parser.buffer, parser.buffer_pos) { + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) + } +} + +// Copy a character to a string buffer and advance pointers. +func read(parser *yaml_parser_t, s []byte) []byte { + w := width(parser.buffer[parser.buffer_pos]) + if w == 0 { + panic("invalid character sequence") + } + if len(s) == 0 { + s = make([]byte, 0, 32) + } + if w == 1 && len(s)+w <= cap(s) { + s = s[:len(s)+1] + s[len(s)-1] = parser.buffer[parser.buffer_pos] + parser.buffer_pos++ + } else { + s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) + parser.buffer_pos += w + } + parser.mark.index++ + parser.mark.column++ + parser.unread-- + return s +} + +// Copy a line break character to a string buffer and advance pointers. +func read_line(parser *yaml_parser_t, s []byte) []byte { + buf := parser.buffer + pos := parser.buffer_pos + switch { + case buf[pos] == '\r' && buf[pos+1] == '\n': + // CR LF . LF + s = append(s, '\n') + parser.buffer_pos += 2 + parser.mark.index++ + parser.unread-- + case buf[pos] == '\r' || buf[pos] == '\n': + // CR|LF . LF + s = append(s, '\n') + parser.buffer_pos += 1 + case buf[pos] == '\xC2' && buf[pos+1] == '\x85': + // NEL . LF + s = append(s, '\n') + parser.buffer_pos += 2 + case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): + // LS|PS . LS|PS + s = append(s, buf[parser.buffer_pos:pos+3]...) + parser.buffer_pos += 3 + default: + return s + } + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + return s +} + +// Get the next token. +func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { + // Erase the token object. + *token = yaml_token_t{} // [Go] Is this necessary? + + // No tokens after STREAM-END or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR { + return true + } + + // Ensure that the tokens queue contains enough tokens. + if !parser.token_available { + if !yaml_parser_fetch_more_tokens(parser) { + return false + } + } + + // Fetch the next token from the queue. + *token = parser.tokens[parser.tokens_head] + parser.tokens_head++ + parser.tokens_parsed++ + parser.token_available = false + + if token.typ == yaml_STREAM_END_TOKEN { + parser.stream_end_produced = true + } + return true +} + +// Set the scanner error and return false. +func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { + parser.error = yaml_SCANNER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = parser.mark + return false +} + +func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { + context := "while parsing a tag" + if directive { + context = "while parsing a %TAG directive" + } + return yaml_parser_set_scanner_error(parser, context, context_mark, problem) +} + +func trace(args ...interface{}) func() { + pargs := append([]interface{}{"+++"}, args...) + fmt.Println(pargs...) + pargs = append([]interface{}{"---"}, args...) + return func() { fmt.Println(pargs...) } +} + +// Ensure that the tokens queue contains at least one token which can be +// returned to the Parser. +func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { + // While we need more tokens to fetch, do it. + for { + // Check if we really need to fetch more tokens. + need_more_tokens := false + + if parser.tokens_head == len(parser.tokens) { + // Queue is empty. + need_more_tokens = true + } else { + // Check if any potential simple key may occupy the head position. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + if simple_key.possible && simple_key.token_number == parser.tokens_parsed { + need_more_tokens = true + break + } + } + } + + // We are finished. + if !need_more_tokens { + break + } + // Fetch the next token. + if !yaml_parser_fetch_next_token(parser) { + return false + } + } + + parser.token_available = true + return true +} + +// The dispatcher for token fetchers. +func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { + // Ensure that the buffer is initialized. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check if we just started scanning. Fetch STREAM-START then. + if !parser.stream_start_produced { + return yaml_parser_fetch_stream_start(parser) + } + + // Eat whitespaces and comments until we reach the next token. + if !yaml_parser_scan_to_next_token(parser) { + return false + } + + // Remove obsolete potential simple keys. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + // Check the indentation level against the current column. + if !yaml_parser_unroll_indent(parser, parser.mark.column) { + return false + } + + // Ensure that the buffer contains at least 4 characters. 4 is the length + // of the longest indicators ('--- ' and '... '). + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + // Is it the end of the stream? + if is_z(parser.buffer, parser.buffer_pos) { + return yaml_parser_fetch_stream_end(parser) + } + + // Is it a directive? + if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { + return yaml_parser_fetch_directive(parser) + } + + buf := parser.buffer + pos := parser.buffer_pos + + // Is it the document start indicator? + if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) + } + + // Is it the document end indicator? + if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) + } + + // Is it the flow sequence start indicator? + if buf[pos] == '[' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) + } + + // Is it the flow mapping start indicator? + if parser.buffer[parser.buffer_pos] == '{' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) + } + + // Is it the flow sequence end indicator? + if parser.buffer[parser.buffer_pos] == ']' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_SEQUENCE_END_TOKEN) + } + + // Is it the flow mapping end indicator? + if parser.buffer[parser.buffer_pos] == '}' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_MAPPING_END_TOKEN) + } + + // Is it the flow entry indicator? + if parser.buffer[parser.buffer_pos] == ',' { + return yaml_parser_fetch_flow_entry(parser) + } + + // Is it the block entry indicator? + if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { + return yaml_parser_fetch_block_entry(parser) + } + + // Is it the key indicator? + if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_key(parser) + } + + // Is it the value indicator? + if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_value(parser) + } + + // Is it an alias? + if parser.buffer[parser.buffer_pos] == '*' { + return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) + } + + // Is it an anchor? + if parser.buffer[parser.buffer_pos] == '&' { + return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) + } + + // Is it a tag? + if parser.buffer[parser.buffer_pos] == '!' { + return yaml_parser_fetch_tag(parser) + } + + // Is it a literal scalar? + if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, true) + } + + // Is it a folded scalar? + if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, false) + } + + // Is it a single-quoted scalar? + if parser.buffer[parser.buffer_pos] == '\'' { + return yaml_parser_fetch_flow_scalar(parser, true) + } + + // Is it a double-quoted scalar? + if parser.buffer[parser.buffer_pos] == '"' { + return yaml_parser_fetch_flow_scalar(parser, false) + } + + // Is it a plain scalar? + // + // A plain scalar may start with any non-blank characters except + // + // '-', '?', ':', ',', '[', ']', '{', '}', + // '#', '&', '*', '!', '|', '>', '\'', '\"', + // '%', '@', '`'. + // + // In the block context (and, for the '-' indicator, in the flow context + // too), it may also start with the characters + // + // '-', '?', ':' + // + // if it is followed by a non-space character. + // + // The last rule is more restrictive than the specification requires. + // [Go] Make this logic more reasonable. + //switch parser.buffer[parser.buffer_pos] { + //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': + //} + if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || + parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || + parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || + (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level == 0 && + (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && + !is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_plain_scalar(parser) + } + + // If we don't determine the token type so far, it is an error. + return yaml_parser_set_scanner_error(parser, + "while scanning for the next token", parser.mark, + "found character that cannot start any token") +} + +// Check the list of potential simple keys and remove the positions that +// cannot contain simple keys anymore. +func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { + // Check for a potential simple key for each flow level. + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + + // The specification requires that a simple key + // + // - is limited to a single line, + // - is shorter than 1024 characters. + if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { + + // Check if the potential simple key to be removed is required. + if simple_key.required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key.mark, + "could not find expected ':'") + } + simple_key.possible = false + } + } + return true +} + +// Check if a simple key may start at the current position and add it if +// needed. +func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { + // A simple key is required at the current position if the scanner is in + // the block context and the current column coincides with the indentation + // level. + + required := parser.flow_level == 0 && parser.indent == parser.mark.column + + // + // If the current position may start a simple key, save it. + // + if parser.simple_key_allowed { + simple_key := yaml_simple_key_t{ + possible: true, + required: required, + token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), + } + simple_key.mark = parser.mark + + if !yaml_parser_remove_simple_key(parser) { + return false + } + parser.simple_keys[len(parser.simple_keys)-1] = simple_key + } + return true +} + +// Remove a potential simple key at the current flow level. +func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { + i := len(parser.simple_keys) - 1 + if parser.simple_keys[i].possible { + // If the key is required, it is an error. + if parser.simple_keys[i].required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", parser.simple_keys[i].mark, + "could not find expected ':'") + } + } + // Remove the key from the stack. + parser.simple_keys[i].possible = false + return true +} + +// Increase the flow level and resize the simple key list if needed. +func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { + // Reset the simple key on the next level. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // Increase the flow level. + parser.flow_level++ + return true +} + +// Decrease the flow level. +func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { + if parser.flow_level > 0 { + parser.flow_level-- + parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] + } + return true +} + +// Push the current indentation level to the stack and set the new level +// the current column is greater than the indentation level. In this case, +// append or insert the specified token into the token queue. +func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + if parser.indent < column { + // Push the current indentation level to the stack and set the new + // indentation level. + parser.indents = append(parser.indents, parser.indent) + parser.indent = column + + // Create a token and insert it into the queue. + token := yaml_token_t{ + typ: typ, + start_mark: mark, + end_mark: mark, + } + if number > -1 { + number -= parser.tokens_parsed + } + yaml_insert_token(parser, number, &token) + } + return true +} + +// Pop indentation levels from the indents stack until the current level +// becomes less or equal to the column. For each indentation level, append +// the BLOCK-END token. +func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + // Loop through the indentation levels in the stack. + for parser.indent > column { + // Create a token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + + // Pop the indentation level. + parser.indent = parser.indents[len(parser.indents)-1] + parser.indents = parser.indents[:len(parser.indents)-1] + } + return true +} + +// Initialize the scanner and produce the STREAM-START token. +func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { + + // Set the initial indentation. + parser.indent = -1 + + // Initialize the simple key stack. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // A simple key is allowed at the beginning of the stream. + parser.simple_key_allowed = true + + // We have started. + parser.stream_start_produced = true + + // Create the STREAM-START token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_START_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + encoding: parser.encoding, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the STREAM-END token and shut down the scanner. +func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { + + // Force new line. + if parser.mark.column != 0 { + parser.mark.column = 0 + parser.mark.line++ + } + + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the STREAM-END token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. +func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. + token := yaml_token_t{} + if !yaml_parser_scan_directive(parser, &token) { + return false + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the DOCUMENT-START or DOCUMENT-END token. +func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Consume the token. + start_mark := parser.mark + + skip(parser) + skip(parser) + skip(parser) + + end_mark := parser.mark + + // Create the DOCUMENT-START or DOCUMENT-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. +func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // The indicators '[' and '{' may start a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // Increase the flow level. + if !yaml_parser_increase_flow_level(parser) { + return false + } + + // A simple key may follow the indicators '[' and '{'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. +func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset any potential simple key on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Decrease the flow level. + if !yaml_parser_decrease_flow_level(parser) { + return false + } + + // No simple keys after the indicators ']' and '}'. + parser.simple_key_allowed = false + + // Consume the token. + + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-ENTRY token. +func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after ','. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_FLOW_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the BLOCK-ENTRY token. +func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { + // Check if the scanner is in the block context. + if parser.flow_level == 0 { + // Check if we are allowed to start a new entry. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "block sequence entries are not allowed in this context") + } + // Add the BLOCK-SEQUENCE-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { + return false + } + } else { + // It is an error for the '-' indicator to occur in the flow context, + // but we let the Parser detect and report about it because the Parser + // is able to point to the context. + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '-'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the BLOCK-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the KEY token. +func yaml_parser_fetch_key(parser *yaml_parser_t) bool { + + // In the block context, additional checks are required. + if parser.flow_level == 0 { + // Check if we are allowed to start a new key (not nessesary simple). + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping keys are not allowed in this context") + } + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '?' in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the KEY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the VALUE token. +func yaml_parser_fetch_value(parser *yaml_parser_t) bool { + + simple_key := &parser.simple_keys[len(parser.simple_keys)-1] + + // Have we found a simple key? + if simple_key.possible { + // Create the KEY token and insert it into the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: simple_key.mark, + end_mark: simple_key.mark, + } + yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) + + // In the block context, we may need to add the BLOCK-MAPPING-START token. + if !yaml_parser_roll_indent(parser, simple_key.mark.column, + simple_key.token_number, + yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { + return false + } + + // Remove the simple key. + simple_key.possible = false + + // A simple key cannot follow another simple key. + parser.simple_key_allowed = false + + } else { + // The ':' indicator follows a complex key. + + // In the block context, extra checks are required. + if parser.flow_level == 0 { + + // Check if we are allowed to start a complex value. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping values are not allowed in this context") + } + + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Simple keys after ':' are allowed in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + } + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the VALUE token and append it to the queue. + token := yaml_token_t{ + typ: yaml_VALUE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the ALIAS or ANCHOR token. +func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // An anchor or an alias could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow an anchor or an alias. + parser.simple_key_allowed = false + + // Create the ALIAS or ANCHOR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_anchor(parser, &token, typ) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the TAG token. +func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { + // A tag could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a tag. + parser.simple_key_allowed = false + + // Create the TAG token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_tag(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. +func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { + // Remove any potential simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // A simple key may follow a block scalar. + parser.simple_key_allowed = true + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_block_scalar(parser, &token, literal) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. +func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_flow_scalar(parser, &token, single) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,plain) token. +func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_plain_scalar(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Eat whitespaces and comments until the next token is found. +func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { + + // Until the next token is not found. + for { + // Allow the BOM mark to start a line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { + skip(parser) + } + + // Eat whitespaces. + // Tabs are allowed: + // - in the flow context + // - in the block context, but not at the beginning of the line or + // after '-', '?', or ':' (complex value). + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Eat a comment until a line break. + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // If it is a line break, eat it. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + + // In the block context, a new line may start a simple key. + if parser.flow_level == 0 { + parser.simple_key_allowed = true + } + } else { + break // We have found a token. + } + } + + return true +} + +// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { + // Eat '%'. + start_mark := parser.mark + skip(parser) + + // Scan the directive name. + var name []byte + if !yaml_parser_scan_directive_name(parser, start_mark, &name) { + return false + } + + // Is it a YAML directive? + if bytes.Equal(name, []byte("YAML")) { + // Scan the VERSION directive value. + var major, minor int8 + if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { + return false + } + end_mark := parser.mark + + // Create a VERSION-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_VERSION_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + major: major, + minor: minor, + } + + // Is it a TAG directive? + } else if bytes.Equal(name, []byte("TAG")) { + // Scan the TAG directive value. + var handle, prefix []byte + if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { + return false + } + end_mark := parser.mark + + // Create a TAG-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_TAG_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + prefix: prefix, + } + + // Unknown directive. + } else { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unknown directive name") + return false + } + + // Eat the rest of the line including any comments. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + return true +} + +// Scan the directive name. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^ +// +func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { + // Consume the directive name. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + var s []byte + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the name is empty. + if len(s) == 0 { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "could not find expected directive name") + return false + } + + // Check for an blank character after the name. + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unexpected non-alphabetical character") + return false + } + *name = s + return true +} + +// Scan the value of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^ +func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the major version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { + return false + } + + // Eat '.'. + if parser.buffer[parser.buffer_pos] != '.' { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected digit or '.' character") + } + + skip(parser) + + // Consume the minor version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { + return false + } + return true +} + +const max_number_length = 2 + +// Scan the version number of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^ +// %YAML 1.1 # a comment \n +// ^ +func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { + + // Repeat while the next character is digit. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var value, length int8 + for is_digit(parser.buffer, parser.buffer_pos) { + // Check if the number is too long. + length++ + if length > max_number_length { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "found extremely long version number") + } + value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the number was present. + if length == 0 { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected version number") + } + *number = value + return true +} + +// Scan the value of a TAG-DIRECTIVE token. +// +// Scope: +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { + var handle_value, prefix_value []byte + + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a handle. + if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { + return false + } + + // Expect a whitespace. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blank(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace") + return false + } + + // Eat whitespaces. + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a prefix. + if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { + return false + } + + // Expect a whitespace or line break. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace or line break") + return false + } + + *handle = handle_value + *prefix = prefix_value + return true +} + +func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { + var s []byte + + // Eat the indicator character. + start_mark := parser.mark + skip(parser) + + // Consume the value. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + end_mark := parser.mark + + /* + * Check if length of the anchor is greater than 0 and it is followed by + * a whitespace character or one of the indicators: + * + * '?', ':', ',', ']', '}', '%', '@', '`'. + */ + + if len(s) == 0 || + !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || + parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '`') { + context := "while scanning an alias" + if typ == yaml_ANCHOR_TOKEN { + context = "while scanning an anchor" + } + yaml_parser_set_scanner_error(parser, context, start_mark, + "did not find expected alphabetic or numeric character") + return false + } + + // Create a token. + *token = yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + value: s, + } + + return true +} + +/* + * Scan a TAG token. + */ + +func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { + var handle, suffix []byte + + start_mark := parser.mark + + // Check if the tag is in the canonical form. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + if parser.buffer[parser.buffer_pos+1] == '<' { + // Keep the handle as '' + + // Eat '!<' + skip(parser) + skip(parser) + + // Consume the tag value. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + + // Check for '>' and eat it. + if parser.buffer[parser.buffer_pos] != '>' { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find the expected '>'") + return false + } + + skip(parser) + } else { + // The tag has either the '!suffix' or the '!handle!suffix' form. + + // First, try to scan a handle. + if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { + return false + } + + // Check if it is, indeed, handle. + if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { + // Scan the suffix now. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + } else { + // It wasn't a handle after all. Scan the rest of the tag. + if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { + return false + } + + // Set the handle to '!'. + handle = []byte{'!'} + + // A special case: the '!' tag. Set the handle to '' and the + // suffix to '!'. + if len(suffix) == 0 { + handle, suffix = suffix, handle + } + } + } + + // Check the character which ends the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find expected whitespace or line break") + return false + } + + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_TAG_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + suffix: suffix, + } + return true +} + +// Scan a tag handle. +func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { + // Check the initial '!' character. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] != '!' { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + + var s []byte + + // Copy the '!' character. + s = read(parser, s) + + // Copy all subsequent alphabetical and numerical characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the trailing character is '!' and copy it. + if parser.buffer[parser.buffer_pos] == '!' { + s = read(parser, s) + } else { + // It's either the '!' tag or not really a tag handle. If it's a %TAG + // directive, it's an error. If it's a tag token, it must be a part of URI. + if directive && string(s) != "!" { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + } + + *handle = s + return true +} + +// Scan a tag. +func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { + //size_t length = head ? strlen((char *)head) : 0 + var s []byte + hasTag := len(head) > 0 + + // Copy the head if needed. + // + // Note that we don't copy the leading '!' character. + if len(head) > 1 { + s = append(s, head[1:]...) + } + + // Scan the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // The set of characters that may appear in URI is as follows: + // + // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', + // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', + // '%'. + // [Go] Convert this into more reasonable logic. + for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || + parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || + parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || + parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || + parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || + parser.buffer[parser.buffer_pos] == '%' { + // Check if it is a URI-escape sequence. + if parser.buffer[parser.buffer_pos] == '%' { + if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { + return false + } + } else { + s = read(parser, s) + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + hasTag = true + } + + if !hasTag { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected tag URI") + return false + } + *uri = s + return true +} + +// Decode an URI-escape sequence corresponding to a single UTF-8 character. +func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { + + // Decode the required number of characters. + w := 1024 + for w > 0 { + // Check for a URI-escaped octet. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + + if !(parser.buffer[parser.buffer_pos] == '%' && + is_hex(parser.buffer, parser.buffer_pos+1) && + is_hex(parser.buffer, parser.buffer_pos+2)) { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find URI escaped octet") + } + + // Get the octet. + octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) + + // If it is the leading octet, determine the length of the UTF-8 sequence. + if w == 1024 { + w = width(octet) + if w == 0 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect leading UTF-8 octet") + } + } else { + // Check if the trailing octet is correct. + if octet&0xC0 != 0x80 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect trailing UTF-8 octet") + } + } + + // Copy the octet and move the pointers. + *s = append(*s, octet) + skip(parser) + skip(parser) + skip(parser) + w-- + } + return true +} + +// Scan a block scalar. +func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { + // Eat the indicator '|' or '>'. + start_mark := parser.mark + skip(parser) + + // Scan the additional block scalar indicators. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check for a chomping indicator. + var chomping, increment int + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + // Set the chomping method and eat the indicator. + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + + // Check for an indentation indicator. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if is_digit(parser.buffer, parser.buffer_pos) { + // Check that the indentation is greater than 0. + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + + // Get the indentation level and eat the indicator. + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + } + + } else if is_digit(parser.buffer, parser.buffer_pos) { + // Do the same as above, but in the opposite order. + + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + } + } + + // Eat whitespaces and comments to the end of the line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + end_mark := parser.mark + + // Set the indentation level if it was specified. + var indent int + if increment > 0 { + if parser.indent >= 0 { + indent = parser.indent + increment + } else { + indent = increment + } + } + + // Scan the leading line breaks and determine the indentation level if needed. + var s, leading_break, trailing_breaks []byte + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + + // Scan the block scalar content. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var leading_blank, trailing_blank bool + for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { + // We are at the beginning of a non-empty line. + + // Is it a trailing whitespace? + trailing_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Check if we need to fold the leading line break. + if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { + // Do we need to join the lines by space? + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } + } else { + s = append(s, leading_break...) + } + leading_break = leading_break[:0] + + // Append the remaining line breaks. + s = append(s, trailing_breaks...) + trailing_breaks = trailing_breaks[:0] + + // Is it a leading whitespace? + leading_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Consume the current line. + for !is_breakz(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + leading_break = read_line(parser, leading_break) + + // Eat the following indentation spaces and line breaks. + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + } + + // Chomp the tail. + if chomping != -1 { + s = append(s, leading_break...) + } + if chomping == 1 { + s = append(s, trailing_breaks...) + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_LITERAL_SCALAR_STYLE, + } + if !literal { + token.style = yaml_FOLDED_SCALAR_STYLE + } + return true +} + +// Scan indentation spaces and line breaks for a block scalar. Determine the +// indentation level if needed. +func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { + *end_mark = parser.mark + + // Eat the indentation spaces and line breaks. + max_indent := 0 + for { + // Eat the indentation spaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.mark.column > max_indent { + max_indent = parser.mark.column + } + + // Check for a tab character messing the indentation. + if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { + return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found a tab character where an indentation space is expected") + } + + // Have we found a non-empty line? + if !is_break(parser.buffer, parser.buffer_pos) { + break + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + // [Go] Should really be returning breaks instead. + *breaks = read_line(parser, *breaks) + *end_mark = parser.mark + } + + // Determine the indentation level if needed. + if *indent == 0 { + *indent = max_indent + if *indent < parser.indent+1 { + *indent = parser.indent + 1 + } + if *indent < 1 { + *indent = 1 + } + } + return true +} + +// Scan a quoted scalar. +func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { + // Eat the left quote. + start_mark := parser.mark + skip(parser) + + // Consume the content of the quoted scalar. + var s, leading_break, trailing_breaks, whitespaces []byte + for { + // Check that there are no document indicators at the beginning of the line. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected document indicator") + return false + } + + // Check for EOF. + if is_z(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected end of stream") + return false + } + + // Consume non-blank characters. + leading_blanks := false + for !is_blankz(parser.buffer, parser.buffer_pos) { + if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { + // Is is an escaped single quote. + s = append(s, '\'') + skip(parser) + skip(parser) + + } else if single && parser.buffer[parser.buffer_pos] == '\'' { + // It is a right single quote. + break + } else if !single && parser.buffer[parser.buffer_pos] == '"' { + // It is a right double quote. + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { + // It is an escaped line break. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + skip(parser) + skip_line(parser) + leading_blanks = true + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' { + // It is an escape sequence. + code_length := 0 + + // Check the escape character. + switch parser.buffer[parser.buffer_pos+1] { + case '0': + s = append(s, 0) + case 'a': + s = append(s, '\x07') + case 'b': + s = append(s, '\x08') + case 't', '\t': + s = append(s, '\x09') + case 'n': + s = append(s, '\x0A') + case 'v': + s = append(s, '\x0B') + case 'f': + s = append(s, '\x0C') + case 'r': + s = append(s, '\x0D') + case 'e': + s = append(s, '\x1B') + case ' ': + s = append(s, '\x20') + case '"': + s = append(s, '"') + case '\'': + s = append(s, '\'') + case '\\': + s = append(s, '\\') + case 'N': // NEL (#x85) + s = append(s, '\xC2') + s = append(s, '\x85') + case '_': // #xA0 + s = append(s, '\xC2') + s = append(s, '\xA0') + case 'L': // LS (#x2028) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA8') + case 'P': // PS (#x2029) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA9') + case 'x': + code_length = 2 + case 'u': + code_length = 4 + case 'U': + code_length = 8 + default: + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found unknown escape character") + return false + } + + skip(parser) + skip(parser) + + // Consume an arbitrary escape code. + if code_length > 0 { + var value int + + // Scan the character value. + if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { + return false + } + for k := 0; k < code_length; k++ { + if !is_hex(parser.buffer, parser.buffer_pos+k) { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "did not find expected hexdecimal number") + return false + } + value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) + } + + // Check the value and write the character. + if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found invalid Unicode character escape code") + return false + } + if value <= 0x7F { + s = append(s, byte(value)) + } else if value <= 0x7FF { + s = append(s, byte(0xC0+(value>>6))) + s = append(s, byte(0x80+(value&0x3F))) + } else if value <= 0xFFFF { + s = append(s, byte(0xE0+(value>>12))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } else { + s = append(s, byte(0xF0+(value>>18))) + s = append(s, byte(0x80+((value>>12)&0x3F))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } + + // Advance the pointer. + for k := 0; k < code_length; k++ { + skip(parser) + } + } + } else { + // It is a non-escaped non-blank character. + s = read(parser, s) + } + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check if we are at the end of the scalar. + if single { + if parser.buffer[parser.buffer_pos] == '\'' { + break + } + } else { + if parser.buffer[parser.buffer_pos] == '"' { + break + } + } + + // Consume blank characters. + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Join the whitespaces or fold line breaks. + if leading_blanks { + // Do we need to fold line breaks? + if len(leading_break) > 0 && leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Eat the right quote. + skip(parser) + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_SINGLE_QUOTED_SCALAR_STYLE, + } + if !single { + token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + return true +} + +// Scan a plain scalar. +func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { + + var s, leading_break, trailing_breaks, whitespaces []byte + var leading_blanks bool + var indent = parser.indent + 1 + + start_mark := parser.mark + end_mark := parser.mark + + // Consume the content of the plain scalar. + for { + // Check for a document indicator. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + break + } + + // Check for a comment. + if parser.buffer[parser.buffer_pos] == '#' { + break + } + + // Consume non-blank characters. + for !is_blankz(parser.buffer, parser.buffer_pos) { + + // Check for indicators that may end a plain scalar. + if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level > 0 && + (parser.buffer[parser.buffer_pos] == ',' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}')) { + break + } + + // Check if we need to join whitespaces and breaks. + if leading_blanks || len(whitespaces) > 0 { + if leading_blanks { + // Do we need to fold line breaks? + if leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + leading_blanks = false + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Copy the character. + s = read(parser, s) + + end_mark = parser.mark + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + // Is it the end? + if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { + break + } + + // Consume blank characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + + // Check for tab characters that abuse indentation. + if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found a tab character that violates indentation") + return false + } + + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check indentation level. + if parser.flow_level == 0 && parser.mark.column < indent { + break + } + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_PLAIN_SCALAR_STYLE, + } + + // Note that we change the 'simple_key_allowed' flag. + if leading_blanks { + parser.simple_key_allowed = true + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go new file mode 100644 index 0000000..4c45e66 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/sorter.go @@ -0,0 +1,113 @@ +package yaml + +import ( + "reflect" + "unicode" +) + +type keyList []reflect.Value + +func (l keyList) Len() int { return len(l) } +func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } +func (l keyList) Less(i, j int) bool { + a := l[i] + b := l[j] + ak := a.Kind() + bk := b.Kind() + for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { + a = a.Elem() + ak = a.Kind() + } + for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { + b = b.Elem() + bk = b.Kind() + } + af, aok := keyFloat(a) + bf, bok := keyFloat(b) + if aok && bok { + if af != bf { + return af < bf + } + if ak != bk { + return ak < bk + } + return numLess(a, b) + } + if ak != reflect.String || bk != reflect.String { + return ak < bk + } + ar, br := []rune(a.String()), []rune(b.String()) + for i := 0; i < len(ar) && i < len(br); i++ { + if ar[i] == br[i] { + continue + } + al := unicode.IsLetter(ar[i]) + bl := unicode.IsLetter(br[i]) + if al && bl { + return ar[i] < br[i] + } + if al || bl { + return bl + } + var ai, bi int + var an, bn int64 + if ar[i] == '0' || br[i] == '0' { + for j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- { + if ar[j] != '0' { + an = 1 + bn = 1 + break + } + } + } + for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { + an = an*10 + int64(ar[ai]-'0') + } + for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { + bn = bn*10 + int64(br[bi]-'0') + } + if an != bn { + return an < bn + } + if ai != bi { + return ai < bi + } + return ar[i] < br[i] + } + return len(ar) < len(br) +} + +// keyFloat returns a float value for v if it is a number/bool +// and whether it is a number/bool or not. +func keyFloat(v reflect.Value) (f float64, ok bool) { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return float64(v.Int()), true + case reflect.Float32, reflect.Float64: + return v.Float(), true + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return float64(v.Uint()), true + case reflect.Bool: + if v.Bool() { + return 1, true + } + return 0, true + } + return 0, false +} + +// numLess returns whether a < b. +// a and b must necessarily have the same kind. +func numLess(a, b reflect.Value) bool { + switch a.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return a.Int() < b.Int() + case reflect.Float32, reflect.Float64: + return a.Float() < b.Float() + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return a.Uint() < b.Uint() + case reflect.Bool: + return !a.Bool() && b.Bool() + } + panic("not a number") +} diff --git a/vendor/gopkg.in/yaml.v2/suite_test.go b/vendor/gopkg.in/yaml.v2/suite_test.go new file mode 100644 index 0000000..c5cf1ed --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/suite_test.go @@ -0,0 +1,12 @@ +package yaml_test + +import ( + . "gopkg.in/check.v1" + "testing" +) + +func Test(t *testing.T) { TestingT(t) } + +type S struct{} + +var _ = Suite(&S{}) diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go new file mode 100644 index 0000000..a2dde60 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/writerc.go @@ -0,0 +1,26 @@ +package yaml + +// Set the writer error and return false. +func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_WRITER_ERROR + emitter.problem = problem + return false +} + +// Flush the output buffer. +func yaml_emitter_flush(emitter *yaml_emitter_t) bool { + if emitter.write_handler == nil { + panic("write handler not set") + } + + // Check if the buffer is empty. + if emitter.buffer_pos == 0 { + return true + } + + if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { + return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) + } + emitter.buffer_pos = 0 + return true +} diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go new file mode 100644 index 0000000..de85aa4 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yaml.go @@ -0,0 +1,466 @@ +// Package yaml implements YAML support for the Go language. +// +// Source code and other details for the project are available at GitHub: +// +// https://github.com/go-yaml/yaml +// +package yaml + +import ( + "errors" + "fmt" + "io" + "reflect" + "strings" + "sync" +) + +// MapSlice encodes and decodes as a YAML map. +// The order of keys is preserved when encoding and decoding. +type MapSlice []MapItem + +// MapItem is an item in a MapSlice. +type MapItem struct { + Key, Value interface{} +} + +// The Unmarshaler interface may be implemented by types to customize their +// behavior when being unmarshaled from a YAML document. The UnmarshalYAML +// method receives a function that may be called to unmarshal the original +// YAML value into a field or variable. It is safe to call the unmarshal +// function parameter more than once if necessary. +type Unmarshaler interface { + UnmarshalYAML(unmarshal func(interface{}) error) error +} + +// The Marshaler interface may be implemented by types to customize their +// behavior when being marshaled into a YAML document. The returned value +// is marshaled in place of the original value implementing Marshaler. +// +// If an error is returned by MarshalYAML, the marshaling procedure stops +// and returns with the provided error. +type Marshaler interface { + MarshalYAML() (interface{}, error) +} + +// Unmarshal decodes the first document found within the in byte slice +// and assigns decoded values into the out value. +// +// Maps and pointers (to a struct, string, int, etc) are accepted as out +// values. If an internal pointer within a struct is not initialized, +// the yaml package will initialize it if necessary for unmarshalling +// the provided data. The out parameter must not be nil. +// +// The type of the decoded values should be compatible with the respective +// values in out. If one or more values cannot be decoded due to a type +// mismatches, decoding continues partially until the end of the YAML +// content, and a *yaml.TypeError is returned with details for all +// missed values. +// +// Struct fields are only unmarshalled if they are exported (have an +// upper case first letter), and are unmarshalled using the field name +// lowercased as the default key. Custom keys may be defined via the +// "yaml" name in the field tag: the content preceding the first comma +// is used as the key, and the following comma-separated options are +// used to tweak the marshalling process (see Marshal). +// Conflicting names result in a runtime error. +// +// For example: +// +// type T struct { +// F int `yaml:"a,omitempty"` +// B int +// } +// var t T +// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) +// +// See the documentation of Marshal for the format of tags and a list of +// supported tag options. +// +func Unmarshal(in []byte, out interface{}) (err error) { + return unmarshal(in, out, false) +} + +// UnmarshalStrict is like Unmarshal except that any fields that are found +// in the data that do not have corresponding struct members, or mapping +// keys that are duplicates, will result in +// an error. +func UnmarshalStrict(in []byte, out interface{}) (err error) { + return unmarshal(in, out, true) +} + +// A Decorder reads and decodes YAML values from an input stream. +type Decoder struct { + strict bool + parser *parser +} + +// NewDecoder returns a new decoder that reads from r. +// +// The decoder introduces its own buffering and may read +// data from r beyond the YAML values requested. +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{ + parser: newParserFromReader(r), + } +} + +// SetStrict sets whether strict decoding behaviour is enabled when +// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict. +func (dec *Decoder) SetStrict(strict bool) { + dec.strict = strict +} + +// Decode reads the next YAML-encoded value from its input +// and stores it in the value pointed to by v. +// +// See the documentation for Unmarshal for details about the +// conversion of YAML into a Go value. +func (dec *Decoder) Decode(v interface{}) (err error) { + d := newDecoder(dec.strict) + defer handleErr(&err) + node := dec.parser.parse() + if node == nil { + return io.EOF + } + out := reflect.ValueOf(v) + if out.Kind() == reflect.Ptr && !out.IsNil() { + out = out.Elem() + } + d.unmarshal(node, out) + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + +func unmarshal(in []byte, out interface{}, strict bool) (err error) { + defer handleErr(&err) + d := newDecoder(strict) + p := newParser(in) + defer p.destroy() + node := p.parse() + if node != nil { + v := reflect.ValueOf(out) + if v.Kind() == reflect.Ptr && !v.IsNil() { + v = v.Elem() + } + d.unmarshal(node, v) + } + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + +// Marshal serializes the value provided into a YAML document. The structure +// of the generated document will reflect the structure of the value itself. +// Maps and pointers (to struct, string, int, etc) are accepted as the in value. +// +// Struct fields are only marshalled if they are exported (have an upper case +// first letter), and are marshalled using the field name lowercased as the +// default key. Custom keys may be defined via the "yaml" name in the field +// tag: the content preceding the first comma is used as the key, and the +// following comma-separated options are used to tweak the marshalling process. +// Conflicting names result in a runtime error. +// +// The field tag format accepted is: +// +// `(...) yaml:"[][,[,]]" (...)` +// +// The following flags are currently supported: +// +// omitempty Only include the field if it's not set to the zero +// value for the type or to empty slices or maps. +// Zero valued structs will be omitted if all their public +// fields are zero, unless they implement an IsZero +// method (see the IsZeroer interface type), in which +// case the field will be included if that method returns true. +// +// flow Marshal using a flow style (useful for structs, +// sequences and maps). +// +// inline Inline the field, which must be a struct or a map, +// causing all of its fields or keys to be processed as if +// they were part of the outer struct. For maps, keys must +// not conflict with the yaml keys of other struct fields. +// +// In addition, if the key is "-", the field is ignored. +// +// For example: +// +// type T struct { +// F int `yaml:"a,omitempty"` +// B int +// } +// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" +// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" +// +func Marshal(in interface{}) (out []byte, err error) { + defer handleErr(&err) + e := newEncoder() + defer e.destroy() + e.marshalDoc("", reflect.ValueOf(in)) + e.finish() + out = e.out + return +} + +// An Encoder writes YAML values to an output stream. +type Encoder struct { + encoder *encoder +} + +// NewEncoder returns a new encoder that writes to w. +// The Encoder should be closed after use to flush all data +// to w. +func NewEncoder(w io.Writer) *Encoder { + return &Encoder{ + encoder: newEncoderWithWriter(w), + } +} + +// Encode writes the YAML encoding of v to the stream. +// If multiple items are encoded to the stream, the +// second and subsequent document will be preceded +// with a "---" document separator, but the first will not. +// +// See the documentation for Marshal for details about the conversion of Go +// values to YAML. +func (e *Encoder) Encode(v interface{}) (err error) { + defer handleErr(&err) + e.encoder.marshalDoc("", reflect.ValueOf(v)) + return nil +} + +// Close closes the encoder by writing any remaining data. +// It does not write a stream terminating string "...". +func (e *Encoder) Close() (err error) { + defer handleErr(&err) + e.encoder.finish() + return nil +} + +func handleErr(err *error) { + if v := recover(); v != nil { + if e, ok := v.(yamlError); ok { + *err = e.err + } else { + panic(v) + } + } +} + +type yamlError struct { + err error +} + +func fail(err error) { + panic(yamlError{err}) +} + +func failf(format string, args ...interface{}) { + panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) +} + +// A TypeError is returned by Unmarshal when one or more fields in +// the YAML document cannot be properly decoded into the requested +// types. When this error is returned, the value is still +// unmarshaled partially. +type TypeError struct { + Errors []string +} + +func (e *TypeError) Error() string { + return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) +} + +// -------------------------------------------------------------------------- +// Maintain a mapping of keys to structure field indexes + +// The code in this section was copied from mgo/bson. + +// structInfo holds details for the serialization of fields of +// a given struct. +type structInfo struct { + FieldsMap map[string]fieldInfo + FieldsList []fieldInfo + + // InlineMap is the number of the field in the struct that + // contains an ,inline map, or -1 if there's none. + InlineMap int +} + +type fieldInfo struct { + Key string + Num int + OmitEmpty bool + Flow bool + // Id holds the unique field identifier, so we can cheaply + // check for field duplicates without maintaining an extra map. + Id int + + // Inline holds the field index if the field is part of an inlined struct. + Inline []int +} + +var structMap = make(map[reflect.Type]*structInfo) +var fieldMapMutex sync.RWMutex + +func getStructInfo(st reflect.Type) (*structInfo, error) { + fieldMapMutex.RLock() + sinfo, found := structMap[st] + fieldMapMutex.RUnlock() + if found { + return sinfo, nil + } + + n := st.NumField() + fieldsMap := make(map[string]fieldInfo) + fieldsList := make([]fieldInfo, 0, n) + inlineMap := -1 + for i := 0; i != n; i++ { + field := st.Field(i) + if field.PkgPath != "" && !field.Anonymous { + continue // Private field + } + + info := fieldInfo{Num: i} + + tag := field.Tag.Get("yaml") + if tag == "" && strings.Index(string(field.Tag), ":") < 0 { + tag = string(field.Tag) + } + if tag == "-" { + continue + } + + inline := false + fields := strings.Split(tag, ",") + if len(fields) > 1 { + for _, flag := range fields[1:] { + switch flag { + case "omitempty": + info.OmitEmpty = true + case "flow": + info.Flow = true + case "inline": + inline = true + default: + return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) + } + } + tag = fields[0] + } + + if inline { + switch field.Type.Kind() { + case reflect.Map: + if inlineMap >= 0 { + return nil, errors.New("Multiple ,inline maps in struct " + st.String()) + } + if field.Type.Key() != reflect.TypeOf("") { + return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) + } + inlineMap = info.Num + case reflect.Struct: + sinfo, err := getStructInfo(field.Type) + if err != nil { + return nil, err + } + for _, finfo := range sinfo.FieldsList { + if _, found := fieldsMap[finfo.Key]; found { + msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + if finfo.Inline == nil { + finfo.Inline = []int{i, finfo.Num} + } else { + finfo.Inline = append([]int{i}, finfo.Inline...) + } + finfo.Id = len(fieldsList) + fieldsMap[finfo.Key] = finfo + fieldsList = append(fieldsList, finfo) + } + default: + //return nil, errors.New("Option ,inline needs a struct value or map field") + return nil, errors.New("Option ,inline needs a struct value field") + } + continue + } + + if tag != "" { + info.Key = tag + } else { + info.Key = strings.ToLower(field.Name) + } + + if _, found = fieldsMap[info.Key]; found { + msg := "Duplicated key '" + info.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + + info.Id = len(fieldsList) + fieldsList = append(fieldsList, info) + fieldsMap[info.Key] = info + } + + sinfo = &structInfo{ + FieldsMap: fieldsMap, + FieldsList: fieldsList, + InlineMap: inlineMap, + } + + fieldMapMutex.Lock() + structMap[st] = sinfo + fieldMapMutex.Unlock() + return sinfo, nil +} + +// IsZeroer is used to check whether an object is zero to +// determine whether it should be omitted when marshaling +// with the omitempty flag. One notable implementation +// is time.Time. +type IsZeroer interface { + IsZero() bool +} + +func isZero(v reflect.Value) bool { + kind := v.Kind() + if z, ok := v.Interface().(IsZeroer); ok { + if (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() { + return true + } + return z.IsZero() + } + switch kind { + case reflect.String: + return len(v.String()) == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflect.Slice: + return v.Len() == 0 + case reflect.Map: + return v.Len() == 0 + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Struct: + vt := v.Type() + for i := v.NumField() - 1; i >= 0; i-- { + if vt.Field(i).PkgPath != "" { + continue // Private field + } + if !isZero(v.Field(i)) { + return false + } + } + return true + } + return false +} diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go new file mode 100644 index 0000000..e25cee5 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlh.go @@ -0,0 +1,738 @@ +package yaml + +import ( + "fmt" + "io" +) + +// The version directive data. +type yaml_version_directive_t struct { + major int8 // The major version number. + minor int8 // The minor version number. +} + +// The tag directive data. +type yaml_tag_directive_t struct { + handle []byte // The tag handle. + prefix []byte // The tag prefix. +} + +type yaml_encoding_t int + +// The stream encoding. +const ( + // Let the parser choose the encoding. + yaml_ANY_ENCODING yaml_encoding_t = iota + + yaml_UTF8_ENCODING // The default UTF-8 encoding. + yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. + yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. +) + +type yaml_break_t int + +// Line break types. +const ( + // Let the parser choose the break type. + yaml_ANY_BREAK yaml_break_t = iota + + yaml_CR_BREAK // Use CR for line breaks (Mac style). + yaml_LN_BREAK // Use LN for line breaks (Unix style). + yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). +) + +type yaml_error_type_t int + +// Many bad things could happen with the parser and emitter. +const ( + // No error is produced. + yaml_NO_ERROR yaml_error_type_t = iota + + yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. + yaml_READER_ERROR // Cannot read or decode the input stream. + yaml_SCANNER_ERROR // Cannot scan the input stream. + yaml_PARSER_ERROR // Cannot parse the input stream. + yaml_COMPOSER_ERROR // Cannot compose a YAML document. + yaml_WRITER_ERROR // Cannot write to the output stream. + yaml_EMITTER_ERROR // Cannot emit a YAML stream. +) + +// The pointer position. +type yaml_mark_t struct { + index int // The position index. + line int // The position line. + column int // The position column. +} + +// Node Styles + +type yaml_style_t int8 + +type yaml_scalar_style_t yaml_style_t + +// Scalar styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota + + yaml_PLAIN_SCALAR_STYLE // The plain scalar style. + yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. + yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. + yaml_LITERAL_SCALAR_STYLE // The literal scalar style. + yaml_FOLDED_SCALAR_STYLE // The folded scalar style. +) + +type yaml_sequence_style_t yaml_style_t + +// Sequence styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota + + yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. + yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. +) + +type yaml_mapping_style_t yaml_style_t + +// Mapping styles. +const ( + // Let the emitter choose the style. + yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota + + yaml_BLOCK_MAPPING_STYLE // The block mapping style. + yaml_FLOW_MAPPING_STYLE // The flow mapping style. +) + +// Tokens + +type yaml_token_type_t int + +// Token types. +const ( + // An empty token. + yaml_NO_TOKEN yaml_token_type_t = iota + + yaml_STREAM_START_TOKEN // A STREAM-START token. + yaml_STREAM_END_TOKEN // A STREAM-END token. + + yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. + yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. + yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. + yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. + + yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. + yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. + yaml_BLOCK_END_TOKEN // A BLOCK-END token. + + yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. + yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. + yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. + yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. + + yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. + yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. + yaml_KEY_TOKEN // A KEY token. + yaml_VALUE_TOKEN // A VALUE token. + + yaml_ALIAS_TOKEN // An ALIAS token. + yaml_ANCHOR_TOKEN // An ANCHOR token. + yaml_TAG_TOKEN // A TAG token. + yaml_SCALAR_TOKEN // A SCALAR token. +) + +func (tt yaml_token_type_t) String() string { + switch tt { + case yaml_NO_TOKEN: + return "yaml_NO_TOKEN" + case yaml_STREAM_START_TOKEN: + return "yaml_STREAM_START_TOKEN" + case yaml_STREAM_END_TOKEN: + return "yaml_STREAM_END_TOKEN" + case yaml_VERSION_DIRECTIVE_TOKEN: + return "yaml_VERSION_DIRECTIVE_TOKEN" + case yaml_TAG_DIRECTIVE_TOKEN: + return "yaml_TAG_DIRECTIVE_TOKEN" + case yaml_DOCUMENT_START_TOKEN: + return "yaml_DOCUMENT_START_TOKEN" + case yaml_DOCUMENT_END_TOKEN: + return "yaml_DOCUMENT_END_TOKEN" + case yaml_BLOCK_SEQUENCE_START_TOKEN: + return "yaml_BLOCK_SEQUENCE_START_TOKEN" + case yaml_BLOCK_MAPPING_START_TOKEN: + return "yaml_BLOCK_MAPPING_START_TOKEN" + case yaml_BLOCK_END_TOKEN: + return "yaml_BLOCK_END_TOKEN" + case yaml_FLOW_SEQUENCE_START_TOKEN: + return "yaml_FLOW_SEQUENCE_START_TOKEN" + case yaml_FLOW_SEQUENCE_END_TOKEN: + return "yaml_FLOW_SEQUENCE_END_TOKEN" + case yaml_FLOW_MAPPING_START_TOKEN: + return "yaml_FLOW_MAPPING_START_TOKEN" + case yaml_FLOW_MAPPING_END_TOKEN: + return "yaml_FLOW_MAPPING_END_TOKEN" + case yaml_BLOCK_ENTRY_TOKEN: + return "yaml_BLOCK_ENTRY_TOKEN" + case yaml_FLOW_ENTRY_TOKEN: + return "yaml_FLOW_ENTRY_TOKEN" + case yaml_KEY_TOKEN: + return "yaml_KEY_TOKEN" + case yaml_VALUE_TOKEN: + return "yaml_VALUE_TOKEN" + case yaml_ALIAS_TOKEN: + return "yaml_ALIAS_TOKEN" + case yaml_ANCHOR_TOKEN: + return "yaml_ANCHOR_TOKEN" + case yaml_TAG_TOKEN: + return "yaml_TAG_TOKEN" + case yaml_SCALAR_TOKEN: + return "yaml_SCALAR_TOKEN" + } + return "" +} + +// The token structure. +type yaml_token_t struct { + // The token type. + typ yaml_token_type_t + + // The start/end of the token. + start_mark, end_mark yaml_mark_t + + // The stream encoding (for yaml_STREAM_START_TOKEN). + encoding yaml_encoding_t + + // The alias/anchor/scalar value or tag/tag directive handle + // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). + value []byte + + // The tag suffix (for yaml_TAG_TOKEN). + suffix []byte + + // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). + prefix []byte + + // The scalar style (for yaml_SCALAR_TOKEN). + style yaml_scalar_style_t + + // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). + major, minor int8 +} + +// Events + +type yaml_event_type_t int8 + +// Event types. +const ( + // An empty event. + yaml_NO_EVENT yaml_event_type_t = iota + + yaml_STREAM_START_EVENT // A STREAM-START event. + yaml_STREAM_END_EVENT // A STREAM-END event. + yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. + yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. + yaml_ALIAS_EVENT // An ALIAS event. + yaml_SCALAR_EVENT // A SCALAR event. + yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. + yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. + yaml_MAPPING_START_EVENT // A MAPPING-START event. + yaml_MAPPING_END_EVENT // A MAPPING-END event. +) + +var eventStrings = []string{ + yaml_NO_EVENT: "none", + yaml_STREAM_START_EVENT: "stream start", + yaml_STREAM_END_EVENT: "stream end", + yaml_DOCUMENT_START_EVENT: "document start", + yaml_DOCUMENT_END_EVENT: "document end", + yaml_ALIAS_EVENT: "alias", + yaml_SCALAR_EVENT: "scalar", + yaml_SEQUENCE_START_EVENT: "sequence start", + yaml_SEQUENCE_END_EVENT: "sequence end", + yaml_MAPPING_START_EVENT: "mapping start", + yaml_MAPPING_END_EVENT: "mapping end", +} + +func (e yaml_event_type_t) String() string { + if e < 0 || int(e) >= len(eventStrings) { + return fmt.Sprintf("unknown event %d", e) + } + return eventStrings[e] +} + +// The event structure. +type yaml_event_t struct { + + // The event type. + typ yaml_event_type_t + + // The start and end of the event. + start_mark, end_mark yaml_mark_t + + // The document encoding (for yaml_STREAM_START_EVENT). + encoding yaml_encoding_t + + // The version directive (for yaml_DOCUMENT_START_EVENT). + version_directive *yaml_version_directive_t + + // The list of tag directives (for yaml_DOCUMENT_START_EVENT). + tag_directives []yaml_tag_directive_t + + // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). + anchor []byte + + // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + tag []byte + + // The scalar value (for yaml_SCALAR_EVENT). + value []byte + + // Is the document start/end indicator implicit, or the tag optional? + // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). + implicit bool + + // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). + quoted_implicit bool + + // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + style yaml_style_t +} + +func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } +func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } +func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } + +// Nodes + +const ( + yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. + yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. + yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. + yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. + yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. + yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. + + yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. + yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. + + // Not in original libyaml. + yaml_BINARY_TAG = "tag:yaml.org,2002:binary" + yaml_MERGE_TAG = "tag:yaml.org,2002:merge" + + yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. + yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. + yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. +) + +type yaml_node_type_t int + +// Node types. +const ( + // An empty node. + yaml_NO_NODE yaml_node_type_t = iota + + yaml_SCALAR_NODE // A scalar node. + yaml_SEQUENCE_NODE // A sequence node. + yaml_MAPPING_NODE // A mapping node. +) + +// An element of a sequence node. +type yaml_node_item_t int + +// An element of a mapping node. +type yaml_node_pair_t struct { + key int // The key of the element. + value int // The value of the element. +} + +// The node structure. +type yaml_node_t struct { + typ yaml_node_type_t // The node type. + tag []byte // The node tag. + + // The node data. + + // The scalar parameters (for yaml_SCALAR_NODE). + scalar struct { + value []byte // The scalar value. + length int // The length of the scalar value. + style yaml_scalar_style_t // The scalar style. + } + + // The sequence parameters (for YAML_SEQUENCE_NODE). + sequence struct { + items_data []yaml_node_item_t // The stack of sequence items. + style yaml_sequence_style_t // The sequence style. + } + + // The mapping parameters (for yaml_MAPPING_NODE). + mapping struct { + pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). + pairs_start *yaml_node_pair_t // The beginning of the stack. + pairs_end *yaml_node_pair_t // The end of the stack. + pairs_top *yaml_node_pair_t // The top of the stack. + style yaml_mapping_style_t // The mapping style. + } + + start_mark yaml_mark_t // The beginning of the node. + end_mark yaml_mark_t // The end of the node. + +} + +// The document structure. +type yaml_document_t struct { + + // The document nodes. + nodes []yaml_node_t + + // The version directive. + version_directive *yaml_version_directive_t + + // The list of tag directives. + tag_directives_data []yaml_tag_directive_t + tag_directives_start int // The beginning of the tag directives list. + tag_directives_end int // The end of the tag directives list. + + start_implicit int // Is the document start indicator implicit? + end_implicit int // Is the document end indicator implicit? + + // The start/end of the document. + start_mark, end_mark yaml_mark_t +} + +// The prototype of a read handler. +// +// The read handler is called when the parser needs to read more bytes from the +// source. The handler should write not more than size bytes to the buffer. +// The number of written bytes should be set to the size_read variable. +// +// [in,out] data A pointer to an application data specified by +// yaml_parser_set_input(). +// [out] buffer The buffer to write the data from the source. +// [in] size The size of the buffer. +// [out] size_read The actual number of bytes read from the source. +// +// On success, the handler should return 1. If the handler failed, +// the returned value should be 0. On EOF, the handler should set the +// size_read to 0 and return 1. +type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) + +// This structure holds information about a potential simple key. +type yaml_simple_key_t struct { + possible bool // Is a simple key possible? + required bool // Is a simple key required? + token_number int // The number of the token. + mark yaml_mark_t // The position mark. +} + +// The states of the parser. +type yaml_parser_state_t int + +const ( + yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota + + yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. + yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. + yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. + yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. + yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. + yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. + yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. + yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. + yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. + yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. + yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. + yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. + yaml_PARSE_END_STATE // Expect nothing. +) + +func (ps yaml_parser_state_t) String() string { + switch ps { + case yaml_PARSE_STREAM_START_STATE: + return "yaml_PARSE_STREAM_START_STATE" + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_START_STATE: + return "yaml_PARSE_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return "yaml_PARSE_DOCUMENT_CONTENT_STATE" + case yaml_PARSE_DOCUMENT_END_STATE: + return "yaml_PARSE_DOCUMENT_END_STATE" + case yaml_PARSE_BLOCK_NODE_STATE: + return "yaml_PARSE_BLOCK_NODE_STATE" + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" + case yaml_PARSE_FLOW_NODE_STATE: + return "yaml_PARSE_FLOW_NODE_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" + case yaml_PARSE_END_STATE: + return "yaml_PARSE_END_STATE" + } + return "" +} + +// This structure holds aliases data. +type yaml_alias_data_t struct { + anchor []byte // The anchor. + index int // The node id. + mark yaml_mark_t // The anchor mark. +} + +// The parser structure. +// +// All members are internal. Manage the structure using the +// yaml_parser_ family of functions. +type yaml_parser_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + + problem string // Error description. + + // The byte about which the problem occurred. + problem_offset int + problem_value int + problem_mark yaml_mark_t + + // The error context. + context string + context_mark yaml_mark_t + + // Reader stuff + + read_handler yaml_read_handler_t // Read handler. + + input_reader io.Reader // File input data. + input []byte // String input data. + input_pos int + + eof bool // EOF flag + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + unread int // The number of unread characters in the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The input encoding. + + offset int // The offset of the current position (in bytes). + mark yaml_mark_t // The mark of the current position. + + // Scanner stuff + + stream_start_produced bool // Have we started to scan the input stream? + stream_end_produced bool // Have we reached the end of the input stream? + + flow_level int // The number of unclosed '[' and '{' indicators. + + tokens []yaml_token_t // The tokens queue. + tokens_head int // The head of the tokens queue. + tokens_parsed int // The number of tokens fetched from the queue. + token_available bool // Does the tokens queue contain a token ready for dequeueing. + + indent int // The current indentation level. + indents []int // The indentation levels stack. + + simple_key_allowed bool // May a simple key occur at the current position? + simple_keys []yaml_simple_key_t // The stack of simple keys. + + // Parser stuff + + state yaml_parser_state_t // The current parser state. + states []yaml_parser_state_t // The parser states stack. + marks []yaml_mark_t // The stack of marks. + tag_directives []yaml_tag_directive_t // The list of TAG directives. + + // Dumper stuff + + aliases []yaml_alias_data_t // The alias data. + + document *yaml_document_t // The currently parsed document. +} + +// Emitter Definitions + +// The prototype of a write handler. +// +// The write handler is called when the emitter needs to flush the accumulated +// characters to the output. The handler should write @a size bytes of the +// @a buffer to the output. +// +// @param[in,out] data A pointer to an application data specified by +// yaml_emitter_set_output(). +// @param[in] buffer The buffer with bytes to be written. +// @param[in] size The size of the buffer. +// +// @returns On success, the handler should return @c 1. If the handler failed, +// the returned value should be @c 0. +// +type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error + +type yaml_emitter_state_t int + +// The emitter states. +const ( + // Expect STREAM-START. + yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota + + yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. + yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. + yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. + yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. + yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. + yaml_EMIT_END_STATE // Expect nothing. +) + +// The emitter structure. +// +// All members are internal. Manage the structure using the @c yaml_emitter_ +// family of functions. +type yaml_emitter_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + problem string // Error description. + + // Writer stuff + + write_handler yaml_write_handler_t // Write handler. + + output_buffer *[]byte // String output data. + output_writer io.Writer // File output data. + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The stream encoding. + + // Emitter stuff + + canonical bool // If the output is in the canonical style? + best_indent int // The number of indentation spaces. + best_width int // The preferred width of the output lines. + unicode bool // Allow unescaped non-ASCII characters? + line_break yaml_break_t // The preferred line break. + + state yaml_emitter_state_t // The current emitter state. + states []yaml_emitter_state_t // The stack of states. + + events []yaml_event_t // The event queue. + events_head int // The head of the event queue. + + indents []int // The stack of indentation levels. + + tag_directives []yaml_tag_directive_t // The list of tag directives. + + indent int // The current indentation level. + + flow_level int // The current flow level. + + root_context bool // Is it the document root context? + sequence_context bool // Is it a sequence context? + mapping_context bool // Is it a mapping context? + simple_key_context bool // Is it a simple mapping key context? + + line int // The current line. + column int // The current column. + whitespace bool // If the last character was a whitespace? + indention bool // If the last character was an indentation character (' ', '-', '?', ':')? + open_ended bool // If an explicit document end is required? + + // Anchor analysis. + anchor_data struct { + anchor []byte // The anchor value. + alias bool // Is it an alias? + } + + // Tag analysis. + tag_data struct { + handle []byte // The tag handle. + suffix []byte // The tag suffix. + } + + // Scalar analysis. + scalar_data struct { + value []byte // The scalar value. + multiline bool // Does the scalar contain line breaks? + flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? + block_plain_allowed bool // Can the scalar be expressed in the block plain style? + single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? + block_allowed bool // Can the scalar be expressed in the literal or folded styles? + style yaml_scalar_style_t // The output style. + } + + // Dumper stuff + + opened bool // If the stream was already opened? + closed bool // If the stream was already closed? + + // The information associated with the document nodes. + anchors *struct { + references int // The number of references. + anchor int // The anchor id. + serialized bool // If the node has been emitted? + } + + last_anchor_id int // The last assigned anchor id. + + document *yaml_document_t // The currently emitted document. +} diff --git a/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go new file mode 100644 index 0000000..8110ce3 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlprivateh.go @@ -0,0 +1,173 @@ +package yaml + +const ( + // The size of the input raw buffer. + input_raw_buffer_size = 512 + + // The size of the input buffer. + // It should be possible to decode the whole raw buffer. + input_buffer_size = input_raw_buffer_size * 3 + + // The size of the output buffer. + output_buffer_size = 128 + + // The size of the output raw buffer. + // It should be possible to encode the whole output buffer. + output_raw_buffer_size = (output_buffer_size*2 + 2) + + // The size of other stacks and queues. + initial_stack_size = 16 + initial_queue_size = 16 + initial_string_size = 16 +) + +// Check if the character at the specified position is an alphabetical +// character, a digit, '_', or '-'. +func is_alpha(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' +} + +// Check if the character at the specified position is a digit. +func is_digit(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' +} + +// Get the value of a digit. +func as_digit(b []byte, i int) int { + return int(b[i]) - '0' +} + +// Check if the character at the specified position is a hex-digit. +func is_hex(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' +} + +// Get the value of a hex-digit. +func as_hex(b []byte, i int) int { + bi := b[i] + if bi >= 'A' && bi <= 'F' { + return int(bi) - 'A' + 10 + } + if bi >= 'a' && bi <= 'f' { + return int(bi) - 'a' + 10 + } + return int(bi) - '0' +} + +// Check if the character is ASCII. +func is_ascii(b []byte, i int) bool { + return b[i] <= 0x7F +} + +// Check if the character at the start of the buffer can be printed unescaped. +func is_printable(b []byte, i int) bool { + return ((b[i] == 0x0A) || // . == #x0A + (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E + (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF + (b[i] > 0xC2 && b[i] < 0xED) || + (b[i] == 0xED && b[i+1] < 0xA0) || + (b[i] == 0xEE) || + (b[i] == 0xEF && // #xE000 <= . <= #xFFFD + !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF + !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) +} + +// Check if the character at the specified position is NUL. +func is_z(b []byte, i int) bool { + return b[i] == 0x00 +} + +// Check if the beginning of the buffer is a BOM. +func is_bom(b []byte, i int) bool { + return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF +} + +// Check if the character at the specified position is space. +func is_space(b []byte, i int) bool { + return b[i] == ' ' +} + +// Check if the character at the specified position is tab. +func is_tab(b []byte, i int) bool { + return b[i] == '\t' +} + +// Check if the character at the specified position is blank (space or tab). +func is_blank(b []byte, i int) bool { + //return is_space(b, i) || is_tab(b, i) + return b[i] == ' ' || b[i] == '\t' +} + +// Check if the character at the specified position is a line break. +func is_break(b []byte, i int) bool { + return (b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) +} + +func is_crlf(b []byte, i int) bool { + return b[i] == '\r' && b[i+1] == '\n' +} + +// Check if the character is a line break or NUL. +func is_breakz(b []byte, i int) bool { + //return is_break(b, i) || is_z(b, i) + return ( // is_break: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + // is_z: + b[i] == 0) +} + +// Check if the character is a line break, space, or NUL. +func is_spacez(b []byte, i int) bool { + //return is_space(b, i) || is_breakz(b, i) + return ( // is_space: + b[i] == ' ' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Check if the character is a line break, space, tab, or NUL. +func is_blankz(b []byte, i int) bool { + //return is_blank(b, i) || is_breakz(b, i) + return ( // is_blank: + b[i] == ' ' || b[i] == '\t' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Determine the width of the character. +func width(b byte) int { + // Don't replace these by a switch without first + // confirming that it is being inlined. + if b&0x80 == 0x00 { + return 1 + } + if b&0xE0 == 0xC0 { + return 2 + } + if b&0xF0 == 0xE0 { + return 3 + } + if b&0xF8 == 0xF0 { + return 4 + } + return 0 + +}